Unity Catalog
Unity Catalogとの統合は、管理されたテーブルおよび外部テーブルで機能します。 この統合は現在AWSでのみサポートされています。
ClickHouseは、複数のカタログ(Unity、Glue、Polarisなど)との統合をサポートしています。このガイドでは、ClickHouseを使用してDatabricksによって管理されているデータにクエリを実行する手順を説明します。Unity Catalogを使用します。
Databricksは、ラキハウスに対して複数のデータ形式をサポートしています。ClickHouseを使用すると、Unity CatalogのテーブルにDeltaとIcebergの両方としてクエリを実行できます。
この機能は実験的であるため、次のコマンドを使用して有効にする必要があります:
SET allow_experimental_database_unity_catalog = 1;
DatabricksにおけるUnityの設定
ClickHouseがUnityカタログと相互作用できるようにするには、Unity Catalogが外部リーダーとの相互作用を許可するように設定されていることを確認する必要があります。これを達成するには、「Unity Catalogへの外部データアクセスを有効にする」ガイドに従います。
外部アクセスを有効にするだけでなく、統合を設定している主体が、テーブルを含むスキーマに対してEXTERNAL USE SCHEMA
の特権を持っていることを確認してください。
カタログの設定が完了したら、ClickHouseのための認証情報を生成する必要があります。Unityとの相互作用モードに応じて、2つの異なる方法を使用できます。
-
Icebergクライアントの場合、サービス プリンシパルとして認証を使用します。
-
Deltaクライアントの場合、パーソナル アクセス トークン(PAT)を使用します。
Unity CatalogとClickHouseの接続を作成する
Unity Catalogの設定と認証が整ったら、ClickHouseとUnity Catalog間に接続を確立します。
Deltaの読み取り
Icebergの読み取り
ClickHouseを使用してUnityカタログテーブルにクエリを実行する
接続が確立されたので、Unityカタログを介してクエリを開始できます。たとえば:
Icebergクライアントを使用している場合、Uniformが有効なDeltaテーブルのみが表示されます:
テーブルをクエリするには:
ClickHouseは1つの名前空間しかサポートしていないため、バックティックが必要です。
テーブルのDDLを確認するには:
データレイクからClickHouseへのデータの読み込み
DatabricksからClickHouseにデータを読み込む必要がある場合、最初にローカルのClickHouseテーブルを作成します:
次に、INSERT INTO SELECT
を介してUnity Catalogテーブルからデータを読み込みます: