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 等开源数据生态,可以为企业客户带来湖库一体的使用体验。

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍如何基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
5天前
|
人工智能 弹性计算 数据可视化
部署OpenClaw有哪些成本?附OpenClaw低成本部署指南
OpenClaw(“养龙虾”)是一款开源AI代理框架,可自动化文件处理、工作流与消息管理。本文详解其部署成本:软件免费,云服务器低至68元/年,阿里云百炼新用户享7000万Token免费额度,并提供一键图形化部署指南。
375 32
|
6天前
|
存储 安全 Java
你还在手动传包、靠“共享盘”发版本?Artifact Registry 才是依赖管理的终局答案!
你还在手动传包、靠“共享盘”发版本?Artifact Registry 才是依赖管理的终局答案!
160 16
|
22天前
|
存储 人工智能 关系型数据库
OpenClaw怎么可能没痛点?用RDS插件来释放OpenClaw全部潜力
OpenClaw插件是深度介入Agent生命周期的扩展机制,提供24个钩子,支持自动注入知识、持久化记忆等被动式干预。相比Skill/Tool,插件可主动在关键节点(如对话开始/结束)执行逻辑,适用于RAG增强、云化记忆等高级场景。
765 56
OpenClaw怎么可能没痛点?用RDS插件来释放OpenClaw全部潜力
|
13天前
|
人工智能 JSON 机器人
让龙虾成为你的“公众号分身” | 阿里云服务器玩Openclaw
本文带你零成本玩转OpenClaw:学生认证白嫖6个月阿里云服务器,手把手配置飞书机器人、接入免费/高性价比AI模型(NVIDIA/通义),并打造微信公众号“全自动分身”——实时抓热榜、AI选题拆解、一键发布草稿,5分钟完成热点→文章全流程!
11454 124
让龙虾成为你的“公众号分身” | 阿里云服务器玩Openclaw
|
23天前
|
Kubernetes Cloud Native Go
go语言快速入门指南教程
Go语言是Google推出的高性能开源编程语言,语法简洁(仅25个关键字)、编译极快、原生支持高并发(goroutine+channel),兼具C的效率与Python的开发体验。广泛用于云原生(K8s/Docker)、微服务及高并发系统。入门推荐访问golangdev.cn系统学习,再通过GitHub项目实战巩固。
370 9
|
16天前
|
存储 机器学习/深度学习 自然语言处理
56.大模型应用:大模型瘦身:量化、蒸馏、剪枝的基础原理与应用场景深度解析.56
本文深入对比大模型轻量化三大核心技术:量化(降精度,快部署)、蒸馏(知识迁移,高精度)、剪枝(删冗余,结构精简)。详解原理、分类、适用场景、代码实现及选型建议,助开发者根据硬件条件、精度要求与落地周期科学决策。
500 16
|
20天前
|
移动开发 前端开发 JavaScript
【贪吃蛇小游戏】 HTML (Canvas)+ JavaScript
这是一个基于 HTML5(Canvas)+JavaScript 开发的贪吃蛇小游戏,通过800×800画布实现蛇体绘制、食物生成、碰撞检测及方向控制,支持键盘操作与重新开始功能,代码结构清晰,适合初学者学习Web游戏开发。
574 11
|
20天前
|
人工智能 Kubernetes 安全
最新!云上openclaw“养虾”服务指南来了
阿里云推出OpenClaw“云上养虾”全栈指南:轻量服务器一键部署、PAI平台智能开发、Agentbay企业托管、MobileClaw安卓版及ACS沙箱环境,覆盖个人、开发者与企业需求,安全、便捷、实用。
946 10
|
4天前
|
机器学习/深度学习 缓存 监控
大模型应用:矩阵乘加(GEMM)全解析:大模型算力消耗的逻辑与优化.68
GEMM(矩阵乘加)是大模型算力核心,占Transformer计算量90%以上。本文系统解析其数学原理、高维适配、算力测算公式,并详解INT8/INT4量化、矩阵分块、硬件加速与批处理四大优化策略,结合代码示例与性能监控方法,助力高效推理落地。
144 17