Qu’est-ce qu’une firebase database en colonnes?

Je travaille avec l’entreposage depuis un certain temps maintenant.

Je suis insortinggué par les bases de données à colonnes et la rapidité avec laquelle ils peuvent offrir des récupérations de données.

J’ai une question en plusieurs parties:

  • Comment fonctionnent les bases de données en colonnes?
  • En quoi diffèrent-ils des bases de données relationnelles?

Comment fonctionnent les bases de données en colonnes?
La firebase database en colonnes est un concept plutôt qu’une architecture / implémentation particulière . En d’autres termes, il n’y a pas de description particulière du fonctionnement de ces bases de données. en effet, plusieurs sont construits sur des SGBD traditionnels, orientés ligne, stockant simplement les informations dans des tableaux avec une (ou plutôt deux) colonnes (et en ajoutant la couche nécessaire pour accéder facilement aux données en colonnes).

En quoi diffèrent-ils des bases de données relationnelles? Ils diffèrent généralement des bases de données traditionnelles (orientées ligne) en ce qui concerne …

  • performance…
  • exigences de stockage …
  • facilité de modification du schéma …

… dans des cas d’utilisation spécifiques de SGBD .
En particulier, ils offrent des avantages dans les domaines mentionnés lorsque l’utilisation typique consiste à calculer des valeurs agrégées sur un nombre limité de colonnes, par opposition à essayer de récupérer toutes les colonnes / pour une entité donnée.

Existe-t-il une version d’essai d’une firebase database en colonnes que je peux installer pour jouer? (Je suis sur Windows 7) Oui, il existe des implémentations commerciales, gratuites et open-source de bases de données en colonnes. Voir la liste à la fin de l’article de Wikipedia pour starter.
Méfiez-vous que plusieurs de ces implémentations ont été introduites pour répondre à un besoin particulier (par exemple, très faible encombrement, dissortingbution de données hautement compressible ou émulation de masortingce de rechange) plutôt que de fournir un SGBD orienté colonne en général.

Remarque: La remarque concernant l’orientation «à but unique» de plusieurs SGBD en colonnes ne constitue pas une critique de ces implémentations, mais plutôt une indication supplémentaire qu’une telle approche pour les SGBD s’écarte de l’approche plus «naturelle» (et certainement plus largement utilisée). stockage d’entités d’enregistrement. Par conséquent, cette approche est utilisée lorsque l’approche orientée ligne n’est pas satisfaisante, et par conséquent, elle tend à
a) être ciblé pour un but particulier b) recevoir moins de ressources / d’intérêt que les travaux sur l’approche tabulaire «à usage général», «testé et testé».

Avantageusement, le modèle de données Entity-Atsortingbute-Value (EAV) peut être une stratégie de stockage alternative que vous pouvez envisager. Bien que distinct du modèle DB “Columnar”, EAV partage plusieurs caractéristiques des DB Columnar.

Comment fonctionnent les bases de données en colonnes? Le concept définissant un magasin de colonnes est que les valeurs d’une table sont stockées de manière contiguë par colonne. Ainsi, la table des fournisseurs classiques de la firebase database sur les fournisseurs et les 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 magasin de lignes traditionnel qui stockerait 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 performance, pour le meilleur ou pour le pire, entre un magasin de colonnes et un magasin de lignes. Par exemple, un magasin de colonnes excela dans les agrégations telles que les totaux et les moyennes, mais l’insertion d’une seule ligne peut être coûteuse, tandis que l’inverse est vrai pour les magasins à lignes. Cela devrait apparaître dans le diagramme ci-dessus.

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

Je dirais que le meilleur candidat pour comprendre les bases de données orientées colonnes est de vérifier HBase ( Apache Hbase ). Vous passez en revue le code et explorez plus en détail la mise en œuvre.

Information produit. Cela peut aider. C’étaient des produits en vedette sur une recherche Google.

http://www.vertica.com/

http://www.paraccel.com/

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

En outre, les DB de colonnes ont une affinité intégrée pour la compression des données et le processus de chargement est unique. Voici un article que j’ai écrit en 2008 qui explique un peu plus.

Vous pouvez également être intéressé par un nouveau rapport de Carl Olofson de IDC sur la technologie SGBD de 3ème génération. Il discute de colonne, et al. Si vous n’êtes pas un client IDC, vous pouvez l’obtenir gratuitement sur notre site. Il fait également un webinary le 16 juin (également sur notre site).

(BTW, un commentaire ci-dessus liste asterdata mais je ne pense pas qu’ils sont en colonnes.)

kx est une autre firebase database en colonnes, par exemple utilisée dans le secteur financier. La licence est un peu plus de 50 000 $ la dernière fois que j’ai vérifié. Aucune optimisation nécessaire, aucun index nécessaire, car kx a des opérateurs puissants (équivalents matlab kron .* , kron , bsxfun , …).

Pour comprendre ce qu’est une firebase database orientée colonne, il est préférable de la comparer avec une firebase database orientée ligne.

Les bases de données orientées ligne (par exemple, MS SQL Server et SQLite) sont conçues pour renvoyer efficacement les données pour une ligne entière. Il le fait en stockant toutes les valeurs de colonnes d’une ligne. Les bases de données orientées ligne sont bien adaptées aux systèmes OLTP (par exemple, les ventes au détail et les systèmes de transactions financières).

Les bases de données orientées colonnes sont conçues pour renvoyer efficacement des données pour un nombre limité de colonnes. Il le fait en stockant toutes les valeurs d’une colonne. Apache Hbase et Google BigTable (utilisés par Google pour ses recherches, ses parsings, ses cartes et Gmail) sont deux bases de données très utilisées. Ils conviennent aux projets Big Data. Une firebase database orientée colonne sera excellente pour les opérations de lecture sur un nombre limité de colonnes, mais les opérations d’écriture seront coûteuses par rapport aux bases de données orientées lignes.

Pour plus d’informations: https://en.wikipedia.org/wiki/Column-oriented_DBMS

Les bases de données de colonnes sont très utilisées en analytique et en BI. Selon Wiki . En stockant les données dans des colonnes plutôt que dans des lignes, la firebase database peut accéder plus précisément aux données dont elle a besoin pour répondre à une requête plutôt que d’parsingr et de supprimer des données indésirables dans des lignes. Ils conviennent parfaitement aux charges de travail de type OLAP pour l’entreposage de données. Selon l’ article empirique, les organisations utilisent souvent une firebase database orientée ligne exécutée dans le backend et une firebase database colonnaire pour les besoins BI initiaux.