R2 Data Catalog sink 将 pipeline 处理后的数据作为 Apache Iceberg ↗ 表写入 R2 Data Catalog。Iceberg 表为分析工作负载提供 ACID 事务、schema 演进和时间旅行功能。
要创建 R2 Data Catalog sink,请运行 pipelines sinks create 命令并指定 sink 类型、目标存储桶、命名空间和表名:
npx wrangler pipelines sinks create my-sink \
--type r2-data-catalog \
--bucket my-bucket \
--namespace my_namespace \
--table my_table \
--catalog-token YOUR_CATALOG_TOKEN如果指定的命名空间和表不存在,sink 将自动创建它们。无法为现有 Iceberg 表创建 sink。
R2 Data Catalog sink 仅支持 Parquet 格式。Iceberg 表不支持 JSON 格式。
配置 Parquet 压缩以获得最佳存储和查询性能:
--compression zstd可用压缩选项:
zstd(默认)- 最佳压缩比snappy- 最快的压缩gzip- 良好的压缩,广泛支持lz4- 快速压缩,压缩比合理uncompressed- 不压缩
行组 ↗ 是 Parquet 文件中存储在一起的一组行,影响内存使用和查询性能。以 MB 为单位配置目标行组大小:
--target-row-group-size 256控制何时将数据写入 Iceberg 表。根据需求配置:
- 较低值:更频繁写入,文件更小,延迟更低
- 较高值:写入频率更低,文件更大,查询性能更好
设置文件写入频率(默认:300 秒,最小值:60 秒):
--roll-interval 60 # Write files every 60 secondsR2 Data Catalog sink 的最小间隔为 60 秒,以防止压缩问题。Iceberg 表需要定期压缩以将小文件合并为较大文件以获得最佳查询性能。写入过于频繁会与压缩过程产生合并冲突。
设置创建新文件前的最大文件大小(MB):
--roll-size 100 # Create new file after 100MBR2 Data Catalog sink 需要具有 R2 Admin Read & Write 权限 的 API 令牌。此权限授予 sink 访问 R2 Data Catalog 和 R2 存储的权限。
--catalog-token YOUR_CATALOG_TOKEN