una relacional que orientadas ejemplos definicion datos consultas columnas columnar bases basadas aws postgresql column-oriented

postgresql - relacional - ejemplos de base de datos columnar



¿Motor de almacenamiento orientado a columnas de código abierto para PostgreSQL? (4)

Estaba buscando el mismo tipo de extensión / implementación mientras jugaba con monetDB. Después de encontrar cstore_ftw en Citus Data, entré en esta publicación de monetDB: https://www.monetdb.org/content/citusdb-postgresql-column-store-vs-monetdb-tpc-h-shootout

Dado que cstore_ftw utiliza el procesador de consultas de estilo volcánico de PostgreSQL, inmediatamente sospechamos que este componente sería el factor limitante de su rendimiento.

No me he probado, pero (OMI) MonetDB son serios con sus cosas. Creo que será perfecto si MonetDB crea una extensión / implementación para PostgreSQL. En este momento todavía estoy trabajando con monetDB mientras busco nuevas funciones en PostgreSQL.

¿Hay algún proyecto de código abierto en proceso para crear un motor de almacenamiento orientado a columnas para PostgreSQL? Sé que Yahoo creó uno interno, y que hay productos comerciales creados en PostgreSQL que están orientados a columnas.


La falta de respuestas aquí y mi propia investigación parece indicar que, de hecho, no hay iniciativas de código abierto para agregar almacenamiento de columnas a PostgreSQL.

Hubo algunas conversaciones en 2008 sobre la posible externalización de Yahoo en Everest (su parte posterior de la tienda de columnas para PostgreSQL), así que espero que lo liberen.


Citus Data ha desarrollado una extensión de almacén de columnas de código abierto para PostgreSQL. Está disponible bajo la licencia Apache v2.0. Es compatible con PostgreSQL 9.3 y superior.

Primero, creación de la extensión y un servidor externo:

CREATE EXTENSION cstore_fdw; CREATE SERVER cstore_server FOREIGN DATA WRAPPER cstore_fdw;

A continuación, crea algunas tablas extranjeras:

CREATE FOREIGN TABLE customer_reviews ( customer_id TEXT, review_date DATE, review_rating INTEGER, review_votes INTEGER, review_helpful_votes INTEGER, product_id CHAR(10), product_title TEXT, product_sales_rank BIGINT, product_group TEXT, product_category TEXT, product_subcategory TEXT, similar_product_ids CHAR(10)[] ) SERVER cstore_server OPTIONS(filename ''/opt/citusdb/3.0/cstore/customer_reviews.cstore'', compression ''pglz'');

Finalmente, COPY datos en la tabla:

COPY customer_reviews FROM ''/home/user/customer_reviews_1998.csv'' WITH CSV;

Las tablas externas se pueden consultar como cualquier otra tabla. Incluso puedes unirte a ellos con mesas regulares.

Más ejemplos e información están disponibles en una publicación de blog relacionada y en la página de inicio del proyecto .


Greenplum ha creado un motor de almacenamiento orientado a columnas para PostgreSQL.