PolarDB开源新作:DuckDB-paimon,助力企业构建面向AI的多模数据底座

简介: DuckDB-paimon 是 PolarDB 团队开发的 DuckDB 插件,支持直接查询 Apache Paimon 数据湖表(本地/OSS),无需 Flink/Spark 集群。基于 paimon-cpp 原生 C++ 实现,具备列裁剪、多线程扫描、Secret 安全凭证等特性,实现秒级轻量分析。

项目地址:https://github.com/polardb/duckdb-paimon

如果这个项目对你有帮助,欢迎 ⭐ Star 支持!有问题或建议欢迎提 Issue 或 PR。

钉群:164165020808


DuckDB-paimon 是由 PolarDB 团队开发的一款 DuckDB 扩展插件,让 DuckDB 能够直接读取和查询 Apache Paimon 格式的数据湖表,无需任何 ETL 搬运,无需 Flink/Spark 集群,打开 DuckDB Shell 即可对 Paimon 表执行 SQL 分析。

它的定位与 DuckDB 官方的 duckdb-iceberg 插件相同——把 DuckDB 强大的本地分析能力延伸到 Paimon 数据湖生态。

为什么你需要 DuckDB ?

Apache Paimon 是新一代实时湖仓格式,融合了 Lake Format 与 LSM 结构,原生支持流批一体写入,在实时数仓场景中被广泛采用。

然而 Paimon 生态缺少一个足够轻量级、低延迟的查询入口

  • 用 Flink/Spark 查询:需要预先部署集群,资源重;查询延迟高,更适合批处理查询
  • 用 Trino/Presto:相比前者查询延迟降低,对百 ms 查询更友好,但仍免不了集群部署的复杂性

DuckDB 是一款嵌入式 OLAP 数据库,无需服务端、秒级启动、单文件部署,在本地 Notebook 环境中做数据分析极为高效。例如,PolarDB PostgreSQL版 基于 PostgreSQL 的行存引擎和基于 DuckDB 的列存引擎深度融入 PolarDB 统一云原生数据库架构(即:列存索引 IMCI),实现复杂查询分析性能百倍提升

DuckDB 承担了当今 AI+数据湖分析的关键角色,而本次发布的 Duckdb-paimon 插件也补齐了 Paimon 数据源的空缺。Duckdb-paimon 将两者打通,让数据工程师和分析师可以用最轻量的方式直接查询Paimon 数据湖。

核心能力

直接读取 Paimon 表

无需任何中间转换,直接通过 SQL 查询 Paimon 表数据:

-- 通过完整路径读取
SELECT * FROM paimon_scan('./data/testdb.db/testtbl');
-- 通过 warehouse / database / table 三段式读取
SELECT * FROM paimon_scan('/warehouse', 'mydb', 'orders');

远程 OSS 存储支持

通过 DuckDB 的 Secret 机制,安全配置阿里云 OSS 访问凭证,直接查询存储在 OSS 上的 Paimon 数据湖:

-- 配置 OSS 访问凭证
CREATE SECRET paimon_oss (
    TYPE paimon,
    key_id 'your-access-key-id',
    secret 'your-access-key-secret',
    endpoint 'oss-cn-hangzhou.aliyuncs.com'
);
-- 直接查询 OSS 上的 Paimon 表
SELECT COUNT(*), region
FROM paimon_scan('oss://my-bucket/warehouse', 'sales_db', 'orders')
GROUP BY region
ORDER BY COUNT(*) DESC;

Projection Pushdown(列裁剪下推)

查询时只读取 SQL 中实际用到的列,大幅减少 I/O 开销,在宽表场景下效果尤为显著:

-- 只会读取 order_id 和 amount 两列的数据文件,其余列不会被读取
SELECT order_id, amount FROM paimon_scan('oss://...', 'db', 'orders');

作为 Catalog 挂载(ATTACH)

将 Paimon warehouse 作为一个完整的 Catalog 挂载到 DuckDB,像操作本地数据库一样浏览 Paimon 的 Schema 和表结构:

ATTACH 'oss://my-bucket/warehouse' AS paimon_lake (TYPE paimon);
SHOW ALL TABLES IN paimon_lake;
DESCRIBE paimon_lake.sales_db.orders;

典型应用场景

实时湖仓的轻量即席查询

数据由 Flink 实时写入 Paimon,分析师用 DuckDB + Duckdb-paimon 直接在 OSS 上做即席(ad-hoc)查询,无需启动任何计算集群,查询延迟从分钟级降至秒级。

数据验证与质量检查

在 CI/CD 流水线中,用 DuckDB 对 Paimon 表做数据质量断言,验证 Flink 作业的输出结果是否符合预期,轻量、快速、无依赖。

数据探索与调试

数据工程师在开发 Flink 作业时,随时用 DuckDB Shell 查看 Paimon 表的当前状态,快速定位数据问题,效率远超启动 Flink SQL Client。

跨格式数据联邦查询

DuckDB 天然支持查询 Parquet、CSV、JSON、Iceberg 等多种格式,结合 Duckdb-paimon,可以将 Paimon 表与其他数据源做联邦 JOIN,无需数据搬运:

-- Paimon 订单表 JOIN 本地 CSV 维表
SELECT o.order_id, o.amount, c.customer_name
FROM paimon_scan('oss://...', 'db', 'orders') o
JOIN read_csv('customers.csv') c ON o.customer_id = c.id;

技术亮点

基于 paimon-cpp 原生 C++ 实现

Duckdb-paimon 底层依托 paimon-cpp,阿里巴巴开源的Paimon C++ 原生读写库。相比 JVM 方案:

  • 零 JVM 依赖:无需安装 Java 运行时,部署极简
  • 低内存占用:C++ 原生实现,内存效率远优于 JVM
  • 快速启动:无 JVM 预热开销,DuckDB 进程秒级就绪

Arrow 格式数据交换

paimon-cpp 与 DuckDB 之间通过 Apache Arrow 格式交换数据,这是列式数据在内存中传递的工业标准,避免了序列化/反序列化开销,实现数据高效流转。

多线程并行扫描

扫描计划(Scan Plan)会将 Paimon 表拆分为多个独立的 Split,DuckDB 的多线程执行引擎可以并行读取各个 Split,充分利用多核 CPU 资源。

DuckDB Secret 安全凭证管理

OSS 访问凭证通过 DuckDB 原生的 Secret Manager 管理,支持作用域隔离,密钥不会出现在查询日志中(自动脱敏)。

路线图

能力

状态

读取 Paimon 表(本地 / OSS)

已完成

Projection Pushdown

已完成

Parquet + ORC 格式支持

已完成

Catalog ATTACH

已完成

Filter Pushdown(谓词下推)

规划中

快照查询(Time Travel

规划中

写入 Paimon 表

规划中

元数据管理(DDL)

规划中

接入 REST Catalog / DLF 等远程 Catalog 服务

规划中

更多文件系统支持(HDFS 等)

规划中

快速上手

构建

git clone --recurse-submodules https://github.com/polardb/duckdb-paimon.git
cd duckdb-paimon
GEN=ninja make

--recurse-submodules 会同时拉取 DuckDB 和 paimon-cpp 子模块,是构建所必需的。

运行

./build/release/duckdb

查询本地 Paimon 表

SELECT * FROM paimon_scan('./data/testdb.db/testtbl');

查询 OSS 上的 Paimon 表

CREATE SECRET my_oss (
    TYPE paimon,
    key_id 'your-ak',
    secret 'your-sk',
    endpoint 'oss-cn-hangzhou.aliyuncs.com'
);
SELECT * FROM paimon_scan('oss://your-bucket/warehouse', 'your_db', 'your_table');

关于 PolarDB for PostgreSQL

PolarDB for PostgreSQL 是阿里云自研的云原生数据库。在计算存储分离架构下,利用软硬件结合的优势,提供具备秒级弹性、高性能、海量存储、安全可靠的数据库服务。PolarDB PostgreSQL 100% 兼容原生PostgreSQL的多个版本,包括PostgreSQL 11/14/15/16/17/18。

PolarDB for PostgreSQL 基于 DuckDB 提供了 HTAP 方案——即列存索引(IMCI)功能。用户仅需以插件方式启用,系统即可自动将行存表实时同步为列存格式。这使得用户在无需修改业务 DML 的前提下,能够大幅加速分析类查询(优化器会基于开销自动路由至行存或列存)。同时,DuckDB 丰富的插件生态允许我们将查询数据源拓展到更多的系统,包括 Parquet、CSV等开放格式以及 Iceberg、Paimon、Lance等数据湖系统,在此过程中 DuckDB-paimon 将发挥有力支撑的作用。

此外,PolarDB 团队推出 AI 数据湖解决方案--PolarDB Lakebase ,也是 PolarStore 共享存储的一次全面升级。它面向 AI 时代丰富的非结构化和半结构化数据设计,联合 PostgreSQL、DuckDB、Daft、LanceDB 等开源数据生态,可以为企业客户带来湖库一体的使用体验。

目录
相关文章
|
10天前
|
人工智能 安全 Linux
【OpenClaw保姆级图文教程】阿里云/本地部署集成模型Ollama/Qwen3.5/百炼 API 步骤流程及避坑指南
2026年,AI代理工具的部署逻辑已从“单一云端依赖”转向“云端+本地双轨模式”。OpenClaw(曾用名Clawdbot)作为开源AI代理框架,既支持对接阿里云百炼等云端免费API,也能通过Ollama部署本地大模型,完美解决两类核心需求:一是担心云端API泄露核心数据的隐私安全诉求;二是频繁调用导致token消耗过高的成本控制需求。
5472 13
|
18天前
|
人工智能 JavaScript Ubuntu
5分钟上手龙虾AI!OpenClaw部署(阿里云+本地)+ 免费多模型配置保姆级教程(MiniMax、Claude、阿里云百炼)
OpenClaw(昵称“龙虾AI”)作为2026年热门的开源个人AI助手,由PSPDFKit创始人Peter Steinberger开发,核心优势在于“真正执行任务”——不仅能聊天互动,还能自动处理邮件、管理日程、订机票、写代码等,且所有数据本地处理,隐私完全可控。它支持接入MiniMax、Claude、GPT等多类大模型,兼容微信、Telegram、飞书等主流聊天工具,搭配100+可扩展技能,成为兼顾实用性与隐私性的AI工具首选。
21803 117
|
14天前
|
人工智能 安全 前端开发
Team 版 OpenClaw:HiClaw 开源,5 分钟完成本地安装
HiClaw 基于 OpenClaw、Higress AI Gateway、Element IM 客户端+Tuwunel IM 服务器(均基于 Matrix 实时通信协议)、MinIO 共享文件系统打造。
8297 8