- 長期ストレージへのオフロード - データはリアルタイム分析レイヤーとして ClickHouse に取り込まれ、ダッシュボードや運用レポートを支えます。データがリアルタイムの対象期間を過ぎたら、相互運用可能なフォーマットで、耐久性が高くコスト効率にも優れた長期保存を実現するために、オブジェクトストレージ内の Iceberg に書き出せます。
- Reverse ETL - ClickHouse 内で実行した変換、集計、エンリッチメントによって、下流のツールや他チームが利用する派生データセットが生成されます。これらの結果を Iceberg テーブルに書き込むことで、より広いデータエコシステム全体で利用できるようになります。
INSERT INTO SELECT を使うことで、ClickHouse テーブルからオブジェクトストレージに保存された Iceberg テーブルへデータを移動できます。
オープンテーブルフォーマットへの書き込みは、現在 Iceberg テーブルのみ をサポートしています。Delta Lake テーブルの部分的なサポートは現在開発中です。テーブルをカタログで管理していてはなりません。
ソースデータセットを準備する
MergeTreeテーブルを作成してデータを投入する
Icebergテーブルにデータを書き込む
Iceberg テーブルを作成する
IcebergS3 テーブルエンジンを使用してテーブルを作成します。
なお、スキーマは MergeTree の元テーブルに比べて簡略化する必要があります。ClickHouse は Iceberg や基盤となる Parquet ファイルよりも豊富な型システムをサポートしているため、Enum、LowCardinality、UInt8 などの型は Iceberg ではサポートされておらず、互換性のある型にマッピングする必要があります。
データの一部を挿入する
INSERT INTO SELECT を使用して、MergeTree テーブルから Iceberg テーブルへデータを書き込みます。この例では、ロンドンの取引だけを書き込みます。