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

プロバイダーをインポートし、Databricksで共有データを読み取ります。

Databricks の受信者として、オープンプロバイダーから資格情報ファイルをインポートし、共有データ資産を読み取ることができます。Catalog Explorer で共有データをクエリーしたり、Python ノートブックを使用したりできます。

注記

Databricks-to-Databricks OpenSharing を使用してデータが共有されている場合、データにアクセスするために資格情報ファイルは不要であり、このページは適用されません。代わりに、Databricks-to-Databricks OpenSharingを使用して共有されたデータを読み取る (受信者向け) を参照してください。

要件

チームのメンバーは、データ プロバイダーが共有する認証情報ファイルをdownloadし、セキュアなチャンネルを使用してそのファイルまたはファイルの場所を共有する必要があります。「Open-to-Databricks モデルでアクセスを取得する」を参照してください。

注記

ストレージバケットと資格情報の機能(スコープ、有効期限、読み取りと読み取り/書き込み)は、プロバイダーによって決定されます。プロバイダーが Databricks プロバイダーの場合、Secure Egress Gateway (SEG) ワークスペースでオープン共有をマウントすると、プロバイダーのバケットが自動的にアウトバウンドアクセスに対して許可リストに追加されます。Databricks 以外のオープンプロバイダーの場合、バケットは自動的に許可リストに追加されません。マウントする前にプロバイダーを確認してください。

プロバイダーをインポートし、共有データをクエリーします

このセクションでは、プロバイダーをインポートする方法と、カタログエクスプローラ または Python ノートブックで共有データをクエリする方法について説明します。

  • Databricks ワークスペースが Unity Catalog に対して有効になっている場合は、カタログエクスプローラ でインポート プロバイダー UI を使用します。資格情報ファイルを保存または指定することなく、次の操作を実行できます。

    • ボタンをクリックするだけで、共有からカタログを作成します。
    • Unity Catalog アクセス制御を使用して、共有テーブルへのアクセスを許可します。
    • 標準のUnity Catalog構文を使用して共有データをクエリーします。
    • 既存のプロバイダーオブジェクトにローテーションされた資格情報をカタログを再作成せずに適用します。オープンな受信者の資格情報をローテーションするを参照してください。
  • Databricks ワークスペースで Unity Catalog が有効になっていない場合は、代わりに Python ノートブックの手順に従ってください。

Catalog Explorer

必要な権限 :Unity Catalogメタストアのメタストア管理者またはCREATE PROVIDER権限を持つユーザー。共有からカタログを作成するには、CREATE CATALOG権限が必要です。

  1. Databricks ワークスペースで、データアイコン。[カタログ]をクリックして カタログエクスプローラー を開きます。

  2. カタログ ペインの上部にある歯車アイコン。をクリックし、 OpenSharing を選択します。または、右上隅で Share > OpenSharing をクリックします。

  3. 自分と共有 tab で、 共有をインストール をクリックします。

  4. プロバイダー名を入力します。名前にスペースを含めることはできません。

  5. プロバイダーから共有された認証情報ファイルをuploadします。多くのプロバイダーには独自の OpenSharing ネットワークがあり、そこから共有を受信できます。詳細については、「プロバイダー固有の構成」を参照してください。

  6. (オプション)コメントを入力します。

    プロバイダーから直接、プロバイダーの資格情報ファイルをインポートします。

  7. インポート 」をクリックします。

  8. Shares タブで、共有行の Create catalog をクリックして、共有データからカタログを作成します。

    SQL または Databricks CLI を使用して共有からカタログを作成する方法については、共有からのカタログの作成を参照してください。

  9. カタログへのアクセスを付与します。「共有データをチームで利用できるようにするにはどうすればよいですか?」を参照してくださいおよび「OpenSharing カタログ内のスキーマ、テーブル、ボリュームのアクセス許可を管理する」

  10. Unity Catalog に登録されている他のデータオブジェクトと同様に、共有データオブジェクトを読み取ることができます。

    詳細と例については、共有テーブルまたはボリューム内のデータにアクセスするを参照してください。

Python

ワークスペースでUnity Catalogが有効になっていない場合は、Databricks ワークスペースのノートブックを使用して共有データを読み取ります。資格情報ファイルをDatabricksに保存し、データプロバイダーに対して認証するために使用して、共有データを読み取ります。

注記

これらの手順は、DatabricksワークスペースがUnity Catalogに対して有効になっていないことを前提としています。Unity Catalogを使用している場合、共有から読み取る際に資格情報ファイルを指定する必要はありません。Unity Catalogに登録されている任意のテーブルから読み取るのと同じように、共有テーブルから読み取ることができます。Databricksは、ここで提供されている手順の代わりに、カタログエクスプローラで「プロバイダーのインポート」UIを使用することを推奨します。

まず、資格情報ファイルを Databricks ワークスペースファイルとして保存してください。そうすることで、チームのユーザーが共有データにアクセスできるようになります。

  1. Databricksワークスペースに資格情報ファイルをインポートするには、ファイルをインポートするを参照してください。
  2. ファイルの横にある ケバブメニューアイコン。 をクリックし、次に「 共有 (アクセス許可) 」をクリックすると、他のユーザーにファイルへのアクセス許可を付与できます。ファイルにアクセスできる Databricks の ID を入力します。ファイルのアクセス許可の詳細については、ファイル ACLを参照してください。

資格情報ファイルが保存されたので、共有テーブルを一覧表示および読み取るノートブックを作成します。

  1. Databricks ワークスペースで、 [新規] > [ノートブック] をクリックします。Databricks ノートブックの詳細については、「Databricks ノートブック」を参照してください。

  2. delta-sharingコネクタをインストールし、Python、pandas、またはApache Sparkを使用して共有テーブルをリストして読み取ります。資格情報ファイルへのワークスペースパス (例: /Workspace/Users/user.name@email.com/config.share) をプロファイルパスとして使用します。コード例については、「Pandas: 共有データの読み取り」および「Apache Spark: 共有データの読み取り」を参照してください。

  3. Python および Apache Spark コマンドに加えて、SQL を使用して共有データをクエリーできます。共有テーブルからワークスペースにローカルテーブルを作成し、その後、ローカルテーブルをクエリーします。共有データはローカルテーブルに保存またはキャッシュされません。ローカルテーブルをクエリーするたびに、共有データの現在の状態が表示されます。

    変数を次のように置き換えます:

    • <local-table-name>ローカルテーブルの名前です。
    • <profile-path>:資格情報ファイルの場所。
    • <share-name>: テーブルのshare=の値。
    • <schema-name>: テーブルのschema=の値。
    • <table-name>: テーブルのname=の値。
    %sql
    DROP TABLE IF EXISTS <local-table-name>;

    CREATE TABLE <local-table-name> USING deltaSharing LOCATION "<profile-path>#<share-name>.<schema-name>.<table-name>";

    SELECT * FROM <local-table-name> LIMIT 10;
  4. コマンドを実行すると、共有データが直接クエリーされます。テストとして、テーブルがクエリーされ、最初の10件の結果が返されます。

  5. 出力が空の場合、または期待するデータが含まれていない場合は、データプロバイダーにお問い合わせください。

OpenSharing Pythonコネクタの制限事項が適用されます。OpenSharing Pythonコネクタの制限事項を参照してください。

制限事項

OpenSharingからDatabricksへの共有は、OpenSharingプロトコルに基づいています。オープンプロバイダーをDatabricksにインポートする場合、次のサポートが適用されます。

  • Delta SharingプロトコルをサポートするDeltaテーブルのみ。Iceberg専用テーブルはサポートされていません。
  • 事前署名された URL と クラウド トークン (ディレクトリベース) アクセス の両方がサポートされています。プロバイダーが利用可能にした場合、Databricksはクラウドトークンアクセスを優先します。
  • 以下のクラウドトークンストレージスキームのみがサポートされています:s3s3as3nabfsswasbsgs、およびr2

Iceberg、CSV、Parquet、JSONなどの非Deltaデータを外部ソースから読み取るには、代わりにレイクハウスフェデレーションを使用します。外部データベースとカタログに接続するを参照してください。