Recomendaciones para la base de datos orientada a columnas [cerrado]
-
11-07-2019 - |
Pregunta
He encontrado que las bases de datos generalmente vienen en dos tipos, su RDBMS tradicional orientado a filas o una base de datos orientada a objetos (OODBMS). Sin embargo, a mediados de los años 90, recuerdo, apareció una nueva generación de bases de datos orientadas a columnas. A algunos de ellos se les dio el término 4GL, pero no creo que fuera un término que se atascara.
Lo que me gustaría saber es lo siguiente:
- ¿Qué bases de datos orientadas a columnas todavía existen?
- ¿Cuáles son las características de rendimiento de estas bases de datos?
- ¿Hay bases de datos orientadas a columnas de código abierto?
- ¿Con qué plataformas interoperan? (.NET, Java, etc.)
- ¿Cuál ha sido tu experiencia general con ellos?
Las dos bases de datos orientadas a columnas con las que recuerdo haber trabajado son FAME y KDB.
Solución
HBase es un sistema de base de datos orientado a columnas de código abierto modelado en Google BigTable .
Otros consejos
Infobright
Es un motor MySQL orientado a columnas
Puede usar (casi) todas las API / interfaces / herramientas de MySQL pero está orientado a columnas.
Es de código abierto y tiene una versión gratuita.
Es muy bueno para el almacenamiento. Tenía una tabla de hechos 10Gig en el servidor SQL.
Infobright lo comprimió a 15 MB.
También echa un vistazo a la tienda C de Michael Stonebraker: C-store (incluye enlaces al código fuente y al documento de investigación)
El documento contiene un excelente punto de vista sobre bases de datos orientadas a columnas, que debería responder la mayoría de sus preguntas.
Para citar el artículo,
"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 es uno de los que he oído hablar.
InfiniDB fue lanzado recientemente en código abierto (GPLv2) por Calpont. Admite la mayor parte de la API MySQL y almacena datos orientados a columnas, y está optimizado para el procesamiento analítico a gran escala.
Aquí está el diferente DBMS orientado a columnas que tiene wiki Implementaciones de DBMS orientadas a columnas
Sybase IQ está orientado a columnas. Todas las columnas se indexan automáticamente cuando crea una tabla y los datos se comprimen muy bien en las columnas.
Es una buena base de datos OLAP (... data warehouse) pero no la recomendaría para ningún tipo de procesamiento de transacciones, ya que está diseñada para operaciones de data warehouse.
En cuanto a las características de rendimiento, los SELECTOS son muy rápidos para grandes volúmenes de datos, pero INSERT / UPDATE / DELETEs son muy lentos en comparación con un DB OLTP estándar como Sybase ASE, por ejemplo. El bloqueo de tablas también es muy diferente al de una base de datos OLTP, por lo tanto, espere bloqueos de tabla exclusivos para operaciones de escritura (INSERTOS, etc.) cuando trabaje en el almacén de datos PRINCIPAL.
De lo contrario, admite T-SQL (versión Sybase) y Watcom SQL.
Saludos,
Kevin