このページでは、ClickHouse のデータレイクインテグレーションに関する包括的なサポートマトリクスを紹介します。各オープンテーブルフォーマットで利用できる機能、ClickHouse が接続可能なカタログ、および各カタログでサポートされている機能をまとめています。
サポート状況は、ClickHouse Cloud とセルフマネージド ClickHouse で分けて示しています。実験的機能は ClickHouse Cloud ではデフォルトで無効になっており、サポートを通じてリクエストする必要があります。利用可否は機能によって異なるため、特定の実験的機能を有効にできるかどうかはサポートにお問い合わせください。デプロイメント固有の設定と制限事項は、Notes カラムに記載されています。
オープンテーブルフォーマットのサポート
ClickHouse は、Apache Iceberg、Delta Lake、Apache Hudi、Apache Paimon の 4 つのオープンテーブルフォーマットに対応しています。サポートマトリクスを表示するには、以下からフォーマットを選択してください。
凡例: ✅ 対応 | ⚠️ 一部対応、実験的、または非推奨 | ❌ 未対応
| 機能 | ClickHouse Cloud | セルフマネージド | 注記 |
|---|---|---|---|
| ストレージバックエンド | |||
| AWS S3 | ✅ | ✅ | icebergS3() または iceberg() のエイリアス経由 |
| GCS | ✅ | ✅ | icebergS3() または iceberg() のエイリアス経由 |
| Azure Blob Storage | ✅ | ✅ | icebergAzure() 経由 |
| HDFS | ❌ | ⚠️ 非推奨 | icebergHDFS() 経由 |
| ローカルファイルシステム | ❌ | ✅ | icebergLocal() 経由 |
| アクセス方法 | |||
| テーブル関数 | ✅ | ✅ | バックエンドごとにバリアントがある icebergS3() |
| テーブルエンジン | ✅ | ✅ | バックエンドごとにバリアントがある IcebergS3 |
| クラスター分散読み取り | ✅ | ✅ | icebergS3Cluster、icebergAzureCluster、icebergHDFSCluster |
| 名前付きコレクション | ⚠️ | ✅ | DDL で作成した名前付きコレクションは、一部の ClickHouse Cloud サービスで有効にできます。利用可否についてはサポートにお問い合わせください。 |
| 読み取り機能 | |||
| 読み取りサポート | ✅ | ✅ | すべての ClickHouse SQL 関数を使用した完全な SELECT サポート |
| パーティションプルーニング | ✅ | ✅ | パーティションプルーニングを参照してください。 |
| 隠しパーティション化 | ✅ | ✅ | Iceberg の変換ベースのパーティション化をサポート |
| パーティション進化 | ✅ | ✅ | 時間の経過に伴ってパーティション仕様が変化するテーブルの読み取りをサポート |
| スキーマ進化 | ✅ | ✅ | カラムの追加、削除、並べ替えに対応。スキーマ進化を参照してください。 |
| 型の昇格 / 拡張 | ✅ | ✅ | P' > P の場合、int → long、float → double、decimal(P,S) → decimal(P',S) に対応。スキーマ進化を参照してください。 |
| タイムトラベル / スナップショット | ✅ | ✅ | iceberg_timestamp_ms または iceberg_snapshot_id 設定を使用します。タイムトラベルを参照してください。 |
| 位置削除 | ✅ | ✅ | 削除された行の処理を参照してください。 |
| 等価削除 | ✅ | ✅ | v25.8+ 以降、テーブル関数およびテーブルエンジンでサポート。削除された行の処理を参照してください。 |
| 読み取り時マージ | ⚠️ | ⚠️ | 実験的機能。削除操作でサポートされています。 |
| フォーマットバージョン | ⚠️ 一部 | ⚠️ 一部 | v1 および v2 をサポートしています。V3 は一部のみサポートしており、削除ベクターとマニフェスト圧縮には対応していません。 |
| カラム統計 | ✅ | ✅ | |
| ブルームフィルタ / Puffin ファイル | ❌ | ❌ | Puffin ファイル内のブルームフィルタインデックスはサポートされていません |
| 仮想カラム | ✅ | ✅ | _path、_file、_size、_time、_etag。仮想カラムを参照してください。 |
| 書き込み機能 | |||
| テーブル作成 | ⚠️ | ⚠️ | 実験的機能。allow_insert_into_iceberg = 1 が必要です。v25.7+ 以降。テーブルの作成を参照してください。 |
INSERT |
✅ ベータ | ✅ ベータ | 26.2 からベータです。allow_insert_into_iceberg = 1 が必要です。データの挿入を参照してください。 |
DELETE |
⚠️ | ⚠️ | 実験的機能です。allow_insert_into_iceberg = 1 が必要です。ALTER TABLE ... DELETE WHERE で実行します。データの削除を参照してください。 |
ALTER TABLE (スキーマ変更) |
⚠️ | ⚠️ | 実験的機能です。allow_insert_into_iceberg = 1 が必要です。カラムの追加、削除、変更、リネームを行えます。スキーマ進化を参照してください。 |
| コンパクション | ⚠️ | ⚠️ | 実験的機能です。allow_experimental_iceberg_compaction = 1 が必要です。コンパクションを参照してください。 |
UPDATE / MERGE |
❌ | ❌ | サポートされていません。コンパクションを参照してください。 |
| コピーオンライト | ❌ | ❌ | サポートされていません。 |
| スナップショットの期限切れ | ⚠️ | ⚠️ | 実験的機能です。Iceberg v2、allow_insert_into_iceberg = 1、および allow_experimental_expire_snapshots = 1 が必要です。スナップショットの期限切れを参照してください。 |
| 孤立ファイルの削除 | ⚠️ | ⚠️ | 実験的機能です。Iceberg v2 以降、allow_insert_into_iceberg = 1、および allow_iceberg_remove_orphan_files = 1 が必要です。孤立ファイルの削除を参照してください。 |
| パーティションへの書き込み | ✅ ベータ | ✅ ベータ | Iceberg への書き込みでサポートされています。 |
| パーティションの変更 | ❌ | ❌ | ClickHouse からパーティション化スキームを変更することはサポートされていません。ClickHouse は、変更後のパーティション化スキームを持つ Iceberg テーブルに書き込むことができます。 |
| メタデータ | |||
| ブランチとタグ付け | ❌ | ❌ | Iceberg のブランチ/タグ参照はサポートされていません。 |
| メタデータファイルの解決 | ✅ | ✅ | カタログ、ディレクトリの一覧表示、version-hint、および特定のパスによる解決をサポートします。メタデータファイルの解決を参照してください。 |
| データキャッシュ | ✅ | ✅ | S3/Azure/HDFS ストレージエンジンと同じ仕組みです。データキャッシュを参照してください。 |
| メタデータキャッシュ | ✅ | ✅ | use_iceberg_metadata_files_cache により、デフォルトで有効です。メタデータキャッシュを参照してください。 |
バージョン25.6以降、ClickHouseはDelta Lake Rust kernelを使用してDelta Lakeテーブルを読み取ることで、より幅広い機能をサポートしています。ただし、Azure Blob Storage上のデータへのアクセス時には既知の問題が発生します。このため、Azure Blob Storage上のデータを読み取る際はKernelが無効化されます。以下に、このKernelが必要な機能を示します。
| 機能 | ClickHouse Cloud | セルフマネージド | 注記 |
|---|---|---|---|
| ストレージバックエンド | |||
| AWS S3 | ✅ | ✅ | deltaLake() または deltaLakeS3() 経由 |
| GCS | ✅ | ✅ | deltaLake() または deltaLakeS3() 経由 |
| Azure Blob Storage | ✅ | ✅ | deltaLakeAzure() 経由 |
| HDFS | ❌ | ❌ | サポートされていません |
| ローカルファイルシステム | ❌ | ✅ | deltaLakeLocal() 経由 |
| アクセス方法 | |||
| テーブル関数 | ✅ | ✅ | バックエンドごとのバリアントを持つ deltaLake() |
| テーブルエンジン | ✅ | ✅ | DeltaLake |
| クラスター分散読み取り | ✅ | ✅ | deltaLakeCluster、deltaLakeAzureCluster |
| 名前付きコレクション | ⚠️ | ✅ | DDLで作成した名前付きコレクションは、一部のClickHouse Cloudサービスで有効にできます。利用可否についてはサポートにお問い合わせください。 |
| 読み取り機能 | |||
| 読み取りサポート | ✅ | ✅ | すべてのClickHouse SQL関数に対応した完全なSELECTサポート |
| パーティションプルーニング | ✅ ベータ | ✅ ベータ | Delta Kernelが必要です。 |
| スキーマ進化 | ✅ ベータ | ✅ ベータ | Delta Kernelが必要です。 |
| タイムトラベル | ✅ ベータ | ✅ ベータ | Delta Kernelが必要です。 |
| 削除ベクター | ✅ | ✅ | |
| カラムマッピング | ✅ | ✅ | |
| 変更データフィード | ✅ ベータ | ✅ ベータ | Delta Kernelが必要です。 |
| 仮想カラム | ✅ | ✅ | _path、_file、_size、_time、_etag。仮想カラムを参照してください。 |
| 書き込み機能 | |||
INSERT |
✅ ベータ | ✅ ベータ | Delta Kernelが必要です。S3およびGCSへの書き込みがサポートされています。Azureへの書き込みはサポートされていません。v26.7以降ではallow_delta_lake_writes = 1が必要です。以前のバージョンではallow_experimental_delta_lake_writes = 1を使用してください。Delta Lakeへの書き込みを参照してください。 |
DELETE / UPDATE / MERGE |
❌ | ❌ | サポートされていません |
| 空のテーブルを作成 | ❌ | ❌ | CREATE TABLE操作では、Delta Lakeテーブルがすでにオブジェクトストレージ上に存在していることを前提としています。 |
| キャッシュ | |||
| データキャッシュ | ✅ | ✅ | S3/Azure/HDFSストレージエンジンと同じメカニズムです。データキャッシュを参照してください。 |
| 機能 | ClickHouse Cloud | セルフマネージド | 注記 |
|---|---|---|---|
| ストレージバックエンド | |||
| AWS S3 | ✅ | ✅ | hudi() 経由 |
| GCS | ✅ | ✅ | hudi() 経由 |
| Azure Blob Storage | ❌ | ❌ | サポートされていません |
| HDFS | ❌ | ❌ | サポートされていません |
| ローカルファイルシステム | ❌ | ❌ | サポートされていません |
| アクセス方法 | |||
| テーブル関数 | ✅ | ✅ | hudi() |
| テーブルエンジン | ✅ | ✅ | Hudi |
| クラスター分散読み取り | ✅ | ✅ | hudiCluster (S3 のみ) |
| 名前付きコレクション | ⚠️ | ✅ | DDL で作成した名前付きコレクションは、一部の ClickHouse Cloud サービスで有効にできます。利用可否についてはサポートにお問い合わせください。 |
| 読み取り機能 | |||
| 読み取りサポート | ✅ | ✅ | すべての ClickHouse SQL 関数に対応した完全な SELECT サポート |
| スキーマ進化 | ❌ | ❌ | サポートされていません |
| タイムトラベル | ❌ | ❌ | サポートされていません |
| 仮想カラム | ✅ | ✅ | _path、_file、_size、_time、_etag。仮想カラムを参照してください。 |
| 書き込み機能 | |||
INSERT / DELETE / UPDATE |
❌ | ❌ | 読み取り専用のインテグレーション |
| キャッシュ | |||
| データキャッシュ | ❌ | ❌ | サポートされていません |
| 機能 | ClickHouse Cloud | セルフマネージド | 注記 |
|---|---|---|---|
| ストレージバックエンド | |||
| S3 | ⚠️ | ⚠️ | Experimental。paimon() または paimonS3() を使用 |
| GCS | ⚠️ | ⚠️ | Experimental。paimon() または paimonS3() を使用 |
| Azure Blob Storage | ⚠️ | ⚠️ | Experimental。paimonAzure() を使用 |
| HDFS | ❌ | ⚠️ | Experimental かつ非推奨。paimonHDFS() を使用 |
| ローカルファイルシステム | ❌ | ⚠️ | Experimental。paimonLocal() を使用 |
| アクセス方法 | |||
| テーブル関数 | ⚠️ | ⚠️ | Experimental。バックエンドごとのバリアントを備えた paimon() |
| テーブルエンジン | ⚠️ | ⚠️ | Experimental。バックエンドごとのバリアントを備えた Paimon。allow_experimental_paimon_storage_engine = 1 が必要です。 |
| クラスター分散読み取り | ⚠️ | ⚠️ | Experimental。paimonS3Cluster、paimonAzureCluster、paimonHDFSCluster |
| 名前付きコレクション | ⚠️ | ⚠️ | Experimental。DDL で作成した名前付きコレクションは、一部の ClickHouse Cloud サービスで有効にできます。利用可否についてはサポートにお問い合わせください。 |
| 読み取り機能 | |||
| 読み取りサポート | ⚠️ | ⚠️ | Experimental。すべての ClickHouse SQL 関数を使用した完全な SELECT サポート |
| スキーマ進化 | ❌ | ❌ | サポートされていません |
| タイムトラベル | ❌ | ❌ | サポートされていません |
| 仮想カラム | ⚠️ | ⚠️ | Experimental。_path、_file、_size、_time、_etag。仮想カラムを参照してください。 |
| 書き込み機能 | |||
INSERT / DELETE / UPDATE |
❌ | ❌ | 読み取り専用のインテグレーション |
| Caching | |||
| データキャッシュ | ❌ | ❌ | サポートされていません |
カタログのサポート
ClickHouse は、DataLakeCatalog データベースエンジンを使用して外部データカタログに接続できます。このエンジンにより、カタログが ClickHouse データベースとして公開されます。カタログに登録されたテーブルは自動的に表示され、標準 SQL でクエリできます。
現在サポートされているカタログは次のとおりです。セットアップ手順の詳細については、各カタログのリファレンスガイドを参照してください。
| カタログ | フォーマット | 読み取り | テーブルの作成 | INSERT | 参照ガイド |
|---|---|---|---|---|---|
| AWS Glue Catalog | Iceberg | ✅ ベータ | ❌ | ❌ | Glue カタログガイド |
| BigLake Metastore | Iceberg | ✅ ベータ | ❌ | ❌ | BigLake Metastore ガイド |
| Databricks Unity Catalog | Delta, Iceberg | ✅ ベータ | ✅ ベータ | ✅ ベータ | Unity Catalog ガイド |
| Iceberg REST | Iceberg | ✅ ベータ | ❌ | ❌ | REST カタログガイド |
| Lakekeeper | Iceberg | ✅ ベータ | ❌ | ❌ | Lakekeeper カタログガイド |
| Project Nessie | Iceberg | ✅ 実験的 | ❌ | ❌ | Nessie カタログガイド |
| Microsoft OneLake | Iceberg | ✅ ベータ | ✅ ベータ | ✅ ベータ | OneLake カタログガイド |
| SeaweedFS | Iceberg | ✅ ベータ | ✅ ベータ | ✅ ベータ | SeaweedFS カタログガイド |
現在、すべてのカタログインテグレーションで実験的またはベータの設定を有効にする必要があります。Microsoft OneLake、Databricks Unity Catalog、SeaweedFS を除き、すべてのカタログは 読み取り専用 アクセスです。つまり、テーブルはクエリできますが、カタログ接続を通じて作成したり書き込んだりすることはできません。カタログから ClickHouse にデータを読み込んで分析を高速化するには、分析高速化ガイド で説明されている INSERT INTO SELECT を使用してください。オープンテーブルフォーマットにデータを書き戻すには、データ書き込みガイド で説明されているように、スタンドアロンの Iceberg テーブルを作成してください。