O que é uma base de dados colunar?

Tenho trabalhado com a warehousing há algum tempo.

Estou intrigado com as bases de dados colunares e com a velocidade que têm de oferecer para a recolha de dados.

Tenho uma pergunta em várias partes:

    Como funcionam as bases de dados colunares? Como diferem das bases de dados relacionais?
 100
Author: Artjom B., 2010-01-25

7 answers

como funcionam as bases de dados colunares?
A base de dados Columnar é um conceito bastante particular arquitectura/implementação. Em outras palavras, não há uma descrição particular sobre como essas bases de dados funcionam; na verdade, várias são construídas sobre o tradicional, orientado para linhas, DBMS, simplesmente armazenando a informação em tabelas com uma (ou melhor, muitas vezes duas) colunas (e adicionando a camada necessária para acessar os dados colunares de uma forma fácil).

Como? são diferentes das bases de dados relacionais? Em geral, diferem das bases de dados tradicionais (orientadas para linhas) no que diz respeito a:..

  • desempenho...
  • necessidades de armazenamento ...
  • ([19]) facilidade de modificação do esquema ...

...em casos específicos de utilização de DBMSes.
Em especial, oferecem vantagens nas áreas mencionadas quando a utilização típica é calcular valores agregados num número limitado de colunas, em oposição a tente obter todas / a maioria das colunas para uma dada entidade.

Existe uma versão experimental de uma base de dados colunar que eu possa instalar para brincar? (Estou nas janelas 7) Sim, há implementação comercial, gratuita e também de código aberto de bases de dados colunares. Veja a lista no final do artigo do Wikipédia para começar.
Cuidado que várias dessas implementações foram introduzidas para resolver uma necessidade particular (digamos uma pegada muito pequena, distribuição altamente compressível de dados, emulação de matriz de reserva, etc.) em vez de fornecer uma coluna orientada para o objectivo geral DBMS per-se.

Nota: O comentário sobre o "único propósito de orientação" de várias colunas Sgbds não é uma crítica a essas implementações, mas sim uma indicação adicional de que essa abordagem para Sgbds desvia de mais "naturais" (e, certamente, mais amplamente usado) método para armazenar registro de entidades. Como resultado, esta abordagem é utilizada quando o a abordagem orientada para as linhas não é satisfatória e, portanto, tende a
a) ser alvo de um objectivo específico B) receber menos recursos/interesse do que o trabalho com "finalidade geral", "experimentado e testado", abordagem tabular.

Tentativamente, o entidade-atributo-valor (EAV) modelo de dados, pode ser uma estratégia de armazenamento alternativa que você pode querer considerar. Embora diferente do modelo" puro " colunar DB, EAV compartilha várias das características do DBS colunar.

 50
Author: mjv, 2010-01-25 16:09:30

Como funcionam as bases de dados colunares? O conceito definidor de uma coluna-store é que os valores de uma tabela são armazenados contiguosamente por coluna. Assim, a tabela de fornecedores clássica da base de dados de fornecedores e peças da CJ Date:

SNO  STATUS CITY    SNAME
---  ------ ----    -----
S1       20 London  Smith
S2       10 Paris   Jones
S3       30 Paris   Blake
S4       20 London  Clark
S5       30 Athens  Adams

Seria armazenado em disco ou em memória algo como:

S1S2S3S4S5;2010302030;LondonParisParisLondonAthens;SmithJonesBlakeClarkAdams 

Isto está em contraste com uma loja tradicional que armazenaria os dados mais como este:

S120LondonSmith;S210ParisJones;S330ParisBlake;S420LondonClark;S530AthensAdams
A partir deste conceito simples flui todas as diferenças fundamentais no desempenho, para o melhor ou para o pior, entre uma loja de colunas e uma loja de linhas. Por exemplo, uma loja de colunas se sobressai ao fazer agregações como totais e médias, mas inserir uma única linha pode ser caro, enquanto o inverso é verdadeiro para as lojas de linhas. Isto deve ser evidente a partir do diagrama acima.

Como diferem das bases de dados relacionais? Uma base de dados de relações é um conceito lógico. Uma base de dados colunar, ou columnar-store, é um conceito físico. Assim, os dois termos são não é comparável de forma significativa. Dmbss orientado a coluna pode ser relacional ou não, assim como DBMS orientado a linha pode aderir mais ou menos aos princípios relacionais.

 254
Author: Paul Mansour, 2014-02-11 06:41:06

Eu diria que o melhor candidato a entender sobre bases de dados orientadas para colunas é verificar o HBase (Apache HBase) . Você pode checar o código e explorar mais para saber mais sobre a implementação .

 4
Author: hari_sree, 2012-07-26 16:24:33

Além disso, os DBs colunares têm uma afinidade embutida para a compressão de dados, e o processo de carregamento é único. Aqui está um artigo que escrevi em 2008 que explica um pouco mais.

Também pode estar interessado num novo relatório da Carl Olofson da IDC sobre a tecnologia DBMS da terceira geração. Discute columnar, et al. Se você não é um cliente IDC você pode obtê-lo gratuitamente em nosso site. Ele está fazendo um webinar no dia 16 de junho, também (também em nosso site).

(BTW, um comentário acima lista asterdata mas acho que não são colunares.)

 2
Author: kim stanick, 2010-05-13 01:28:17

Para entender o que é uma base de dados orientada a colunas, é melhor contrastar com base de dados orientada a linhas.

As bases de dados orientadas para linhas (por exemplo, MS SQL Server e SQLite) são concebidas para devolver de forma eficiente os dados de uma linha inteira. Ele o faz armazenando todos os valores de colunas de uma linha juntos. As bases de dados orientadas para linhas são adequadas para sistemas OLTP (por exemplo, vendas a retalho e sistemas de transações financeiras).

As bases de dados orientadas para colunas são concebidas para: devolver os dados de forma eficiente para um número limitado de colunas. Ele o faz armazenando todos os valores de uma coluna juntos. Dois bancos de dados orientados a Colunas amplamente utilizados são o Apache Hbase e o Google BigTable (usado pelo Google para sua pesquisa, análise, mapas e Gmail). Eles são adequados para os grandes projetos de dados. Um banco de dados orientado a colunas irá se destacar em operações de leitura em um número limitado de colunas, no entanto a operação de escrita será cara em comparação com bancos de dados orientados a linhas.

Para mais: https://en.wikipedia.org/wiki/Column-oriented_DBMS

 2
Author: Razan Paul, 2017-04-05 00:43:04

Informação sobre o produto. Isto pode ajudar. Estes foram para apresentar produtos em uma pesquisa do Google.

Http://www.vertica.com/

Http://www.paraccel.com/

Http://www.asterdata.com/index.php

 1
Author: S.Lott, 2010-01-25 16:03:21

O Kx é outra base de dados colunar, por exemplo, utilizada no sector financeiro. A carta custa uns 50 mil da última vez que verifiquei. Não é necessária uma optimização, não é necessário um índice, porque o kx tem operadores poderosos (equivalentes matlab: .*, kron, bsxfun, ...).

 1
Author: user2987828, 2013-12-03 09:23:21