是否有任何开源项目正在为PostgreSQL创建面向列的存储引擎?我知道雅虎在内部创建了一个,并且在PostgreSQL上构建了面向列的商业产品。
答案 0 :(得分:17)
Citus Data为PostgreSQL开发了一个开源的柱状商店扩展。它在Apache License v2.0下提供。它支持PostgreSQL 9.3及更高版本。
首先,创建扩展和外部服务器:
CREATE EXTENSION cstore_fdw;
CREATE SERVER cstore_server FOREIGN DATA WRAPPER cstore_fdw;
接下来,创建一些外来表:
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');
最后,COPY
数据进入表格:
COPY customer_reviews FROM '/home/user/customer_reviews_1998.csv' WITH CSV;
可以像查询任何其他表一样查询外部表。您甚至可以使用常规表格加入它们。
related blog post和the project's home page中提供了更多示例和信息。
答案 1 :(得分:5)
这里缺乏回复以及我自己的研究似乎表明,确实没有向PostgreSQL添加列存储的开源计划。
2008年有人谈到雅虎可能将珠穆朗玛峰外包(他们的专栏店为PostgreSQL后端),所以希望他们能够发布它。
答案 2 :(得分:3)
Greenplum为PostgreSQL创建了一个面向列的存储引擎。
答案 3 :(得分:1)
我在使用monetDB时正在寻找相同类型的扩展/实现。 从Citus Data找到 cstore_ftw 后,我从monetDB发表了这篇文章:https://www.monetdb.org/content/citusdb-postgresql-column-store-vs-monetdb-tpc-h-shootout
由于cstore_ftw正在使用PostgreSQL的火山式查询处理器, 我们立刻怀疑这个组件会受到限制 它的表现因素。
我没有测试过自己,但是(IMO)MonetDB认真对待他们的东西。 我认为如果MonetDB为PostgreSQL创建扩展/实现将是完美的。现在我仍在使用monetDB,同时在PostgreSQL上寻找新功能。