以下示例演示如何使用 DuckDB ↗ 连接到 R2 Data Catalog。有关使用 DuckDB 连接 R2 Data Catalog 的更多信息,请参阅 DuckDB 文档 ↗。
- 注册 Cloudflare 账户 ↗。
- 创建 R2 存储桶并启用数据目录。
- 创建 R2 API 令牌,并授予 R2 和数据目录权限。
- 安装 DuckDB ↗。
- 注意:需要 DuckDB 1.4.0 ↗ 或更高版本,才能附加并写入 Iceberg REST Catalogs ↗。
- 注意:DuckDB 目前不支持 ↗对分区表执行
DELETE。
在 DuckDB CLI ↗(命令行界面)中运行以下命令:
-- 安装 iceberg DuckDB 扩展(如果尚未安装)并加载该扩展。
INSTALL iceberg;
LOAD iceberg;
-- 安装并加载 httpfs 扩展,以便通过 HTTP(S) 读取/写入文件。
INSTALL httpfs;
LOAD httpfs;
-- 创建一个 DuckDB 机密 (secret) 以存储 R2 Data Catalog 凭据。
CREATE SECRET r2_secret (
TYPE ICEBERG,
TOKEN '<token>'
);
-- 使用以下 ATTACH 语句附加 R2 Data Catalog。
ATTACH '<warehouse_name>' AS my_r2_catalog (
TYPE ICEBERG,
ENDPOINT '<catalog_uri>'
);
-- 在目录中创建默认模式 (schema) 并将其设置为活动模式。
CREATE SCHEMA my_r2_catalog.default;
USE my_r2_catalog.default;
-- 创建一个示例 Iceberg 表并用数据填充它。
CREATE TABLE my_iceberg_table AS SELECT a FROM range(4) t(a);
-- 显示所有可用表。
SHOW ALL TABLES;
-- 查询您刚刚创建的 Iceberg 表。
SELECT * FROM my_r2_catalog.default.my_iceberg_table;