面向PostgreSQL的开源列面向存储引擎?

时间:2009-05-04 16:25:34

标签: postgresql column-oriented

是否有任何开源项目正在为PostgreSQL创建面向列的存储引擎?我知道雅虎在内部创建了一个,并且在PostgreSQL上构建了面向列的商业产品。

4 个答案:

答案 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 postthe 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上寻找新功能。