statements pricing create about sql database

sql - pricing - ¿Qué es una base de datos en columnas?



sql database download (8)

Además, los DB columnares tienen una afinidad incorporada para la compresión de datos, y el proceso de carga es único. Aquí hay un article que escribí en 2008 que explica un poco más.

También le puede interesar un nuevo informe de Carl Olofson de IDC sobre tecnología DBMS de 3ra generación. Discute columnar, et al. Si no es un cliente de IDC, puede obtenerlo gratis en nuestro sitio. También realizará un seminario web el 16 de junio (también en nuestro sitio).

(Por cierto, un comentario anterior enumera asterdata, pero no creo que sean columnas).

He estado trabajando con el almacenamiento desde hace un tiempo.

Estoy intrigado por las bases de datos Columnar y la velocidad que tienen que ofrecer para la recuperación de datos.

Tengo una pregunta de varias partes:

  • ¿Cómo funcionan las bases de datos columnares?
  • ¿Cómo difieren de las bases de datos relacionales?


Las bases de datos columnares son muy utilizadas en análisis y BI. De acuerdo con https://en.wikipedia.org/wiki/Column-oriented_DBMS . Al almacenar datos en columnas en lugar de filas, la base de datos puede acceder con mayor precisión a los datos que necesita para responder a una consulta en lugar de escanear y descartar datos no deseados en filas. Son adecuados para cargas de trabajo similares a OLAP para el almacenamiento de datos. De acuerdo con el article empírico, las organizaciones a menudo usan una base de datos orientada a filas que se ejecuta en el back-end y una base de datos en columnas para las necesidades de BI front-end.


Para comprender qué es una base de datos orientada a columnas, es mejor contrastarla con la base de datos orientada a filas.

Las bases de datos orientadas a filas (por ejemplo, MS SQL Server y SQLite) están diseñadas para devolver datos de manera eficiente para una fila completa. Lo hace almacenando todos los valores de las columnas de una fila. Las bases de datos orientadas a filas son adecuadas para sistemas OLTP (por ejemplo, ventas minoristas y sistemas de transacciones financieras).

Las bases de datos orientadas a columna están diseñadas para devolver datos de manera eficiente para un número limitado de columnas. Lo hace al almacenar todos los valores de una columna juntos. Dos bases de datos orientadas a columnas ampliamente utilizadas son Apache Hbase y Google BigTable (utilizadas por Google para su búsqueda, análisis, mapas y Gmail). Son adecuados para los proyectos de Big Data. Una base de datos orientada a columnas se destacará en operaciones de lectura en un número limitado de columnas, sin embargo, la operación de escritura será costosa en comparación con las bases de datos orientadas a filas.

Para más información: https://en.wikipedia.org/wiki/Column-oriented_DBMS


Yo diría que el mejor candidato para entender sobre las bases de datos orientadas a columnas es verificar HBase ( Apache Hbase ). Puede verificar el código y explorar más para conocer la implementación.


kx es otra base de datos columnar, por ejemplo, utilizada en el sector financiero. Sin embargo, la licencia fue de $ 50K la última vez que revisé. No se necesita optimización, no se necesita índice, porque kx tiene operadores potentes (equivalentes de matlab:. .* , kron , bsxfun , ...).


¿Cómo funcionan las bases de datos columnares? El concepto de definición de una tienda de columnas es que los valores de una tabla se almacenan contiguamente por columna. Por lo tanto, la tabla de proveedores clásicos de la base de datos de proveedores y partes 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

Sería almacenado en el disco o en la memoria algo así como:

S1S2S3S4S5;2010302030;LondonParisParisLondonAthens;SmithJonesBlakeClarkAdams

Esto está en contraste con una tienda de filas tradicional que almacenaría los datos más como esto:

S120LondonSmith;S210ParisJones;S330ParisBlake;S420LondonClark;S530AthensAdams

De este concepto simple fluyen todas las diferencias fundamentales en el rendimiento, para bien o para mal, entre una tienda de columnas y una tienda de filas. Por ejemplo, un almacén de columnas se destacará al realizar agregaciones como totales y promedios, pero insertar una sola fila puede ser costoso, mientras que el inverso se aplica a las tiendas en fila. Esto debería ser evidente en el diagrama anterior.

¿Cómo difieren de las bases de datos relacionales? Una base de datos de relaciones es un concepto lógico. Una base de datos columnar, o column-store, es un concepto físico. Por lo tanto, los dos términos no son comparables de ninguna manera significativa. Los DMBS orientados a columnas pueden ser relacionales o no, del mismo modo que los DBMS orientados a filas pueden adherirse más o menos a principios relacionales.


¿Cómo funcionan las bases de datos columnares?
La base de datos Columnar es un concepto más bien una arquitectura / implementación particular. En otras palabras, no hay una descripción particular sobre cómo funcionan estas bases de datos; de hecho, varios se basan en DBMS tradicional, orientado a filas, simplemente almacenando la información en tablas con una (o más bien a menudo dos) columnas (y agregando la capa necesaria para acceder a los datos de columna de una manera fácil).

¿Cómo difieren de las bases de datos relacionales? Por lo general, difieren de las bases de datos tradicionales (orientadas a filas) con respecto a ...

  • actuación...
  • requisitos de almacenamiento ...
  • facilidad de modificación del esquema ...

... en casos de uso específico de DBMSes .
En particular, ofrecen ventajas en las áreas mencionadas cuando el uso típico es calcular valores agregados en un número limitado de columnas, en lugar de tratar de recuperar todas / la mayoría de las columnas para una entidad determinada.

¿Existe una versión de prueba de una base de datos en columnas que pueda instalar para jugar? (Estoy en Windows 7) Sí, hay una implementación comercial, gratuita y también de código abierto de bases de datos columnares. Consulte la lista al final del artículo de Wikipedia para empezar.
Tenga en cuenta que varias de estas implementaciones se introdujeron para abordar una necesidad particular (por ejemplo, muy pequeña, distribución de datos altamente compresible o emulación de matrices de repuesto, etc.) en lugar de proporcionar un DBMS orientado a columnas de uso general per se.

Nota: El comentario sobre la "orientación de propósito único" de varios DBMSes columnares no es una crítica de estas implementaciones, sino más bien una indicación adicional de que dicho enfoque para DBMSes se desvía del enfoque más "natural" (y ciertamente más ampliamente utilizado) para almacenando entidades de registro. Como resultado, este enfoque se utiliza cuando el enfoque orientado a filas no es satisfactorio, y por lo tanto, y tiende a
a) ser objetivo para un propósito particular b) recibir menos recursos / interés que trabajar en el enfoque tabular "Propósito general", "Probado y probado".

Tentativamente, el modelo de datos Entity-Attribute-Value (EAV), puede ser una estrategia de almacenamiento alternativa que tal vez desee considerar. Aunque es distinto del modelo de DB columna "puro", EAV comparte varias de las características de los DB columnares.