Существуют ли проекты open source в работах для создания механизма хранения столбцов для PostgreSQL? Я знаю, что Yahoo создал один из них и что на PostgreSQL есть коммерческие продукты, ориентированные на столбцы.
Механизм хранения с открытым исходным кодом для PostgreSQL?
Ответ 1
Citus Data разработала расширение хранилища столбцов с открытым исходным кодом для PostgreSQL. Он доступен под лицензией Apache 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;
Внешние таблицы могут запрашиваться как любая другая таблица. Вы можете даже присоединиться к ним с помощью обычных таблиц.
Дополнительные примеры и информация доступны в связанном блоге и главная страница проекта.
Ответ 2
Отсутствие ответов здесь и моих собственных исследований, похоже, указывает на то, что действительно нет инициатив с открытым исходным кодом для добавления хранилища столбцов в PostgreSQL.
В 2008 году были разговоры об Yahoo, возможно, аутсорсинге Everest (их конец хранилища для PostgreSQL), поэтому здесь надеются, что они выпустят его.
Ответ 3
Greenplum создал механизм PostgreSQL, ориентированный на столбцы.
Ответ 4
Я искал такой же тип расширения/реализации, пока я играл с monetDB. После нахождения cstore_ftw из Citus Data я вошел в этот пост из monetDB: https://www.monetdb.org/content/citusdb-postgresql-column-store-vs-monetdb-tpc-h-shootout
Так как cstore_ftw использует обработчик запросов в стиле вулканов PostgreSQL, мы сразу же заподозрили, что этот компонент будет ограничивать фактор его производительности.
Я не тестировал себя, но (IMO) MonetDB серьезно относятся к своим вещам. Я думаю, что это будет прекрасно, если MonetDB создает расширение/реализацию для PostgreSQL. Сейчас я все еще работаю с monetDB, ища новые функции на PostgreSQL.