メインコンテンツまでスキップ

Palantir Foundryカタログフェデレーション

備考

プレビュー

この機能は パブリック プレビュー段階です。

Palantir Foundry カタログフェデレーションを使用すると、Unity Catalogはクラウドストレージから直接Palantir Foundry Icebergテーブルを読み取ることができます。

カタログフェデレーションを使用すると、Unity Catalog はクラウドストレージ内の Palantir Foundry Iceberg テーブルにアクセスし、クエリーは完全に Databricks コンピュート上で実行されます。データチームは、ETL パイプラインを構築することなく、Databricks から Palantir Foundry データを検出、ガバナンス、クエリーできます。データアクセスは読み取り専用です。

始める前に

Palantir Foundryカタログフェデレーションを設定する前に、以下の要件を確認してください。

ワークスペースの要件:

コンピュートの要件:

  • Databricks コンピュートでは、Databricks Runtime 18 以降を使用する必要があります。
  • SQLウェアハウスはProまたはServerlessである必要があります。
  • 専用クラスター (以前の単一ユーザークラスター) はサポートされていません。

ネットワーク要件:

必要な権限:

  • 接続を作成するには、メタストア管理者か、ワークスペースに接続されているUnity Catalogメタストアの CREATE CONNECTION 権限を持つユーザーである必要があります。
  • フォーリンカタログを作成するには、メタストアに対する CREATE CATALOG 権限が必要です。また、接続を所有しているか、接続に対する CREATE FOREIGN CATALOG 権限を持っている必要があります。

Palantir Foundry の要件:

  • Palantir Foundryテーブルは、Icebergテーブルである必要があります。
  • 認証用のPalantir Foundryサードパーティアプリケーション。認証方法に従ってアプリケーションを構成します:
    • OAuth ユーザーマシン間 (U2M)

      • アプリケーションは api:iceberg-read および offline_access スコープをサポートする必要があります。
      • アプリケーションにはOAuthリダイレクトURL https://<databricks-workspace-url>/login/oauth/lakehousefederation.htmlが設定されている必要があります。ここで、<databricks-workspace-url>はワークスペースのホスト名です。
      • 接続を認証するユーザーは、フェデレーションされた ルートフォルダ へのアクセス権を持っている必要があります。
    • OAuth マシン間 (M2M)

      • アプリケーションは、クライアント認証情報付与(client credentials grant)および api:iceberg-read スコープをサポートしている必要があります。
      • アプリケーションの背後にあるサービスユーザーは、フェデレーションされたルートフォルダにアクセスできる必要があります。

ステップ 1: 接続を作成する

必要な権限: メタストア管理者またはCREATE CONNECTION権限を持つユーザー。

接続では、外部システムにアクセスするためのパスと認証情報を指定します。これは、フェデレーション対象のフォルダではなく、Palantir Foundryホストと認証に使用する認証情報を識別します。ステップ2: フォーリンカタログを作成する でフォーリンカタログを作成する際に、ルートフォルダ を選択します。

Palantir Foundryフェデレーションは、以下のサブセクションで説明されている2つの認証方法をサポートしています。どちらも、Palantir Foundryのサードパーティアプリケーションを必要とします。

注記

Databricks REST API または Databricks CLI を使用して接続を作成することもできます。 POST /api/2.1/unity-catalog/connections および Unity Catalog コマンドを参照してください。

OAuth ユーザーマシン間 (U2M)

With OAuth User to Machine (U2M), Unity Catalog accesses Foundry as the user who authenticates the connection.カタログエクスプローラを使用して、この接続を作成します。OAuthサインインフローにはUIが必要なため、このメソッドはSQLを使用して設定することはできません。

  1. Databricks ワークスペースで、データアイコン。 カタログ をクリックします。
  2. カタログ ペインの上部で、追加またはプラスアイコン 追加 アイコンをクリックし、メニューから 接続を作成 を選択します。
  3. 接続のセットアップ ウィザードの 接続の基本 ページで、ユーザー・フレンドリーな 接続名 を入力します。
  4. 接続タイプPalantir Foundry を、 認証タイプOAuth ユーザーからマシン を選択し、 次へ をクリックします。
  5. Authentication ページで、Palantir Foundry インスタンスの Host (例: your-company.palantirfoundry.com) を入力し、OAuth サインインフローを完了して接続を承認します。
  6. (オプション)コメントを追加します。
  7. 接続の作成 をクリックします。

OAuth マシン間 (M2M) 認証

OAuthマシン間(M2M)認証を使用すると、Unity Catalogはクライアント認証情報付与を使用して、サードパーティアプリケーションの背後にあるサービスユーザーとしてFoundryにアクセスします。カタログエクスプローラーを使用するか、DatabricksノートブックまたはDatabricks SQLクエリーエディタで CREATE CONNECTION SQLコマンドを使用して、この接続を作成します。

  1. Databricks ワークスペースで、データアイコン。 カタログ をクリックします。

  2. カタログ ペインの上部で、追加またはプラスアイコン 追加 アイコンをクリックし、メニューから 接続を作成 を選択します。

  3. 接続のセットアップ ウィザードの 接続の基本 ページで、ユーザー・フレンドリーな 接続名 を入力します。

  4. 接続タイプPalantir Foundry を、 認証タイプOAuth Machine to Machine を選択し、 次へ をクリックします。

  5. 認証 ページで、次のように入力します。

    • Host : Palantir Foundry インスタンスのホスト名 (例: your-company.palantirfoundry.com)。
    • クライアント ID : Palantir Foundry サードパーティアプリケーションのクライアント ID。
    • クライアント シークレット : Palantir Foundryサードパーティアプリケーションのクライアント シークレット。
  6. (オプション)コメントを追加します。

  7. 接続の作成 をクリックします。

ステップ2:フォーリンカタログを作成する

必要な権限: メタストアの CREATE CATALOG 権限、接続の所有権または接続の CREATE FOREIGN CATALOG 権限。

フォーリンカタログは、Palantir Foundryのルートフォルダをミラーリングするため、DatabricksとUnity Catalogを使用して、そのテーブルへのアクセスをクエリーおよび管理できます。フォーリンカタログを作成するには、ステップ1: 接続の作成で作成した接続を使用します。

カタログエクスプローラーを使用するか、DatabricksノートブックまたはDatabricks SQLクエリーエディターで CREATE FOREIGN CATALOG SQLコマンドを使用して、フォーリンカタログを作成します。

  1. Databricks ワークスペースで、データアイコン。[カタログ]をクリックして カタログエクスプローラー を開きます。
  2. カタログ ペインの上部で、追加またはプラスアイコン 追加 アイコンをクリックし、メニューから[ カタログを追加 ]を選択します。
  3. カタログ名 を入力し、カタログの タイプ外部 を選択します。
  4. ドロップダウンメニューから、ステップ1: 接続の作成 で作成した 接続 を選択します。
  5. ルートフォルダ には、Unity Catalogがフェデレーション対象のスキーマやテーブルを検索するPalantir Foundryフォルダを入力します(例: /space-name/project-name/folder-name)。ルートフォルダと名前空間のマッピングを参照してください。
  6. Storage location フィールドで、このカタログ内のIcebergテーブルのメタデータを保存する書き込み可能なクラウドストレージの場所を指定します。Databricksマネージドサービスアカウントには、それに対する読み取り/書き込みアクセス権が必要です。この場所には任意のストレージバケットを指定でき、テーブルバケットに関連している必要はありません。
  7. [ カタログを作成 ] をクリックします。
  8. プロンプトに従って、ワークスペースへのアクセス権、所有者、および権限を割り当てます。

Unity Catalogは、ルートフォルダーの下にあるフォルダーとテーブルを検出します:

  • Palantir Foundry のサブフォルダーは Unity Catalog スキーマになります。
  • Palantir FoundryのIcebergテーブルは、Unity Catalogのフォーリンテーブルになります。

ステップ3:権限を付与し、カタログをクエリーする

カタログフェデレーションを設定した後、ユーザーがフェデレーションテーブルにアクセスするには、適切な Unity Catalog 権限が必要です:

  • すべてのユーザーは、カタログに対してUSE CATALOG権限、スキーマに対してUSE SCHEMA権限が必要です。
  • フェデレーションテーブルから読み取るには、ユーザーに SELECT 権限が必要です。

Unity Catalogの権限とそれらの付与方法の詳細については、「Unity Catalogでの権限の管理」を参照してください。

権限を付与した後、ユーザーはDatabricksからフォーリンテーブルをクエリーできます:

SQL
SELECT * FROM <catalog-name>.<schema>.<table>;

ルートフォルダと名前空間のマッピング

フォーリンカタログを作成する際は、フェデレーションルートとしてPalantir Foundryフォルダ(例: /space-name/project-name/folder-name)を指定します。Unity Catalogはそのサブフォルダをフォーリンスキーマにマッピングし、それらのサブフォルダ内のIcebergテーブルはUnity Catalogにおけるフォーリンテーブルとなります。これにより、より深い Foundry 階層が一貫した 3 レベルの構造にマッピングされます。

たとえば、ルートフォルダ /sales/orders をフェデレーションする場合:

Text
Palantir Foundry object                       Unity Catalog object
──────────────────────────────────────────── ──────────────────────────────────────────────────
sales (Foundry Space)
└── orders (Foundry Project) <foreign-catalog> (Catalog)
└── shipments (Foundry Folder) <foreign-catalog>.shipments (Schema)
└── line_items (Iceberg Table) <foreign-catalog>.shipments.line_items (Table)

フェデレーションするフォルダーがカタログになり、各サブフォルダーがスキーマになり、各 Iceberg テーブルがフォーリンテーブルになります。

制限事項

Palantir Foundryのカタログフェデレーションには、次の制限があります:

  • Palantir Foundry フェデレーションは、Iceberg テーブルのみにアクセスできます。ビューはサポートされていません。
  • Palantir Foundry カタログへのプライベート接続はサポートされていません。
  • スキーマ名とテーブル名は、標準の Unity Catalog の命名制限に従います。Databricks は、ピリオド (.)、スペース ()、またはスラッシュ (/) を含む名前をサポートしていません。セキュリティ保護可能なオブジェクトの命名要件を参照してください。
  • Foundry 内のシングルレベルフォルダであるルートフォルダ(テーブルのみを含み、スキーマにマッピングするサブフォルダを含まないフォルダ)には、スキーマやテーブルは表示されません。フェデレーションでは、Unity Catalog スキーマにマッピングするために、少なくとも 1 レベルのサブフォルダが必要です。

Iceberg 関連の制限事項については、「制限事項」を参照してください。

トラブルシューティング

次のセクションでは、一般的なエラーとその解決策について説明します。

Failed to create request URI または無効なルートフォルダ

  • root_folder オプションは、Palantir Foundryインスタンス内のフォルダーパスと一致しません。パスを確認してください。

接続作成時に認証が失敗しました

Palantir Foundryのサードパーティアプリケーションの認証情報が無効であるか、認証を行っているIDにフェデレーションルートフォルダーへのアクセス権がありません。クライアントIDとシークレット(OAuth M2Mの場合)を確認するか、再認証(OAuth U2Mの場合)を行い、そのIDにルートフォルダーへの権限があることを確認してください。「開始する前に」を参照してください。