データカタログへの接続
前のセクションでは、ストレージパスを直接指定してオープンテーブル形式をクエリしました。実際の運用では、ほとんどの組織がデータカタログを通じてテーブルのメタデータを管理します。データカタログは、テーブルの保存場所、スキーマ、パーティションを追跡する一元的なレジストリです。ClickHouse を DataLakeCatalog データベースエンジンを使用してカタログに接続すると、カタログ全体が 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 の lakehouse データに対する一元的なガバナンスを提供します。
Databricks は、lakehouse 向けに複数のデータ形式をサポートしています。ClickHouse では、Unity Catalog のテーブルを Delta と Iceberg の両形式でクエリできます。
Unity Catalog との統合は、マネージドテーブルと外部テーブルの両方で機能します。 この統合は現在、AWS でのみサポートされています。
Databricks で Unity を設定する
ClickHouse が Unity Catalog と連携できるようにするには、外部リーダーとの連携を許可するように Unity Catalog が設定されていることを確認する必要があります。これを行うには、「Unity Catalog への外部データアクセスを有効にする」 ガイドの手順に従ってください。
外部アクセスを有効にするだけでなく、統合を設定するプリンシパルに、テーブルを含むスキーマに対する EXTERNAL USE SCHEMA 権限 が付与されていることも確認してください。
カタログの設定が完了したら、ClickHouse 用の認証情報を生成する必要があります。Unity との連携モードに応じて、次の 2 つの方法を使用できます。
-
Iceberg クライアントの場合は、service principal を使用して認証します。
-
Delta クライアントの場合は、Personal Access Token (PAT) を使用します。
カタログに接続する
認証情報を使用して、該当するエンドポイントに接続し、Iceberg または Delta テーブルに対してクエリを実行できます。
- Delta
- Iceberg
Delta 形式のデータにアクセスするには、Unity catalog を使用します。
テーブルを一覧表示する
カタログに接続したら、テーブルを一覧表示できます。
テーブルスキーマの確認
標準の SHOW CREATE TABLE コマンドを使用すると、テーブルがどのように作成されたかを確認できます。
ネームスペースとテーブル名はバッククォートで囲んで指定する必要がある点に注意してください。ClickHouse は複数のネームスペースをサポートしていません。
以下は、REST Iceberg カタログに対してクエリを実行することを前提としています。
テーブルをクエリする
すべての ClickHouse 関数を使用できます。繰り返しになりますが、ネームスペース名とテーブル名はバッククォートで囲む必要があります。
完全なセットアップ手順については、Unity Catalog リファレンスガイドを参照してください。