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.

¿Fue útil?

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top