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