- 卸载到长期存储 - 数据进入 ClickHouse 后,作为实时分析层为仪表盘和运营报表提供支持。一旦数据超出实时分析窗口,就可以将其写入对象存储中的 Iceberg,以互操作格式实现持久、低成本的长期保留。
- 反向 ETL - 在 ClickHouse 内执行的转换、聚合和富集会生成派生数据集,供下游工具和其他团队使用。将这些结果写入 Iceberg 表后,它们就能在更广泛的数据生态系统中使用。
INSERT INTO SELECT 都可以让您将数据从 ClickHouse 表移动到存储在对象存储中的 Iceberg 表。
目前,写入开放表格式仅支持 Iceberg 表。对 Delta Lake 表的部分支持仍在开发中。表不能由 catalog 管理。
准备源数据集
创建并向 MergeTree 表写入数据
向 Iceberg 表写入数据
创建 Iceberg 表
icebergS3 表函数。本指南演示如何创建和填充独立的 Iceberg 表,因此使用带有显式 schema 的 IcebergS3 表引擎。示例中的 S3 位置已包含完整的表;要运行 CREATE 和 INSERT 语句,请将这两个位置替换为您可控制的空且可写入的 S3 前缀及相应凭据。
请注意,与 MergeTree 源表相比,schema 必须适当简化。ClickHouse 支持的类型系统比 Iceberg 及其底层 Parquet 文件更丰富,因此 Enum、LowCardinality 和 UInt8 等类型在 Iceberg 中不受支持,必须映射为兼容类型。
插入部分数据
INSERT INTO SELECT 将数据从 MergeTree 表写入 Iceberg 表。在此示例中,我们只写入伦敦的事务:
此示例需要启用 allow_insert_into_iceberg 设置。有关当前的成熟度和限制,请参阅支持矩阵。