DevOps研发效能
媒体矩阵
开源中国APP
授权协议 MIT license
开发语言 C/C++ 查看源码 »
操作系统 跨平台
软件类型 开源软件
所属分类 大数据数据存储
开源组织
地区 不详
投 递 者 不详
适用人群 未知
收录时间 2025-05-06

软件简介

pg_mooncake 是一个 PostgreSQL 扩展,它集成了列式存储和向量执行(DuckDB)功能,以实现 PostgreSQL 中的快速分析。

Postgres + pg_mooncake 在 ClickBench 测试中排名前十。

 

核心功能

  • 使用 Iceberg 或 Delta Lake 作为列存储表
  • 与 PostgreSQL 堆表进行 JOIN 操作
  • 支持从多种数据源加载数据,包括 Parquet、CSV、JSON 文件以及 Iceberg 和 Delta Lake 表
  • 支持事务、更新、删除、JOIN 操作等

安装

选项 1:使用 Docker

docker pull mooncakelabs/pg_mooncake
docker run --name mooncake-demo -e POSTGRES_HOST_AUTH_METHOD=trust -d mooncakelabs/pg_mooncake
docker run -it --rm --link mooncake-demo:postgres mooncakelabs/pg_mooncake psql -h postgres -U postgres

选项 2:从源码安装

git clone --recurse-submodules https://github.com/Mooncake-Labs/pg_mooncake.git
make release -j$(nproc) make install

选项 3:在 Neon Postgres 上安装

  1. 创建 Neon 项目
  2. 启用 beta 扩展
  3. 执行以下 SQL 命令:
SET neon.allow_unstable_extensions='true';

快速开始

  1. 启用扩展:
CREATE EXTENSION pg_mooncake;
  1. 创建列存储表:
CREATE TABLE user_activity(
  user_id BIGINT,
  activity_type TEXT,
  activity_timestamp TIMESTAMP,
  duration INT)
USING columnstore;
  1. 插入数据:
INSERT INTO user_activity VALUES
(1, 'login', '2024-01-01 08:00:00', 120),
(2, 'page_view', '2024-01-01 08:05:00', 30),
(3, 'logout', '2024-01-01 08:30:00', 60),
(4, 'error', '2024-01-01 08:13:00', 60);
SELECT * from user_activity;

云存储

列存储表默认存储在本地文件系统中。您可以通过配置 mooncake.default_bucket 将数据存储在 S3 或 R2 存储桶中。

加载数据

pg_mooncake 支持从以下数据源加载数据:

  • PostgreSQL 堆表
  • Parquet、CSV、JSON 文件
  • Iceberg、Delta Lake 表
  • Hugging Face 数据集

列存储表作为 Iceberg 或 Delta Lake 表

您可以通过以下 SQL 命令找到列存储表的位置:

SELECT * FROM mooncake.columnstore_tables;

该目录包含 Delta Lake(和即将到来的 Iceberg)表,可以直接使用 Pandas、DuckDB、Polars 或 Spark 进行查询。

路线图

  • 事务性 INSERT、SELECT、UPDATE、DELETE 和 COPY
  • 与常规 PostgreSQL 堆表 JOIN
  • 将 Parquet、CSV 和 JSON 文件加载到列存储表中
  • 读取现有的 Iceberg 和 Delta Lake 表
  • 文件统计和跳过
  • 写入 Delta Lake 表
  • 写入 Iceberg 表
  • 批量小写入和压缩
  • 二级索引和约束
  • 分区表

注意:文件统计和跳过应该涵盖大多数使用 Postgres 分区表的场景,包括时间序列。

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击引领话题📣 发布并加入讨论🔥
暂无内容
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
暂无内容
0 评论
1 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部