Vídeo: Banco Relacional ou NoSQL para escalar Séries Temporais? Use o PostgreSQL. - Erivelto Vichroski 2024
Uma característica comum dos sistemas NoSQL é a capacidade de escalar em vários servidores de produtos básicos. Estas plataformas relativamente baratas significam que você pode ampliar os bancos de dados, adicionando um novo servidor ao invés de substituir hardware antigo por hardware novo e mais poderoso em um único tiro.
Existem casos de uso de alto volume que irão obrigá-lo a expandir-se rapidamente. Estes incluem
-
Você recebe relatórios de status e registra mensagens de uma paisagem de TI. Este cenário requer tempos de ingesta rápida, mas provavelmente não requer suporte de análise avançada.
-
Você quer armazenamento em alta velocidade para consultas complexas. Talvez você queira receber as últimas notícias em um site. Aqui, leia caches assumir proeminência sobre as velocidades de consulta ou ingerir.
A única coisa comum ao desempenho de todos os bancos de dados NoSQL é que você não pode confiar em dados publicados - nada disso - para descobrir qual o desempenho que provavelmente será em seus dados, para seu próprio caso de uso.
Você certamente não pode confiar na promessa de um fornecedor de banco de dados específico sobre o desempenho! Muitos vendedores citam altas velocidades de ingestão contra um caso de uso artificial que não é um uso realista de seu banco de dados, como prova da supremacia de seu banco de dados.
No entanto, o problema é que esses mesmos estudos podem ignorar totalmente a velocidade da consulta. Qual é o ponto no armazenamento de dados se você nunca o usa?
Estes estudos também podem ser feitos em sistemas onde os recursos principais estão desativados. Os índices de segurança podem não estar ativados, ou talvez o suporte de transação ACID esteja desativado durante o estudo para que os dados sejam armazenados rapidamente, mas não há garantia de que seja seguro.
Isso significa que você deve fazer seus próprios testes, o que é fácil, mas certifique-se de que o teste seja o mais próximo possível do seu sistema final. Por exemplo, não há nenhum ponto em testar um único servidor se você planeja escalar para 20 servidores. Em particular, certifique-se de ter uma mistura precisa de informações de ingestão, modificação e consulta.
Considere perguntar ao seu fornecedor do NoSQL estas questões:
-
Você pode garantir que todos os números de dimensionamento e desempenho citados sejam para sistemas que garantam transações ACID durante a ingestão que suportem indexação em tempo real e que incluem uma mistura realista de ingerir e ler / solicitações de consulta?
-
O seu produto fornece recursos que facilitam o aumento da capacidade de um servidor?
-
O seu produto fornece recursos que facilitam a remoção da capacidade do servidor não utilizada?
-
A velocidade de consulta de dados do seu produto é limitada pela quantidade de informações que deve ser armazenada em cache na RAM?
-
O seu produto usa uma estratégia de mapa de memória que exige que todos os índices sejam mantidos em RAM para um desempenho adequado (a memória mapeada significa que a quantidade máxima de dados armazenados é igual à quantidade de RAM física instalada)?
-
O seu banco de dados pode manter tempos de resposta de consulta secundária ao receber atualizações de alta freqüência?
-
O sistema garante que não é necessário tempo de inatividade para adicionar ou remover a capacidade do servidor?
-
O sistema garante que a informação esteja imediatamente disponível para consulta depois de ser adicionada ao banco de dados?
-
O sistema garante que a segurança dos dados é mantida sem prejudicar a velocidade da consulta?
-
O sistema garante que os recursos de escala e escala da base de dados sejam scripts e que eles se integrarão ao software de provisionamento de servidor escolhido (por exemplo, VMWare e Amazon Cloud Formation)?