108 votes

Qu'est-ce qu'une base de données colonnaire ?

Je travaille dans le domaine de l'entreposage depuis un certain temps déjà.

Je suis intrigué par les bases de données en colonnes et la vitesse qu'elles offrent pour l'extraction des données.

J'ai une question en plusieurs parties :

  • Comment fonctionnent les bases de données colonnaires ?
  • En quoi diffèrent-elles des bases de données relationnelles ?
  • Existe-t-il une version d'essai d'une base de données columnar que je peux installer pour m'amuser ? (Je suis sous Windows 7)

266voto

Paul Mansour Points 361

Comment fonctionnent les bases de données colonnaires ? Le concept déterminant d'un magasin en colonnes est que les valeurs d'une table sont stockées de manière contiguë par colonne. Ainsi, la table classique des fournisseurs de la base de données des fournisseurs et des pièces de 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

serait stocké sur le disque ou en mémoire quelque chose comme :

S1S2S3S4S5;2010302030;LondonParisParisLondonAthens;SmithJonesBlakeClarkAdams 

Cela contraste avec un rowstore traditionnel qui stocke les données de la manière suivante :

S120LondonSmith;S210ParisJones;S330ParisBlake;S420LondonClark;S530AthensAdams

De ce simple concept découlent toutes les différences fondamentales de performances, pour le meilleur ou pour le pire, entre un magasin en colonnes et un magasin en lignes. Par exemple, un magasin en colonnes excellera dans les agrégations telles que les totaux et les moyennes, mais l'insertion d'une seule ligne peut être coûteuse, alors que l'inverse est vrai pour les magasins en lignes. Cela devrait être évident d'après le diagramme ci-dessus.

En quoi diffèrent-elles des bases de données relationnelles ? Une base de données relationnelle est un concept logique. Une base de données en colonnes, ou magasin en colonnes, est un concept physique. Les deux termes ne sont donc pas comparables de manière significative. Les SGBD orientés colonnes peuvent être relationnels ou non, tout comme les SGBD orientés lignes peuvent adhérer plus ou moins aux principes relationnels.

52voto

mjv Points 38081

Comment fonctionnent les bases de données colonnaires ?
La base de données colonnaire est une concept plutôt un architecture/implémentation . En d'autres termes, il n'existe pas de description particulière du fonctionnement de ces bases de données ; en effet, plusieurs d'entre elles sont construites sur la base de SGBD traditionnels, orientés ligne, qui stockent simplement les informations dans des tables à une (ou plutôt deux) colonne(s) (et ajoutent la couche nécessaire pour accéder facilement aux données en colonne).

En quoi diffèrent-elles des bases de données relationnelles ? Elles diffèrent généralement des bases de données traditionnelles (orientées lignes) en ce qui concerne ...

  • performance...
  • les besoins de stockage ...
  • facilité de modification du schéma ...

...dans des cas d'utilisation spécifiques des SGBD .
Ils offrent notamment des avantages dans les domaines mentionnés lorsque l'utilisation typique consiste à calculer des valeurs agrégées sur un nombre limité de colonnes, plutôt que d'essayer de récupérer toutes/la plupart des colonnes pour une entité donnée.

Existe-t-il une version d'essai d'une base de données columnar que je peux installer pour m'amuser ? (Je suis sous Windows 7) Oui, il existe des implémentations commerciales, gratuites et également open-source des bases de données colonnaires. Voir la liste à la fin de l'article Article de Wikipedia pour le démarrage.
Sachez que plusieurs de ces implémentations ont été introduites pour répondre à un besoin particulier (par exemple, une très petite empreinte, une distribution hautement compressible des données, ou une émulation de matrice de rechange, etc.) plutôt que de fournir un SGBD orienté colonnes à usage général en soi.

Note : La remarque sur "l'orientation à but unique" de plusieurs SGBD en colonnes n'est pas une critique de ces implémentations, mais plutôt une indication supplémentaire qu'une telle approche pour les SGBD s'éloigne de l'approche plus "naturelle" (et certainement plus largement utilisée) du stockage des entités d'enregistrement. En conséquence, cette approche est utilisée lorsque l'approche orientée ligne n'est pas satisfaisante, et tend donc à
a) sont ciblés dans un but particulier b) reçoivent moins de ressources/intérêt que les travaux sur l'approche tabulaire "à usage général", "testée et éprouvée".

A titre indicatif, le Entité-Attribut-Valeur (EAV), peut constituer une stratégie de stockage alternative que vous pouvez envisager. Bien qu'il soit distinct du modèle de base de données colonnaire "pur", le modèle EAV partage plusieurs des caractéristiques des bases de données colonnaires.

4voto

hari_sree Points 559

Je dirais que le meilleur candidat pour comprendre les bases de données orientées colonnes est de consulter HBase ( Apache Hbase ) . Vous pouvez vérifier le code et l'explorer davantage pour en savoir plus sur l'implémentation.

4voto

Mark Points 14208

Wikipedia fournit une vue d'ensemble de haut niveau comme point de départ ainsi qu'une liste de bases de données à colonnes commerciales et open source.

2voto

kim stanick Points 21

En outre, les bases de données colonnaires ont une affinité intrinsèque pour la compression des données et le processus de chargement est unique. Voici un exemple article J'ai écrit en 2008 un article qui en explique un peu plus.

Vous serez peut-être également intéressé par un nouveau rapport de Carl Olofson d'IDC sur la technologie des SGBD de troisième génération. Si vous n'êtes pas client d'IDC, vous pouvez l'obtenir gratuitement sur notre site. Il organise également un webinaire le 16 juin (également sur notre site).

(BTW, un commentaire ci-dessus mentionne les asterdata mais je ne pense pas qu'ils soient colonnaires).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X