Recommandations pour la base de données orientée colonne [fermé]
-
11-07-2019 - |
Question
J'ai trouvé que les bases de données se déclinent généralement en deux versions: votre SGBDR orienté ligne traditionnel ou une base de données orientée objet (OODBMS). Cependant, au milieu des années 90, je me souviens d'une nouvelle génération de bases de données présentant des colonnes. Certains d'entre eux ont reçu le terme 4GL, mais je ne pense pas que ce soit un terme qui a collé.
Ce que j'aimerais savoir, c'est ce qui suit:
- Quelles bases de données orientées colonnes existent toujours?
- Quelles sont les caractéristiques de performance de ces bases de données?
- Existe-t-il des bases de données open source orientées colonnes?
- Avec quelles plateformes interagissent-ils (.NET, Java, etc.)
- Quelle a été votre expérience générale avec eux?
Les bases de données orientées colonnes que je me souviens avoir travaillées sont FAME et KDB.
La solution
HBase est un système de base de données à code source libre et à code source inspiré de Le BigTable de Google .
Autres conseils
Infobright
C'est un moteur MySQL orienté colonnes.
Vous pouvez utiliser (presque) tous les api / interfaces / tools de MySQL, mais il est orienté colonne.
Il est open-source et possède une version gratuite.
C'est très bon pour l'entreposage. J'ai eu une table de faits 10Gig dans le serveur SQL.
Infobright l'a compressé à 15 Mo.
Découvrez également le C-store de Michael Stonebraker: C-store (inclut des liens vers le code source et le document de recherche)
Le document contient un excellent point de vue sur les bases de données orientées colonnes, qui devrait répondre à la plupart de vos questions.
Pour citer le document,
"Most major DBMS vendors implement record-oriented
storage systems, where the attributes of a record (or tuple)
are placed contiguously in storage. With this row store
architecture, a single disk write suffices to push all of the
fields of a single record out to disk. Hence, high
performance writes are achieved, and we call a DBMS
with a row store architecture a write-optimized system.
In contrast, systems oriented toward ad-hoc querying
of large amounts of data should be read-optimized. Data
warehouses represent one class of read-optimized system,
in which periodically a bulk load of new data is
performed, followed by a relatively long period of ad-hoc
queries. Other read-mostly applications include customer
relationship management (CRM) systems, electronic
library card catalogs, and other ad-hoc inquiry systems. In
such environments, a column store architecture, in which
the values for each single column (or attribute) are stored
contiguously, should be more efficient. This efficiency
has been demonstrated in the warehouse marketplace by
products like Sybase IQ [FREN95, SYBA04], Addamark
[ADDA04], and KDB [KDB04]. In this paper, we discuss
the design of a column store called C-Store that includes a
number of novel features relative to existing systems."
Sybase IQ est celui dont j'ai entendu parler.
InfiniDB a récemment été publié en open source (GPLv2) par Calpont. Il supporte la plupart des API MySQL et stocke les données sous forme de colonnes. Il est optimisé pour le traitement analytique à grande échelle.
Voici les différents wiki de SGBD axés sur les colonnes Implémentations de SGBD orientées colonnes
Sybase IQ est orienté colonne. Toutes les colonnes sont automatiquement indexées lorsque vous créez une table et les données sont bien compressées dans les colonnes.
C'est une bonne base de données OLAP (... entrepôt de données), mais je ne le recommanderais pas pour tout type de traitement de transaction, car il est conçu pour les opérations d'entrepôt de données.
En ce qui concerne les caractéristiques de performances, SELECTS est très rapide pour les gros volumes de données, mais les actions INSERT / UPDATE / DELETE sont très lentes comparées à une base de données OLTP standard telle que Sybase ASE. Le verrouillage de table est également très différent d’une base de données OLTP. Par conséquent, attendez-vous à des verrous de table exclusifs pour les opérations d’écriture (INSERTS, etc.) lorsque vous travaillez dans le magasin de données MAIN.
Sinon, il prend en charge T-SQL (version Sybase) et Watcom SQL.
A bientôt,
Kevin