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

本文涉及的产品
PolarClaw,2核4GB
简介: 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数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
8月前
|
存储 SQL 关系型数据库
RDS DuckDB技术解析一:当 MySQL遇见列式存储引擎
RDS MySQL DuckDB分析实例以​列式存储与向量化计算​为核心,实现​复杂分析查询性能百倍跃升​,为企业在海量数据规模场景下提供​实时分析能力​,加速企业数据驱动型决策效能。​​
|
6月前
|
SQL 关系型数据库 MySQL
开源新发布|PolarDB-X v2.4.2开源生态适配升级
PolarDB-X v2.4.2开源发布,重点完善生态能力:新增客户端驱动、开源polardbx-proxy组件,支持读写分离与高可用;强化DDL变更、扩缩容等运维能力,并兼容MySQL主备复制及MCP AI生态。
开源新发布|PolarDB-X v2.4.2开源生态适配升级
|
2月前
|
人工智能 关系型数据库 分布式数据库
PolarDB开源社区精华内容导航
汇聚PolarDB开发者社区开发者、KOL以及官方精华内容
|
22天前
|
Ubuntu 算法 关系型数据库
Debian/Ubuntu 环境 PolarDB-X 单机版 DEB 包安装综合指南
本文整合阿里云文档,详解Ubuntu 18.04与Debian 10下PolarDB-X单机版安装:因官方仅提供RPM包,需用alien转DEB,但二者压缩格式不同(Ubuntu用zstd,Debian 10不支持),必须在目标系统本地转换,不可复用。含依赖处理、配置初始化及启动验证全流程。
365 19
|
3月前
|
Linux 数据库
Linux 环境 国产银河麒麟V10操作系统安装 Polardb-X 数据库 单机版 rpm 包 教程
本文介绍在国产银河麒麟V10操作系统上安装Polardb-X单机版数据库的完整过程。基于RPM包方式部署,步骤与CentOS 7.9类似,涵盖系统环境确认、依赖安装、用户配置、初始化数据目录及启动服务等关键环节,并通过命令验证运行状态,助力国产化平台数据库搭建。
1260 2
|
1月前
|
人工智能 安全 前端开发
Team 版 OpenClaw:HiClaw 开源,5 分钟完成本地安装
HiClaw 基于 OpenClaw、Higress AI Gateway、Element IM 客户端+Tuwunel IM 服务器(均基于 Matrix 实时通信协议)、MinIO 共享文件系统打造。
10013 33
|
存储 人工智能 JSON
OpenClaw-Observability:基于 DuckDB 构建 OpenClaw 的全链路可观测体系
为解决OpenClaw等AI Agent“Done”回复背后的黑盒问题,我们基于DuckDB开发了轻量可观测插件:通过Hook采集关键节点事件,建模为结构化Trace链路,异步写入本地或云上DuckDB,提供瀑布图式执行视图、指标分析与安全告警,让Agent从不可见变为可追踪、可解释、可优化。
|
3月前
|
Kubernetes 容器 数据库
K8S 部署 阿里云 PolarDB-X 集群(企业版、标准版)minikube 教程
本文介绍在 Minikube Kubernetes 环境中部署 PolarDB-X 数据库的完整实践,涵盖环境准备、Operator 安装、企业版与标准版集群部署。通过 Helm 快速部署 Operator,并分别搭建分布式与三节点高可用架构,验证核心功能。虽 K8S 部署便捷,但生产环境建议谨慎使用,尤其对有状态数据库系统。附系列前8篇安装指南供参考。
2652 5
|
缓存 Linux 开发工具
CentOS 7- 配置阿里镜像源
阿里镜像官方地址http://mirrors.aliyun.com/ 1、点击官方提供的相应系统的帮助 :2、查看不同版本的系统操作: 下载源1、安装wget yum install -y wget2、下载CentOS 7的repo文件wget -O /etc/yum.
271476 0

热门文章

最新文章