ClickHouseでオープンテーブルフォーマットを使う理由
既存データをそのままクエリする
ClickHouse は、データを複製することなく、オブジェクトストレージ内のオープンテーブルフォーマットを直接クエリできます。Iceberg、Delta Lake、Hudi、Paimon を標準採用している組織なら、ClickHouse から既存のテーブルを参照するよう設定するだけで、ClickHouse の SQL方言、分析関数、高効率なネイティブの Parquet リーダーをすぐに活用できます。同時に、clickhouse-local や chDB のようなツールを使えば、リモートストレージ上の 70 を超えるファイルフォーマットに対して探索的なアドホック分析を行うことができ、インフラストラクチャの準備なしにデータレイク内のデータセットを対話的に調査できます。 これは、テーブル関数とテーブルエンジン を使った直接読み取り、または データカタログへの接続 のいずれかで実現できます。選択したクエリにコンピュートを追加する
現在プライベートプレビュー中のOn-Demand Computeを使用すると、サポート対象のApache IcebergおよびDelta Lakeのデータに対する対象のSELECTクエリを、サービスのサイズを変更することなく、既存のサービスおよびエンドポイント経由で追加のClickHouseワーカー上で実行できます。可用性はベストエフォートであり、パフォーマンスは変動します。また、ClickHouse CloudのSLOおよびSLAは適用されません。対象条件と制限事項については、On-Demand Computeのドキュメントを参照してください。
ClickHouse によるリアルタイム分析ワークロード
高い並行性と低レイテンシの応答が求められるワークロードでは、オープンテーブルフォーマットから ClickHouse の MergeTree エンジンにデータをロードできます。これにより、データレイクに由来するデータの上にリアルタイム分析レイヤーを構築でき、MergeTree の列指向ストレージと索引機能を活かして、ダッシュボード、運用レポート、その他のレイテンシに敏感なワークロードをサポートできます。 MergeTree による分析の高速化 のスタートガイドを参照してください。ケーパビリティ
データを直接読み取る
ClickHouse は、オブジェクトストレージ上のオープンテーブルフォーマットを直接読み取るためのテーブル関数とエンジンを提供しています。iceberg()、deltaLake()、hudi()、paimon() などの関数を使うと、事前設定なしで、SQL ステートメント内からオープンテーブルフォーマットのテーブルをクエリできます。これらの関数には、S3、Azure Blob Storage、GCS など、一般的なオブジェクトストレージの多くに対応したバージョンがあります。また、これらの関数に対応するテーブルエンジンも用意されており、基盤となるオープンテーブルフォーマットのオブジェクトストレージを参照するテーブルを ClickHouse 内に作成できるため、より手軽にクエリできます。
直接クエリする方法や、データカタログに接続する方法については、Getting Started ガイドを参照してください。
カタログをデータベースとして公開する
DataLakeCatalog データベースエンジンを使用すると、ユーザーは ClickHouse を外部カタログに接続し、そのカタログをデータベースとして公開できます。カタログに登録されたテーブルは ClickHouse 内のテーブルとして表示されるため、ClickHouse SQL の構文や分析関数をそのまま透過的に利用できます。つまり、ユーザーはカタログで管理されているテーブルを、ネイティブな ClickHouse テーブルであるかのようにクエリ、結合、集計でき、ClickHouse のクエリ最適化、並列実行、読み取り性能の恩恵を受けられます。
サポートされるカタログは次のとおりです:
カタログへの接続については、Getting Started ガイドを参照してください。
オープンテーブルフォーマットへの書き戻し
ClickHouse はオープンテーブルフォーマットへのデータの書き戻しをサポートしており、これは次のようなシナリオで役立ちます。- リアルタイムから長期ストレージへ - データがリアルタイム分析レイヤーとして ClickHouse を通過し、ユーザーが結果を Iceberg やその他のフォーマットにオフロードして、耐久性が高くコスト効率に優れた長期ストレージに保存する必要がある場合。
- Reverse ETL - ユーザーが materialized view やスケジュールクエリを使って ClickHouse 内で変換を実行し、その結果をオープンテーブルフォーマットに永続化して、データエコシステム内の他のツールで利用できるようにしたい場合。