DuckDB-Paimon v0.0.3:谓词下推能力全面升级

简介: DuckDB-paimon 是 PolarDB 团队开发的 DuckDB 插件,支持直接 SQL 查询 Apache Paimon 表,免 ETL、免集群。v0.0.3 版全面实现谓词下推,覆盖 =、>、BETWEEN、IN、LIKE、NULL 判断及 AND/OR 组合,显著降低对象存储 I/O 与计算开销。

DuckDB-paimon 是由 PolarDB 团队开发的一款 DuckDB 扩展插件,允许通过 SQL 直接查询 Apache Paimon 表,无需任何 ETL 搬运,无需 Flink/Spark 集群,打开 DuckDB Shell 即可对 Paimon 表执行 SQL 分析。

近期发布 v0.0.3-variegata 版本带来了一项系统性的改进:谓词下推(Predicate Pushdown)能力的全面覆盖。


谓词下推意味着什么


"谓词"这个词听起来有些学术,其实就是 SQL 中 WHERE 后面的那些过滤条件,比如 WHERE age > 18WHERE region = 'cn-hangzhou'


当 DuckDB 通过 duckdb-paimon 查询一张 Paimon 表时,有两种处理方式:


方式一(没有谓词下推):DuckDB 向 Paimon 发起请求,Paimon 把表里所有的数据都从数据湖存储层读出来,通过网络传给 DuckDB,再由 DuckDB 的执行器在内存里逐行检查哪些符合 WHERE 条件。如果这张表有 1 亿行,哪怕最终只需要 1000 行,也得先把 1 亿行全部搬过来。


方式二(有谓词下推):DuckDB 在发起请求的同时,把 WHERE 条件也一并告知 Paimon。Paimon 在自己的存储层读取文件时,就能利用列式存储的文件级统计信息(比如每个文件中某列的最小值/最大值),直接跳过那些肯定不包含目标数据的文件,甚至在行组(row group)级别提前过滤,只把可能命中的数据传出来。


Paimon 的数据通常存放在对象存储(如阿里云 OSS、AWS S3)上,每次 I/O 都有网络开销。谓词下推减少的不只是计算量,更是从 Paimon 数据湖存储层实际读出的数据量本身。对于存储在对象存储上的大表,这个差别非常明显——扫描 1 TB 和扫描 100 GB,不只是速度上的区别,也是存储读取成本上的区别。

v0.0.2 已经具备了基本的扫描能力,但谓词下推覆盖还不完整。v0.0.3 把这部分补全,覆盖了日常 SQL 里最常见的那几类过滤条件。


谓词下推意味着什么新增支持的谓词类型

比较运算符

=!=<><=>= 这几个基础运算符现在都能下推。这是最高频的过滤场景,比如:

SELECT * FROM paimon_table WHERE age > 18;
SELECT * FROM paimon_table WHERE status != 'deleted';

NULL 判断

SELECT * FROM paimon_table WHERE email IS NULL;
SELECT * FROM paimon_table WHERE phone IS NOT NULL;

BETWEEN

范围查询是时序数据和日志表里最常见的过滤方式:

SELECT * FROM paimon_table WHERE event_time BETWEEN '2026-01-01' AND '2026-04-01';

NOT BETWEEN 同样支持。

IN / NOT IN

SELECT * FROM paimon_table WHERE region IN ('cn-hangzhou', 'cn-shanghai');
SELECT * FROM paimon_table WHERE category NOT IN ('test', 'demo');

LIKE

字符串前缀、后缀、模糊匹配:

SELECT * FROM paimon_table WHERE name LIKE 'Zhang%';

AND / OR 逻辑组合

多个条件组合后整体下推,DuckDB 解析出的谓词树按原结构传递给 Paimon:

SELECT * FROM paimon_table
WHERE region = 'cn-hangzhou'  
AND event_time >= '2026-04-01'  
AND status IN ('active', 'pending');

AND 和 OR 的嵌套组合均支持。

其他改动


安全修复:Paimon secret 中的 key_id 字段现在会在日志和错误信息中自动脱敏,避免敏感凭据被意外打印。


DuckDB 升级:底层 DuckDB 从 v1.5.1 升级至 v1.5.2。


获取方式

点击下方阅读原文,从 [GitHub Releases] 下载 Linux amd64 或 arm64 预编译包。

也可参考项目 README 从源码构建。


本期互动


评论区分享您的应用场景和使用体验,截至4月28日(含),留言且留言处点赞数前三,随机赠送社区礼品。

B1DEA4E5-F77D-41a4-A35B-1E6AE8937C1A.png

目录
相关文章
|
22天前
|
缓存 NoSQL 网络协议
如何为我的网站或应用集成IP归属地查询功能?
本文为网站/应用集成IP归属地查询的落地指南:强调“取对IP”是前提(仅信可信上游、严滤私网),采用“本地+Redis缓存+在线API+硬超时熔断”架构,失败自动降级至省/国家;区分展示型与风控型模型,确保可解释、可审计、可回滚,并严守隐私合规红线。(239字)
174 13
|
27天前
|
缓存 资源调度 BI
《零成本提升QClaw运行速度,这5招就够了》
本文针对QClaw随使用时长增加逐渐卡顿的普遍痛点,打破“卡顿必升级硬件”的常见误区,指出问题根源在于默认配置不合理与错误使用习惯。作者通过三周系统性实测,总结出五个零成本、立竿见影的性能优化技巧,涵盖模型分层加载、动态上下文裁剪、任务批量合并、本地缓存分级管理与后台进程资源隔离。这些技巧无需额外投入,可让QClaw运行速度直接翻倍,且适用于所有本地运行的智能体工具,为技术从业者提供了可直接落地的通用性能优化方案。
333 9
|
29天前
|
人工智能 安全 JavaScript
# 本地离线可用!Windows OpenClaw AI 数字员工安装全攻略
本教程详解Windows 10/11下零代码、图形化部署OpenClaw本地AI数字员工,全程离线运行、隐私安全,10分钟一键安装,支持文件整理、自动化办公等任务,小白友好、无踩坑。
|
1月前
|
弹性计算 关系型数据库 数据库
2026年阿里云企业新用户定义及优惠政策解析
本文详解阿里云企业新用户定义(需企业实名、无付费记录、同主体限一账号)及2026年最新优惠政策,涵盖入门云服务器特惠(低至38元/年)、出海扶持(最高10万元抵扣)、迁云补贴及专项业务支持,助力企业精准降本上云。
203 9
|
1月前
|
存储 人工智能 开发者
AI Agent 越来越难迭代,你缺少的不是功能
还在担心 Token 消耗过多?还在纠结 Agent 难以优化?不改一行业务代码,LoongSuite Python 探针帮你把一次请求从头到尾捋顺:哪一步访问了什么模型、调用了什么工具、召回了哪些文档、花费了多少 token、上下文发生了什么变化。
201 26
|
1月前
|
存储 搜索推荐 数据可视化
《不用写代码!新手也能落地的QClaw专属模块定制指南》
本文针对QClaw使用者普遍面临的现成插件功能冗余、适配度不足、无法匹配个性化需求的核心痛点,结合深度实操与框架底层逻辑拆解,完整梳理了基于QClaw核心框架定制专属功能模块的全链路流程。文章从需求精准拆解、核心调度层对接、执行链路搭建、界面与权限配置,到多场景测试迭代,给出了零代码可落地的实操方案,同时拆解了框架的解耦设计哲学,帮助使用者跳出插件堆砌的误区,从被动的工具使用者转变为主动的功能设计者,真正解锁QClaw的核心价值。
168 7
|
2月前
|
安全 Java 数据库连接
【反射】Java反射 全方位知识体系(附 应用场景 + 《八股文常考面试题》)
Java反射是运行时动态获取类元信息(构造器、方法、字段等)并操作对象的能力,核心为 Class对象。广泛应用于Spring、MyBatis等框架的IoC、AOP、ORM映射,以及注解处理、动态代理、SPI扩展等场景,兼具灵活性与解耦优势,但存在性能开销和安全风险。
328 10
|
2月前
|
前端开发 小程序 IDE
HBuilderX 4.75 安装教程:详细步骤+桌面快捷方式创建
HBuilder X是专为Web、小程序及uni-app跨平台开发打造的轻量级IDE,具备极速启动、智能提示与护眼设计。绿色免安装,解压即用,操作简单,助你高效开启前端开发之旅。(239字)
|
18天前
|
数据采集 缓存 运维
IP查询工具如何评估IP负载?云上资源分配的实战方法
我们曾因P99延迟骤升盲目扩容无效,最终靠IP分桶定位到某云厂商ASN段的爬虫流量。IP查询工具不测性能,而是为请求打标签(ASN/代理类型/风险分等),结合监控数据精准识别“谁拖垮了系统”。分四类桶、设三条件、按优先级调度(分流>限流>扩容>封禁),离线缓存+二次验证,避免误伤。