DuckDB 的 WebAssembly 客户端支持在浏览器中查询 Iceberg 数据集

  • 2026-01-07
    北京
  • 本文字数:1146 字

    阅读完需:约 4 分钟

DuckDB 最近推出了一项新功能,可以在浏览器标签页内直接与Iceberg REST Catalog进行端到端交互,而无需配置任何基础设施。该功能依托于 DuckDB-Wasm(DuckDB 的 WebAssembly 移植版本,可以在浏览器中运行),支持用户以无服务器方式查询、读取和写入 Iceberg 表。

 

DuckDB 软件工程师Carlo PiovesanTom 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/