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

目录
相关文章
|
3月前
|
关系型数据库 MySQL 分布式数据库
你的业务库,可能就是最好的向量数据库
PolarDB MySQL版推出PolarVector,原生集成向量检索能力,无需同步数据、不新增运维体系。支持HNSW/IVF索引、多距离度量与智能过滤,兼容MySQL和OpenSearch双协议,具备ACID事务、低延迟(P95<5ms)、高召回率(>99%)等特性,适用于RAG、推荐、多模态搜索等AI场景。
331 1
你的业务库,可能就是最好的向量数据库
|
12天前
|
人工智能 监控 测试技术
银行业AI架构:从裸调API到六层技能体系
# 银行AI智能体架构实战:从单体到Skill协同的技术演进 ## 痛点:银行IT架构的三重困境 走在任何一家银行的科技部走廊里,你都能听到同样的叹息:系统又慢了、需求又排不上、监管又来查了。这不是某一家银行的困境,而是整个银行业IT架构的共性问题。我们把它拆解为三重困境。 **困境一:单体系
|
11天前
|
人工智能
2026 GOAI 世界人工智能开源大赛—新智基座 Agent Infra 赛道正式启动! ¥190万总奖池等你挑战!
2026 GOAI 世界人工智能开源大赛—新智基座 Agent Infra 赛道正式启动!¥190万总奖池等你挑战!
975 10
|
3月前
|
监控 数据可视化 Java
项目二开利器:一套云MES系统源码,基于SpringBoot+Vue技术栈
这是一套自主研发、正版授权的云MES系统源码,基于SpringBoot+Vue技术栈,支持生产全流程精细化管理。涵盖订单执行、计划排程、设备车间、工艺检验、库存采购等19大模块,助力制造企业实现车间透明化与数字化升级。
262 0
|
1月前
|
存储 人工智能 自然语言处理
知识库为谁而建 ?
随着 Agent 的逐步广泛应用,知识库的使用者正在从人变成 Agent。 知识库的设计逻辑、维护方式、甚至存在的意义,都需要重新思考。
628 10
知识库为谁而建 ?
|
1月前
|
Java Windows
JDK 8 安装与环境变量配置教程(jdk-8u121-windows-x64.exe 详细步骤)
本教程详解JDK 8u121 Windows 64位安装与配置:含管理员运行、路径选择、JAVA_HOME及Path环境变量设置,并通过java/javac -version命令快速验证,步骤清晰,适配Win10/Win11。
|
1月前
|
人工智能 缓存 API
阿里云百炼 Token Plan 三大坐席对比:Credits资费额度、Token消耗与性价比分析
阿里云百炼TokenPlan含标准版(198元/月,2.5万Credits)、高级版(698元/月,10万Credits)和尊享版(1398元/月,25万Credits)。经测算,尊享版单Credits仅0.0056元,折合百万Tokens约1.12元,显著低于按量计费(2元/百万Tokens),性价比高,值得订阅。在阿里云百炼平台:https://t.aliyun.com/U/fPVHqY 免费领取千万Tokens
|
3月前
|
JSON 前端开发 Linux
PageAdmin 统一身份认证平台 - 接入实施步骤
基于OAuth 2.0的统一身份认证平台,为多应用集群提供单点登录与统一授权。支持第三方应用接入及集中权限配置,提供标准API接口实现系统对接。
289 0
|
1月前
|
数据采集 人工智能 缓存
字节面试官:别再直接让 AI 写代码了,先学会 SDD 规格驱动开发
AI编程虽快,但需求模糊易致代码失控。SDD(规格驱动开发)主张先明确定义目标、边界、行为、约束与验收标准,再让AI编码。对测试开发尤为关键——它将模糊需求转化为可测、可验、可追溯的质量规格,推动测试前置、风险可控、回归有据。
|
1月前
|
机器学习/深度学习 人工智能 网络架构
深度解析:Transformer 的“灵魂”——QKV 变换的物理直觉
本文用图书馆检索等生活隐喻,从物理意义与认知科学角度解析Transformer中QKV设计的精妙本质:解耦查询(q)、键(k)、值(v)三重角色,实现语义分离、避免自注意力“自恋”,模拟人类动态信息路由的认知过程。(239字)
462 13