Se os bancos de dados relacionais não escalam, nada faz. Não se preocupe com problemas de dimensionamento.
O SQL tem problemas com alguns tipos de análise, mas não são necessários muitos dados para acionar o problema. Por exemplo, considere uma única tabela com uma coluna que faça referência a outras linhas com base em uma chave exclusiva. Normalmente, isso pode ser usado para criar uma estrutura em árvore. Você pode escrever instruções SQL rápidas que fazem referência à linha relacionada. Ou a linha relacionada da linha relacionada. Na verdade, você pode fazer qualquer número específico de saltos. Mas se, para cada linha, você deseja selecionar um campo na primeira linha relacionada da cadeia que atenda a algum critério, fica complicado.
Considere uma tabela de locais de escritórios nos níveis de país, província / estado, município, cidade e vila, com cada escritório referenciando o escritório ao qual se reporta. Não há garantia de que o escritório de relatórios de cada escritório esteja apenas um nível acima. Para um conjunto selecionado de escritórios, nem todos em um nível, você deseja listar o escritório nacional associado de cada um. Isso requer loops de instruções SQL e levará muito tempo até hoje. (Eu costumava ter 30 segundos em uma seleção de 30 escritórios, mas isso foi há muito tempo - e mudar para procedimentos armazenados ajudou um pouco.)
Portanto, a alternativa é colocar toda a estrutura em um grande bloco de dados, rotular e armazenar. Quando quiser analisar os dados, leia tudo na memória de uma só vez, configurando indicadores para rastrear a estrutura e você poderá processar alguns milhões de escritórios em um piscar de olhos.
Nada disso tem muito a ver com a quantidade de dados. A chave é a natureza da organização dos dados. Se um layout relacional ajudar, então um RDBMS é o que você deseja. Caso contrário, algum tipo de armazenamento em massa será ligeiramente mais rápido que um quatrilhão de vezes.
Observe que, se um desses conjuntos de dados se tornar muito grande para caber na memória, seu banco de dados não-SQL não funcionará mais. Outro problema é quando você precisa de dados de mais de um bloco por vez; você pode fazer isso se , e somente se, todos os blocos couberem na memória de uma só vez. E o usuário tem que esperar enquanto você os carrega.
Se o seu banco de dados relacional lhe causar problemas, ele será feito antes de você colocar muitos dados nele. O único problema de dimensionamento que você pode ter é com o seu programa quando o bloco de dados que você está montando para um banco de dados nosql - se você precisar usá-lo - se torna grande demais para ele. (Leia sobre erros de falta de memória. Os idiomas mais novos às vezes fazem coisas estranhas com a memória.)