データカタログへの接続
前のセクションでは、ストレージパスを直接指定してオープンなテーブル形式に対してクエリを実行しました。実際には、ほとんどの組織はテーブルのメタデータを データカタログ を通じて管理します。これは、テーブルの場所、スキーマ、およびパーティションを追跡する集中管理されたレジストリです。DataLakeCatalog データベースエンジンを使用して ClickHouse をカタログに接続すると、カタログ全体を ClickHouse のデータベースとして扱えるようになります。カタログ内のすべてのテーブルは自動的に認識され、テーブルごとのパスや認証情報を把握・管理することなく、ClickHouse の SQL をフルに利用してクエリできます。
このガイドでは、Databricks Unity Catalog への接続手順を説明します。ClickHouse は次のカタログにも対応しており、完全なセットアップ手順については、それぞれのリファレンスガイドを参照してください。
| Catalog | Reference guide |
|---|---|
| AWS Glue | AWS Glue カタログ |
| Iceberg REST Catalog | REST カタログ |
| Lakekeeper | Lakekeeper カタログ |
| Project Nessie | Nessie カタログ |
| Microsoft OneLake | Fabric OneLake |
Unity Catalog への接続
ここでは例として Unity Catalog を使用します。
Databricks Unity Catalog は、Databricks レイクハウス環境のデータに対する一元的なガバナンスを提供します。
Databricks は、そのレイクハウスに対して複数のデータ形式をサポートしています。ClickHouse を使用すると、Unity Catalog のテーブルを Delta および Iceberg としてクエリできます。
Unity Catalog との連携は、マネージドテーブルおよび外部テーブルで動作します。 この連携機能は現在、AWS 環境上でのみサポートされています。
Databricks での Unity の構成
ClickHouse から Unity Catalog と連携できるようにするには、Unity Catalog が外部リーダーからのアクセスを許可するよう構成されている必要があります。これは、"Enable external data access to Unity Catalog" ガイドに従うことで実現できます。
外部アクセスを有効化することに加えて、テーブルを含むスキーマに対して、連携を構成するプリンシパルが EXTERNAL USE SCHEMA 権限 を持っていることを確認してください。
カタログの構成が完了したら、ClickHouse 用のクレデンシャルを生成する必要があります。Unity との接続モードに応じて、2 つの異なる方法を使用できます。
-
Iceberg クライアントの場合は、service principal を使って認証します。
-
Delta クライアントの場合は、Personal Access Token(PAT)を使用します。
カタログに接続する
認証情報を使用して、対象のエンドポイントに接続し、Iceberg または Delta テーブルに対してクエリを実行できます。
- Delta
- Iceberg
Unity Catalog は、Delta 形式のデータにアクセスするために使用します。
テーブルを一覧表示する
カタログへの接続が確立されたら、テーブルを一覧表示できます。
テーブルスキーマの探索
標準の SHOW CREATE TABLE コマンドを使用して、テーブルがどのように作成されたかを確認できます。
ネームスペースとテーブル名をバッククォートで囲んで指定する必要がある点に注意してください。ClickHouse は複数のネームスペースをサポートしていません。
以下では、REST Iceberg カタログに対してクエリを実行することを前提としています。
テーブルをクエリする
すべての ClickHouse 関数が利用可能です。繰り返しになりますが、ネームスペースとテーブル名はバッククォートで囲む必要があります。
セットアップの全手順については、Unity Catalog リファレンスガイドを参照してください。