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

データ受信者向けのDelta Sharingプロバイダーを管理する

このページでは、Unity Catalogを使用して、Delta Sharingを使用してデータを共有しているデータプロバイダーに関する情報を取得する方法について説明します。また、プロバイダーオブジェクトとは何か、そしてUnity Catalogメタストアでプロバイダーオブジェクトを作成する必要があるのはどのような場合かについても説明しています。ただし、ほとんどの受信者はこれを行う必要はありません。

重要

データ受信者が、説明されている機能を使用するには、 Unity Catalogで有効になっているDatabricksワークスペースにアクセスできる必要があります。 このページは、Unityカタログ対応のワークスペースをお持ちでないユーザーには適用されません。

受信者はプロバイダーオブジェクトを作成する必要がありますか?

Databricks の Delta Sharing では、"プロバイダー" という用語は、データを共有している組織と、その組織を表す受信者の Unity Catalog メタストア内のセキュリティ保護可能なオブジェクトの両方を意味する場合があります。受信者の Unity Catalog メタストアにそのセキュリティ保護可能なオブジェクトが存在すると、受信者は Unity Catalog を使用して共有データへのチームのアクセスを管理できます

Unity Catalog メタストアへのアクセス権を持つ受信者は、通常、プロバイダー オブジェクトを作成する必要はありません。 これは、データはDatabricks-to-Databricks共有を使用して共有する必要があり、プロバイダー オブジェクトはUnity Catalogメタストアに自動的に作成されるためです。

注記

Unity Catalog 対応の Databricks ワークスペースから共有されていないプロバイダーからデータを受信している場合は、カタログエクスプローラ を使用してプロバイダーの資格情報ファイルをインポートできます。「Databricks: オープン共有コネクタを使用して共有データを読み取る」を参照してください。

始める前に

Databricks ワークスペースでプロバイダーを管理するには:

  • ワークスペースでUnity Catalogが有効になっている必要があります。
  • プロバイダーを表示するには、メタストア管理者であるか、メタストア管理者から USE PROVIDER 特権が付与されている必要があります。
  • プロバイダーを作成するには、メタストア管理者であるか、メタストア管理者から CREATE PROVIDER 特権が付与されている必要があります。
  • プロバイダーを更新するには、プロバイダーオブジェクトの所有者であり、CREATE PROVIDER 権限を持っている必要があります。 詳細については、「プロバイダーの更新 (名前の変更、所有者の変更、コメント)」を参照してください。

このため、ワークスペースがメタストア管理者なしで作成された場合、Databricks でプロバイダー オブジェクトを操作する前に、Databricks アカウント管理者がユーザーまたはグループにメタストア管理者ロールを付与する必要があります。 「Unity Catalog の自動有効化」および「(省略可能) メタストア管理者ロールの割り当て」を参照してください。

プロバイダーを見る

使用可能なデータ プロバイダーの一覧を表示するには、カタログエクスプローラ、Databricks Unity Catalog CLI、または Databricks ノートブックまたは Databricks SQL クエリ エディターの SHOW PROVIDERS SQL コマンドを使用できます。

必要な権限 : メタストア内のすべてのプロバイダーを表示するには、 USE PROVIDER権限が必要です。他のユーザーは、自分が所有するプロバイダーにのみアクセスできます。

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

  2. [カタログ ] ウィンドウの上部にある [歯車のアイコン。] 歯車アイコンをクリックし、[ Delta Sharing ] を選択します。

    または、右上隅の 「共有」> Delta Sharing をクリックします。

  3. [ 自分と共有] タブで、組織と共有されているすべてのデータを表示します。共有ごとに、次の詳細が提供されます。

    • 名前: プロバイダーによって指定された組織名。
    • 認証タイプ: プロバイダーが使用する共有方法。
    • 所有者: プロバイダーの名前または電子メール。
    • 作成場所: 共有が作成された日時。
    • 形容: 共有の説明。

プロバイダーの詳細を表示

プロバイダーの詳細を表示するには、カタログ エクスプローラー、 、または ノートブックまたはDatabricksUnity CatalogCLIDESCRIBE PROVIDERSQLDatabricksDatabricks SQL クエリ エディターの コマンドを使用できます。

必要な権限 :メタストア管理者、USE PROVIDER 権限を持つユーザー、またはプロバイダーオブジェクトの所有者。

詳細は次のとおりです。

  • プロバイダーが共有するシェア(「プロバイダーがあなたと共有しているシェアを表示する」を参照)。
  • プロバイダーの作成者、作成タイムスタンプ、コメント、および認証タイプ (TOKEN または DATABRICKS)。TOKEN は、Delta Sharing オープン共有プロトコルを使用してデータを共有したプロバイダーを表します。DATABRICKS は、 Databricks-to-Databricks 共有プロトコルを使用してデータを共有したプロバイダーを表します。
  • プロバイダーが Databricks-to-Databricks 共有を使用している場合: プロバイダーの Unity Catalog メタストアのクラウド、リージョン、メタストア ID。
  • プロバイダーがオープン共有を使用している場合: Delta Sharing 共有サーバーがホストされている受信者プロファイル エンドポイント。
  1. Databricks ワークスペースで、データアイコン。 カタログ をクリックします。

  2. [カタログ ] ウィンドウの上部にある [歯車のアイコン。] 歯車アイコンをクリックし、[ Delta Sharing ] を選択します。

    または、右上隅の 「共有」> Delta Sharing をクリックします。

  3. [ 自分と共有] タブで、プロバイダーを見つけて選択します。

プロバイダーがあなたと共有している株式を表示します

プロバイダーが共有している共有を表示するには、カタログ エクスプローラー、Databricks Unity Catalog CLI、または Databricks ノートブックまたは Databricks SQL クエリー エディターの SHOW SHARES IN PROVIDER SQL コマンドを使用できます。

必要な権限 :メタストア管理者、USE PROVIDER 権限を持つユーザー、またはプロバイダーオブジェクトの所有者。

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

  2. [カタログ ] ウィンドウの上部にある [歯車のアイコン。] 歯車アイコンをクリックし、[ Delta Sharing ] を選択します。

    または、右上隅の 「共有」> Delta Sharing をクリックします。

  3. [ 自分と共有] タブで、プロバイダーを見つけて選択します。

プロバイダーの更新 (名前の変更、所有者の変更、コメント)

カタログ エクスプローラー、Databricks Unity Catalog CLI、または Databricks ノートブックまたは Databricks SQL クエリー エディターの ALTER PROVIDER SQL コマンドを使用して、Unity Catalog メタストア内のプロバイダー オブジェクトを変更できます。

  • プロバイダーの名前を変更して、ユーザーが Databricks インターフェイスでプロバイダー オブジェクトを表示する方法を変更します。
  • プロバイダ オブジェクトの所有者を変更します。
  • コメントを追加または変更してください。

必要な権限 : 所有者を更新するには、プロバイダー オブジェクトの所有者である必要があります。 プロバイダー名を更新するには、メタストアの管理者(または CREATE PROVIDER 権限を持つユーザー) であり 、プロバイダーの所有者でなければなりません。 コメントを更新するには、所有者である必要があります。 初期所有者はメタストア管理者です。

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

  2. [カタログ ] ウィンドウの上部にある [歯車のアイコン。] 歯車アイコンをクリックし、[ Delta Sharing ] を選択します。

    または、右上隅の 「共有」> Delta Sharing をクリックします。

  3. [ 自分と共有] タブで、プロバイダーを見つけて選択します。

  4. 詳細ページで、所有者、コメント、またはプロバイダー名を更新します。

    プロバイダーの名前を変更するには、 ケバブメニューのアイコン。 ケバブメニューをクリックし、「 名前の変更 」を選択します。

受信者の認証情報をローテーションする

このセクションは、認証タイプがTOKENOAUTH_CLIENT_CREDENTIALS 、またはOIDC_FEDERATIONのプロバイダーオブジェクトに適用されます。Databricks-to-Databricksプロバイダー(認証タイプDATABRICKS )は自動的にローテーションされます。 プロバイダーオブジェクトを使用せずにデータにアクセスする場合(たとえば、 delta-sharing Python または Spark コネクタを使用する場合)、コネクタ構成に新しい認証情報ファイルを適用してください。Delta Sharing を使用して共有されたデータの読み取り、ベアラートークンを使用したオープンな共有を参照してください。

オープン共有プロトコルを使用するプロバイダーは、ベアラートークンをローテーションし、新しい認証情報ファイルを送信する場合があります。その場合は、Databricks REST APIを使用してプロバイダーオブジェクトを更新してください。新しい認証情報を適用するために、プロバイダーを削除して再作成しないでください。カタログはプロバイダーの名前ではなく、プロバイダーの内部IDに紐付けられます。同じ名前のプロバイダーを再作成すると、カタログと共有データとの接続が切断されます。

ALTER PROVIDERDatabricks CLI および Catalog Explorer は、プロバイダー認証情報の更新をサポートしていません。

認証情報を更新する

recipient_profile_strフィールドに新しい認証情報ファイルの内容を記述したPATCHリクエストをプロバイダーエンドポイントに送信します。

必要な権限 :プロバイダーオブジェクトの所有者またはメタストア管理者。

受信側のワークスペースにあるノートブックから、以下のコマンドを実行してください。<provider-name>メタストア内のプロバイダーオブジェクトの名前に置き換え、 new_profile新しい認証情報ファイルの値に更新してください。

Python
import json
import requests

new_profile = {
"shareCredentialsVersion": 1,
"bearerToken": "<new-bearer-token>",
"endpoint": "https://<provider-workspace>.cloud.databricks.com/api/2.0/delta-sharing/metastores/<metastore-id>",
}

token = (
dbutils.notebook.entry_point.getDbutils()
.notebook()
.getContext()
.apiToken()
.get()
)
workspace_url = spark.conf.get("spark.databricks.workspaceUrl")

response = requests.patch(
f"https://{workspace_url}/api/2.1/unity-catalog/providers/<provider-name>",
headers={
"Authorization": f"Bearer {token}",
"Content-Type": "application/json",
},
json={"recipient_profile_str": json.dumps(new_profile)},
)

print(response.status_code)
print(response.json())

ローテーションが正常に完了すると、プロバイダーの更新されたメタデータを含む以下のレスポンスが返されます。

JSON
{
"name": "<provider-name>",
"authentication_type": "TOKEN",
"owner": "user@example.com",
"recipient_profile": {
"share_credentials_version": 1,
"endpoint": "https://<provider-workspace>.cloud.databricks.com/api/2.0/delta-sharing/metastores/<metastore-id>"
},
"updated_at": 1775804332820,
"updated_by": "user@example.com",
"id": "abcd2a5b-c18e-46eb-ae11-3056cfe99bef"
}

詳細については、 「プロバイダーの更新REST API」を参照してください。

回転を確認する

カタログ、スキーマ、およびテーブルに引き続きアクセスできることを確認してください。カタログ名は、回転前と同じである必要があります。

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

  2. [カタログ ] ウィンドウの上部にある [歯車のアイコン。] 歯車アイコンをクリックし、[ Delta Sharing ] を選択します。

    または、右上隅の 「共有」> Delta Sharing をクリックします。

  3. 「共有アイテム」 タブで、ご利用のプロバイダーを探してください。

以前表示されていたエラーバナーは消え、株式は再び上場されるはずです。掲載されているカタログは、以前と同じ内容であるはずです。

トラブルシューティング

エラー

修正

リクエストが返される 403 Forbidden

認証情報をローテーションするには、プロバイダーの所有者またはメタストアの管理者である必要があります。メタストア管理者に、ローテーションを適用するか、所有権を移転するよう依頼してください。シェアの更新を参照してください。

リクエストが返される 404 Not Found

プロバイダー名が間違っています。メタストア内の正確な名前を一覧表示するには、 SHOW PROVIDERSを実行してください。

リクエストは「受信者プロファイルを更新できません」というメッセージとともに400 Bad Requestを返します。

API は、 TOKENOAUTH_CLIENT_CREDENTIALS 、およびOIDC_FEDERATIONプロバイダーの認証情報のみを更新します。Databricks-to-Databricks共有の場合、認証情報は自動的にローテーションされます。

クエリは返します TABLE_OR_VIEW_NOT_FOUND

カタログ名が間違っているか、カタログとプロバイダ間の連携が壊れている可能性があります。カタログが存在することを確認するには、 SHOW CATALOGSSHOW SCHEMAS IN <catalog-name>を実行してください。

カタログエクスプローラーは、 PATCHが正常に完了した後でも、古いデータまたはエラーを表示します。

表示されているのは、ローテーション前のキャッシュされた結果です。ページを更新するか、数分お待ちください。

プロバイダーを削除する

プロバイダーを削除するには、カタログ エクスプローラー、 Databricks CLI 、またはDatabricksノートブックまたはDatabricks SQLクエリ エディターのDROP PROVIDER SQLコマンドを使用できます。 プロバイダーを削除するには、プロバイダーオブジェクトの所有者である必要があります。

プロバイダーを削除すると、自分と組織内のユーザー (受信者) は、プロバイダーが共有するデータにアクセスできなくなります。

必要な権限 : プロバイダー オブジェクトの所有者。

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

  2. [カタログ ] ウィンドウの上部にある [歯車のアイコン。] 歯車アイコンをクリックし、[ Delta Sharing ] を選択します。

    または、右上隅の 「共有」> Delta Sharing をクリックします。

  3. [ 自分と共有] タブで、プロバイダーを見つけて選択します。

  4. ケバブメニューのアイコン。ケバブメニューをクリックし、[ 削除 ]を選択します。

  5. 確認ダイアログで、[ 削除 ] をクリックします。