Basin Catalog 接收器将流水线处理后的数据作为 Apache Iceberg ↗ 表写入 Basin Catalog。Iceberg 表为分析工作负载提供 ACID 事务、架构演进和时间旅行功能。
要创建 Basin Catalog 接收器,请运行 basin pipelines sinks create 命令,并指定接收器类型、目标存储桶、命名空间和表名:
npx wrangler basin pipelines sinks create my-sink --type basin-catalog --bucket my-bucket --namespace my_namespace --table my_table --catalog-token YOUR_CATALOG_TOKENyarn wrangler basin pipelines sinks create my-sink --type basin-catalog --bucket my-bucket --namespace my_namespace --table my_table --catalog-token YOUR_CATALOG_TOKENpnpm wrangler basin pipelines sinks create my-sink --type basin-catalog --bucket my-bucket --namespace my_namespace --table my_table --catalog-token YOUR_CATALOG_TOKEN新接收器请使用 basin-catalog。旧版 r2-data-catalog 值仍然有效,现有接收器配置无需更改。
如果指定的命名空间和表不存在,sink 将自动创建它们。无法为现有 Iceberg 表创建 sink。
Basin Catalog 接收器仅支持 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 secondsBasin Catalog 接收器的最短间隔为 60 秒,以避免压缩整理问题。Iceberg 表需要定期将小文件合并为大文件,才能获得最佳查询性能。写入过于频繁会与压缩整理过程产生合并冲突。
设置创建新文件前的最大文件大小(MB):
--roll-size 100 # Create new file after 100MBBasin Catalog 接收器需要具有 R2 Admin Read & Write 权限的 API 令牌。此权限使接收器能够访问 Basin Catalog 和 R2 存储。
--catalog-token YOUR_CATALOG_TOKEN