DuckDB的WebAssembly客户端支持在浏览器中查询Iceberg数据集
来源: InfoQ 话题 - 大数据
DuckDB最近推出了一项新功能,可以在浏览器标签页内直接与Iceberg REST Catalog进行端到端交互,而无需配置任何基础设施。该功能依托于DuckDB-Wasm(DuckDB的WebAssembly移植版本,可以在浏览器中运行),支持用户以无服务器方式查询、读取和写入Iceberg表。
DuckDB软件工程师Carlo Piovesan和Tom Ebergen以及开发关系主管Gábor Szárnyas写道:
虽然在本地安装DuckDB相当简单,但打开浏览器标签页更为快捷。因此我们问自己:能否直接在浏览器标签页中支持客户端即服务器的模式?这将为与Iceberg目录交互提供一种不需任何配置和基础设施的、真正的无服务器解决方案。
根据“浏览器中的Iceberg”一文所述,DuckDB团队重新设计了代码库中的HTTP交互机制,在DuckDB-Wasm中实现了JavaScript网络封装层,并将所有Iceberg网络通信通过通用接口统一进行路由,确保原生DuckDB与浏览器版本执行完全相同的逻辑:
与Iceberg REST Catalog交互需要多项功能:通过HTTP(S)协议调用REST API的能力、在对象存储上读写Avro和Parquet文件的能力,以及代表用户协商身份认证以访问这些资源的能力。所有这些操作都必须在浏览器内部完成,且不得调用任何原生组件。
DuckDB是一款开源(遵循MIT许可)的分析型数据库管理系统,专为在本地机器上快速查询大型数据集而设计,常被称为“面向分析的SQLite”。DuckDB-Wasm是DuckDB的WebAssembly移植版本,支持加载扩展程序。为展示这项新功能,DuckDB推出了一个表可视化演示程序,目前使用了Amazon S3 Tables。
2025年初,DuckDB增加了对Apache Iceberg REST Catalog的支持,使DuckDB用户能够连接Amazon S3 Tables和Amazon SageMaker Lakehouse。尽管社区反响极为积极,但部分用户质疑其未支持其他云服务提供商。
使用这个演示时,用户可替换为自己的S3 Tables存储桶ARN和凭证来访问自己的目录、元数据及数据,所有计算均在浏览器本地运行。凭证和仓库ID仅发送至指定的目录端点,SQL查询经转换后添加至URL的哈希段。亚马逊云科技副总裁兼杰出工程师Andrew Warfield评论道:
DuckDB发布了一篇非常有趣的博文,介绍了如何使用Duck构建基于浏览器的应用程序,这些应用程序能够直接操作S3 Tables中的Iceberg Tables。这个表可视化演示程序(……)基于S3中的实时表数据运行——超级酷炫!
Piovesan、Ebergen和Szárnyas补充说:
这意味着:没有任何敏感数据会被处理或发送至duckdb.org。所有计算都在本地完成,完全在浏览器中进行。你可以使用熟悉的SQL接口,并沿用相同的代码片段——这些代码可以在任何运行着DuckDB的环境中执行。
在亚马逊云科技re:Invent 2025大会上,专题会议“Amazon S3 Tables架构、用例与最佳实践”演示了如何通过浏览器查询DuckDB S3 Tables。
原文链接:
https://www.infoq.com/news/2026/01/duckdb-iceberg-browser-s3/