Banco de Dados Colunar

banco de dados orientado a coluna não é um conceito novo. 

Como funcionaVejamos, como exemplo, a tabela abaixo:

Pois bem, em um banco de dados relacional “orientado a linhas”, todos os dados são armazenados em uma linha, após o último elemento desta linha vem o primeiro elemento da linha seguinte:

2152, Eduardo, “R Estela, 222″, SP; 3421, Mariana, “R Gov Pedro, 34″, CE; …

Se estes dados estivessem armazenados em um “orientado a colunas”, teríamos a informação da mesma coluna armazenada em sequencia, com o final de uma coluna seguida do primeiro elemento da coluna seguinte. Parece complicado, mas não é, veja:

2152, 3421, 2156; Eduardo, Mariana, Ricardo; “R Estela, 222″, “R Gov Pedro, 34″, “R Jaguare. 45 ap.61″; SP,…

Claro que todos os bancos de dados tem seus mecanismos para ganhar performance, mas não vamos tratar deste assunto aqui.

Dependendo da forma como o dado é recuperado, o banco de dados “orientado a colunas” é mais eficiente. Veja uma tabela onde um é melhor que outro:

Como podemos ver cada situação exige uma abordagem diferente.

O Caso do Yahoo!

O Yahoo! tem um case interessante de utilização de “column-oriented database”, como nos conta este post da ComputerWorld. Segundo o autor, o Yahoo! tem o datawarehouse mais rápido utilizando a tecnologia de bancos de dados “orientado a colunas”.

São mais de 2 petabytes de dados e, segundo o VP Waqar Hasan, irá crescer várias dezenas até o final de 2009. A empresa utiliza o SybaseIQ.

 

 

Até tu Google?

Claro que o onipresente Google não poderia ficar de fora. Não encontrando nenhuma solução que tivesse uma performance exigida pelos seus clientes, o gigante de buscas construiu seu próprio banco de dados, chamado pelo sugestivo nome de BigTable.

BigTable foi construido utilizando um file system também do Google, o Google File System (GFS). YouTube, Google Earth, Blogger, Orkut, Google Maps etc são usuários deste banco de dados.

BigTable é considerado um DBMS extremamente rápido e, sim, várias características de bancos de dados “orientado a colunas”. Na verdade possui características de bancos de dados tradicionais também (”orientado a linhas”). Foi projetado para ter vários petabytes e ser distribuido através de centenas e milhares de máquinas.

infoblogs.com.br/

Sugestões e-Setorial

MonetDB

http://www.monetdb.org/Home

InfiniDB, engine para o MySQL

http://infinidb.org/