メインコンテンツへスキップ
メインコンテンツへスキップ

データレイク

ClickHouse は、Apache IcebergDelta LakeApache HudiApache Paimon などのオープンなテーブル形式と統合されています。これにより、ユーザーはオブジェクトストレージ全体でこれらの形式ですでに保存されているデータに ClickHouse を接続し、既存のデータレイク基盤と ClickHouse の分析能力を組み合わせることができます。

ClickHouse とオープンテーブルフォーマットを組み合わせて利用する理由

既存データをそのままクエリする

ClickHouse は、データを複製することなく、オブジェクトストレージ上のオープンなテーブル形式を直接クエリできます。Iceberg、Delta Lake、Hudi、Paimon を標準として採用している組織は、既存のテーブルを ClickHouse に指定するだけで、その SQL 方言、分析関数、高効率なネイティブ Parquet リーダーをすぐに利用できます。同時に、clickhouse-localchDB のようなツールを使うことで、リモートストレージ上の 70 を超えるファイル形式に対して探索的かつアドホックな分析が可能になり、追加のインフラストラクチャを用意することなく、データレイクのデータセットを対話的に探索できます。

ユーザーは、テーブル関数とテーブルエンジン を用いて直接読み出すか、データカタログに接続する ことで、これを実現できます。

ClickHouse を用いたリアルタイム分析ワークロード

高い同時実行性と低レイテンシのレスポンスが求められるワークロードでは、オープンなテーブル形式のデータを ClickHouse の MergeTree エンジンにロードできます。これにより、データレイクをソースとするデータの上にリアルタイム分析レイヤーを構築し、ダッシュボード、運用レポート、その他 MergeTree の列指向ストレージと索引機能の恩恵を受けるレイテンシに敏感なワークロードをサポートできます。

MergeTree による分析の高速化のための入門ガイドも参照してください。

機能

データを直接読み取る

ClickHouse は、オブジェクトストレージ上のオープンなテーブル形式を直接読み取るためのテーブル関数エンジンを提供しています。iceberg()deltaLake()hudi()paimon() などの関数により、事前の設定なしで、SQL ステートメント内からオープンなテーブル形式のテーブルに対してクエリを実行できます。これらの関数には、S3、Azure Blob Storage、GCS など、一般的なオブジェクトストアのほとんどに対応したバージョンが用意されています。これらの関数に相当するテーブルエンジンもあり、基盤となるオープンなテーブル形式のオブジェクトストレージを参照するテーブルを ClickHouse 内に作成するために使用できます。これにより、クエリの実行がより容易になります。

直接クエリを実行する方法や、データカタログに接続する方法については、入門ガイドを参照してください。

カタログをデータベースとして公開する

DataLakeCatalog データベースエンジンを使用すると、ClickHouse を外部カタログに接続し、そのカタログをデータベースとして公開できます。カタログに登録されているテーブルは ClickHouse 内のテーブルとして認識され、ClickHouse の SQL 構文と分析関数をフルに透過的に利用できます。つまり、カタログで管理されているテーブルに対しても、ネイティブな ClickHouse テーブルと同様にクエリ、結合、集約を実行でき、ClickHouse のクエリ最適化、並列実行、および高い読み取り性能のメリットを享受できます。

サポートされているカタログは次のとおりです:

CatalogGuide
AWS GlueGlue Catalog ガイド
BigLake MetastoreBigLake Metastore ガイド
Databricks Unity CatalogUnity Catalog ガイド
Iceberg REST CatalogREST Catalog ガイド
LakekeeperLakekeeper Catalog ガイド
Project NessieNessie Catalog ガイド
Microsoft OneLakeOneLake Catalog ガイド

カタログへの接続に関する入門ガイドを参照してください。

レイクハウス形式への書き戻し

ClickHouse はデータをオープンなテーブル形式に書き戻す機能をサポートしており、次のようなシナリオで有用です。

  • リアルタイムから長期保存への移行 - データがリアルタイム分析レイヤーとしての ClickHouse を経由し、結果を Iceberg などのフォーマットへオフロードして、耐久性が高くコスト効率の良い長期保存を行う必要がある場合。
  • Reverse ETL - ユーザーが ClickHouse 内で materialized views やスケジュール実行されるクエリを用いて変換処理を行い、その結果をデータエコシステム内の他ツールで利用できるように、オープンなテーブル形式へ永続化したい場合。

データレイクへの書き込みについては、writing to data lakes の入門ガイドを参照してください。

次のステップ

試してみる準備はできましたか?Getting Started ガイドでは、オープンなテーブルフォーマットへの直接クエリ、カタログへの接続、高速な分析のための MergeTree へのデータロード、そして結果の書き戻しまでを、ひとつのエンドツーエンドなワークフローとして順を追って説明します。