ventajas valor una relacional que ejemplos desventajas datos columnas columnar clave caracteristicas bases basadas database column-oriented

database - valor - que es una base de datos no relacional



Recomendaciones para la base de datos orientada a columnas (7)

Infobright
Es un motor MySQL orientado a columna
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 de 10 Gig en el servidor SQL. Infobright lo comprimió a 15MB.

He encontrado que las bases de datos generalmente vienen en dos formas, su RDBMS tradicional orientado a filas o una base de datos orientada a objetos (OODBMS). Sin embargo, a mediados de los 90, recuerdo, una nueva generación de bases de datos que aparecían orientadas a columnas. A algunos de ellos se les dio el término 4GL, pero no creo que haya sido un término que haya quedado.

Lo que me gustaría saber es lo siguiente:

  • ¿Qué bases de datos orientadas a columnas aún existen?
  • ¿Cuáles son las características de rendimiento de estas bases de datos?
  • ¿Hay alguna base de datos orientada a columnas de código abierto?
  • Con qué plataformas interactúan (.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.


Sybase IQ está orientado a columnas. Todas las columnas se indexan automáticamente cuando se crea una tabla y los datos se comprimen muy bien en las columnas.

Es una buena base de datos OLAP (... almacén de datos) pero no lo recomendaría para ningún tipo de procesamiento de transacciones ya que está diseñado para operaciones de almacenamiento de datos.

En cuanto a las características de rendimiento, los SELECTS son muy rápidos para grandes volúmenes de datos, pero INSERT / UPDATE / DELETE son muy lentos en comparación con un DB OLTP estándar, como Sybase ASE, por ejemplo. El bloqueo de tabla también es muy diferente de una base de datos OLTP, por lo que se esperan bloqueos de tabla exclusivos para las operaciones de escritura (INSERTOS, etc.) cuando se trabaja en el almacén de datos PRINCIPAL.

De lo contrario, es compatible con T-SQL (versión de Sybase) y Watcom SQL.

Aclamaciones,

Kevin


También vea la tienda C de Michael Stonebraker: C-store (incluye enlaces al código fuente y al trabajo 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 documento,

"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."


InfiniDB fue lanzado recientemente como fuente abierta (GPLv2) por Calpont. Admite la mayor parte de la API de MySQL y almacena datos de forma orientada a columnas, y está optimizado para el procesamiento analítico a gran escala.




Sybase IQ es uno de los que he oído hablar.