来源:https://duckdb.org/2026/05/20/announcing-duckdb-153
DuckDB 1.5.3:并非普通的补丁版本
作者:DuckDB 团队
日期:2026-05-20
阅读时间:4 分钟
摘要:我们发布了 DuckDB 版本 v1.5.3。尽管这是一个“补丁版本”,但它通过其扩展带来了大量功能,首先是 Quack(现已作为核心扩展提供)、DuckLake 中对 Quack 的支持,以及 Iceberg、AWS 和 HTTPS 的若干新功能。
在这篇博文中,我们重点介绍了 DuckDB v1.5.3 中发布的一些重要特性,这是 DuckDB v1.5 系列中的第三个补丁版本。你可以在 GitHub 上找到完整的发布说明。
要安装新版本,请访问安装页面。
新特性
Quack 作为核心扩展
5 月 12 日,我们介绍了 Quack,这是我们新的远程协议,它将 DuckDB 转变为客户端-服务器数据库。如果你是 Quack 的新手,不知道从哪里开始,请查看以下资源:
- 有关高级概述,请参阅 Quack 解释页面。
- 有关 Quack 背后的原理和历史,以及协议及其特性的介绍,请参阅公告博文。
- 有关参考手册和设置指南,请查看 Quack 文档。
从 DuckDB v1.5.3 开始,我们将 Quack 作为核心扩展发布。这意味着你现在可以从任何运行 DuckDB 的客户端立即开始使用 Quack:它将在首次使用时透明地自动安装和加载。
-- DuckDB 服务器CALLquack_serve('quack:localhost',token='super_secret');CREATETABLEhelloASFROMVALUES('world')v(s);quack:-- DuckDB 客户端CREATESECRET(TYPEquack,TOKEN'super_secret');ATTACH'quack:localhost'ASremote;FROMremote.hello;请注意,Quack 仍处于测试阶段,协议、函数名称等可能会发生破坏性更改。我们计划在 2026 年秋季与 DuckDB v2.0 一起发布 Quack 的生产就绪版本。
带有 Quack 的 DuckLake
DuckLake 现在支持将带有 Quack 的 DuckDB 作为其目录数据库 (ducklake#1151)。让实例自己说话吧!
-- DuckDB 服务器CALLquack_serve('quack:localhost',token=>'oogieboogie');quack:-- DuckDB 客户端INSTALL ducklake;CREATESECRET(TYPEquack,TOKEN'oogieboogie');ATTACH'ducklake:quack:localhost'ASlake(DATA_PATH'data');USElake;CREATETABLEpond(idINT,speciesVARCHAR,weightDOUBLE);INSERTINTOpondVALUES(1,'mallard',1.2),(2,'pintail',0.9);INSERTINTOpondVALUES(3,'wood duck',0.7);SELECT*FROMpondORDERBYid;AWS 扩展特性
AWS 扩展现在支持用于服务账户 IAM 角色(IRSA)的web_identity链类型。这是通过社区成员 Marcel Steinbach (@mst) 的贡献实现的。
AWS 扩展现在还支持对运行在 RDS/Aurora 上的托管 PostgreSQL 数据库进行 IAM 身份验证。有关更多详细信息,请参阅文档中的 AWS RDS IAM 身份验证部分。
HTTPS 扩展的 HTTP_PROXY 变量
现在设置HTTP_PROXY环境变量也会设置http_proxyDuckDB 配置选项 (duckdb#22541)。此选项确保扩展安装也能通过代理,这在例如使用防火墙的环境中可能会派上用场。
请注意,自从将 curl 引入 DuckDB 的网络栈以来,curl 会自动使用HTTP_PROXY和HTTPS_PROXY,因此现在当使用默认 curl 后端加载httpfs扩展时,DuckDB 也会隐式地处理这些参数。
Iceberg
DuckDB-Iceberg 扩展在 DuckDB v1.5.2 和 v1.5.3 之间发布了多项功能。最值得注意的是:
- 现在支持对 Iceberg 表进行
MERGE INTO操作 (iceberg#788) - 现在支持在带有截断或桶转换的分区 Iceberg 表上执行
INSERT和UPDATE语句 (iceberg#879) - 现在可以使用 ADBC 在 DuckDB-Iceberg 中执行
CTAS语句 (iceberg#974) - 我们添加了
iceberg_schema_properties、set_iceberg_schema_properties和remove_iceberg_schema_properties函数,以允许获取、设置和删除 Iceberg 模式属性 (iceberg#960) - 已为 Iceberg 表添加了
ALTER TABLE支持 (iceberg#932, iceberg#928, iceberg#924, iceberg#912, iceberg#904, iceberg#853, iceberg#985, iceberg#981) - 已为 Iceberg 表添加了对
GEOMETRY类型的支持 (iceberg#968, iceberg#902)
开发与内部
将 jemalloc 作为静态链接库发布
jemalloc分配器现在作为核心 DuckDB 的一部分 (duckdb#22603),是一个静态第三方库,在 Linux 上默认包含并链接。以前jemalloc是一个静态链接的扩展——新的打包方式更清晰,因为其他 DuckDB 扩展可以动态加载。
DISABLE_EXTENSION_LOAD 标志
DISABLE_EXTENSION_LOAD编译时标志已在 duckdb#22019 中修复。当使用此标志编译 DuckDB 时,将禁用加载扩展。
即将到来
未来几周我们将举办两场活动:
- DuckCon #7。6 月 24 日,我们将在阿姆斯特丹美丽的皇家热带学院举办下一次用户会议 DuckCon #7。
- Ubuntu 峰会演讲。下周,DuckDB Labs 的 Gábor Szárnyas 将在 Ubuntu 峰会上发表题为“DuckDB:非虚假科学”的演讲。是的,他的演讲将包括新的 Quack 协议。
结论
这篇文章是对 v1.5.3 中变更的简短总结。像往常一样,你可以在 GitHub 上找到完整的发布说明。