O que é um banco de dados colunar

O que é um banco de dados colunar

Inscreva-se

Abordamos dados e análises dentro das empresas.

Receba novos artigos por e-mail


Compartilhe

Os bancos de dados relacionais tradicionais, como MySQL, PostgreSQL, MS SQL e Oracle armazenam as informações linearmente, o que oferece uma série de vantagens para operações de bases de dados que estão em produção em softwares, principalmente se acoplada à criação de índices em colunas que serão constantemente consultadas (como IDs) para retornar dados brutos de linhas de registros.

Imagine um conjunto de dados como o seguite:

Id Nome Sobrenome Idade
1 João Pereira 32
2 Carlos Gonçalves 41
3 Kondado Inteligência 13

Banco de dados linear tradicional

Em um banco de dados tradicional, essas informações seriam armazenadas em um formato muito parecido com a tabela abaixo:

Assim, em uma operação de busca, se você quiser saber qual o usuário com o Id 2, basta procurar pelo primeiro bloco e retornar os próximos 3 blocos verdes.

Agora, quando você precisar fazer algo mais complexo, como ver a soma de idade da tabela, o banco irá buscar em cada cor o quarto bloco e fazer a soma. Parece algo simples – apenas olhando para esses registros podemos ver que o resultado será 86 – mas quando estamos falando de uma tabela de um bilhão de registros, essa operação de “buscar para cada cor o quarto bloco” fica muito pesada – basicamente, registro por registro terá que ser buscado e somado pelo banco de dados.

Lembre-se que as informações de um banco de dados tradicional são armazenadas no disco (HD) e não na memória (RAM), então cada busca requer uma operação de leitura de informações custosa.

Bancos de dados colunares

Os bancos de dados colunares, como o Amazon Redshift e o Google BigQuery, armazenam a informação coluna-a-coluna, o que permite:

  • Maior compressão – já que dados de tipos iguais são armazenados juntos, há uma otimização de espaço utilizado
  • Eliminação da necessidade de índices – não é necessário rearranjar como as cores de blocos estão ordenadas (existem outras opções de otimização como sharding)
  • Alta-performance para operações de agregação

O nosso conjunto de dados de exemplo, seria armazenado da seguinte forma em um banco colunar:

Veja só como os valores foram re-ordenados:

Se você quiser fazer a soma das idades, o banco de dados fará apenas uma operação de leitura para a cor laranja e fará o cálculo.

Os bancos de dados colunares disponíveis no mercado desenvolveram outras otimizações para melhoria de performance, o que os torna ideiais para times de analytics que precisam lidar com grandes bases de dados – principalmente otimização de cruzamentos entre tabelas.

Além disso, o Amazon Redshift e o Google BigQuery foram desenvolvidos com o objetivo de tornar muito simples a sua operação. Eles suportam SQL da mesma maneira que os bancos tradicionais – o que reduz a curva de aprendizado para usá-los – e, por estarem na estrutura dos maiores fornecedores cloud do mundo a sua infra-estrutura também é simples de ser mantida – o Google BigQuery é até servless!

Se você precisa lidar com um grande volume de informações de fontes distintas, pare de perder tempo criando integrações e foque nos resultados!

Veja como a nossa plataforma pode ajudar você a integrar e cruzar informações de múltiplas fontes no Redshift e no BigQuery, sem que você precise escrever uma única linha de código.

Ah, se você gostou desse artigo, faça um teste grátis na nossa plataforma e vá da teoria à prática em poucos minutos.

Publicado em 2019-10-31