É evidente que cada vez mais as empresas enxergam os dados que detém como um de seus ativos, algo de valor que pode trazer vantagem competitiva ao saber lidar com eles. Saber interpretar os dados pode ajudar a entender mais sobre o negócio e a tomar decisões com mais eficácia. Empresas de sucesso como Google, Facebook e Amazon estão o tempo todo coletando e estudando os dados que seus usuários geram. Através desses estudos, eles podem entender melhor a sua audiência reconhecendo padrões, tendências e oportunidades, de forma a sempre tentar oferecer para os usuários algo que faça mais sentido para eles.
É importante empregar a tecnologia correta para lidar com esses dados de forma que seja eficiente e fácil de trabalhar com eles (quanto mais rápido for possível extrair informação dos dados, menor a chance de perder oportunidades). Um dos aspectos tecnológicos a ser considerado é a forma como os dados são armazenados. Saber usar a tecnologia certa faz a diferença quando é preciso processar milhões ou até bilhões de registros em poucos segundos.
Quando se pensa em banco de dados, é comum que a representação mais óbvia para ilustrar uma tabela seja algo similar a uma planilha em que temos um identificador para cada linha e uma série de colunas, cada uma com um valor. Em se tratando de um banco de dados orientado a linhas, a forma como os dados são guardados segue exatamente esse princípio e ele faz todo o sentido quando estamos tratando de dados transacionais ou cadastrais.
Sistemas transacionais são muito comuns e para esse tipo de sistema é importante que o banco de dados responda rapidamente para consultas referentes a um determinado atributo identificador (como um CPF de uma pessoa, um código de barras de um produto, etc.). Nessa situação, normalmente temos um volume grande de consultas, inserções e alterações dos dados das tabelas, mas que impactam em um volume pequeno de registros. Esse tipo de cenário é chamado de OLTP (Online Transction Processing).
Agora, considere uma tabela que guarde todos os registros de vendas de uma determinada empresa e que é necessário saber o montante total dessas vendas. Esse tipo de consulta é muito comum para a geração de relatórios, e situações dessa natureza normalmente precisam varrer grandes quantidades de dados, sendo que eles sofrem pouca ou nenhuma alteração com o decorrer do tempo. Esse tipo de cenário é chamado de OLAP (Online Analytical Processing).
Em um sistema orientado a linhas, para realizar a consulta descrita no parágrafo anterior seria preciso percorrer todas as linhas da tabela e ler todas as colunas, independentemente de elas serem necessárias ou não para se obter o resultado da consulta dada a forma como o dado é armazenado. E se a coluna que guarda o valor da venda fosse armazenada de forma totalmente independente das outras colunas da tabela? Seria muito menos custoso ler apenas os dados dessa coluna para se obter o resultado da consulta. Essa é justamente a proposta quando se trata de armazenamento colunar.
Como funciona o armazenamento colunar
A forma como um sistema de banco de dados com armazenamento colunar (também conhecido como orientado a colunas) guarda os dados é bem diferente da forma mais tradicional orientada a linhas, considere como exemplo a tabela representada na Figura 1.