Delta Sharing の Databricks 間プロトコルを使用してデータを共有する (プロバイダーの場合)

この記事では、Databricks 間 Delta Sharing を使用して、アカウントやクラウド ホストに関係なく、Databricks ユーザーが Unity Catalog で有効になっているワークスペースにアクセスできる限り、そのユーザーと安全にデータを共有する方法の概要について説明します。

データ受信者 (Databricks データが共有されているユーザーまたはユーザーのグループ) である場合は、「Delta Sharing を使用した共有データへのアクセス (受信者の場合)」を参照してください。

DatabricksとDatabricksでのDelta Sharingを利用するべき人は誰か

Delta Sharing を使用してデータを共有するには、3 つの方法があります。

  1. この記事で説明する Databricks 間共有プロトコル を使用すると、Unity Catalog 対応のワークスペースからのデータを、Unity Catalog 対応の Databricks ワークスペースへのアクセス権を同様に持っているユーザーと共有できます。

    このアプローチでは、Azure Databricks に組み込まれている Delta Sharing サーバーを使用し、プロバイダーと受信者の両方に対してノートブック共有、Unity Catalog データ ガバナンス、監査、使用状況の追跡のサポートを提供します。 Unity Catalog と統合すると、プロバイダーと受信者の両方のセットアップとガバナンスが簡素化され、パフォーマンスが向上します。

  2. Databricks オープン共有プロトコルを使用すると、Unity Catalog 対応の Databricks ワークスペースで管理するデータを、任意のコンピューティング プラットフォーム上のユーザーと共有できます。

    Delta Sharing オープン共有プロトコルを使用してデータを共有する (プロバイダーの場合)」を参照してください。

  3. オープンソースの Delta Sharing サーバーのカスタマー マネージド実装。これを使用して、Databricks かどうかを問わず、任意のプラットフォームから任意のプラットフォームに共有できます。

    github.com/delta-io/delta-sharing を参照してください。

Delta Sharing の概要と、これら 3 つのアプローチの詳細については、「Delta Sharing とは」を参照してください。

Databricks間でのDelta Sharingワークフロー

このセクションでは、Databricks 間共有ワークフローの大まかな概要を説明し、各手順の詳細なドキュメントへのリンクを示します。

Databricks 間の Delta Sharing モデルでは、次のステップを実行します。

  1. データ "受信者" が、データ "プロバイダー" に、Databricks ワークスペースに接続されている Databricks Unity Catalog メタストアの一意の "共有識別子" を付与します。受信者 (ユーザーまたはユーザーのグループを表します) はこれを使用して、データ プロバイダーが共有しているデータにアクセスします。

    詳細については、「 手順 1: 受信者の共有識別子を要求する」を参照してください。

  2. データ プロバイダーは、プロバイダーの Unity カタログ メタストアに 共有 を作成します。 この名前付きオブジェクトには、メタストアに登録されたテーブル、ビュー、ボリューム、ノートブックのコレクションが含まれています。

    詳細については、「Delta Sharing の共有を作成および管理する」を参照してください。

  3. データ プロバイダーは、プロバイダーの Unity カタログ メタストアに受信者オブジェクトを作成します。 この名前付きオブジェクトは、ユーザーまたはユーザーのグループが共有にアクセスするために使用するワークスペースに接続されている Unity Catalog メタストアの共有識別子と共に、共有に含まれるデータにアクセスするユーザーまたはユーザーのグループを表します。 共有識別子は、セキュリティで保護された接続を有効にするキー識別子です。

    詳細については、「手順 2: 受信者を作成する」を参照してください。

  4. データ プロバイダーは、受信者に共有へのアクセス権を付与します。

    詳細については、Delta Sharing データ共有へのアクセスの管理 (プロバイダーの場合) に関する記事を参照してください。

  5. 共有は受信者の Databricks ワークスペースで使用できるようになり、ユーザーは Azure Databricks ノートブックまたは Databricks SQL クエリ エディターでカタログ エクスプローラー、Databricks CLI、または SQL コマンドを使用してアクセスできます。

    共有内のテーブルやビュー、ボリューム、ノートブックへアクセスするには、メタストア管理者または特権ユーザーが共有からカタログを作成する必要があります。 その後、そのユーザーまたは適切な特権を付与された別のユーザーは、カタログとカタログ内のオブジェクトへのアクセス権を他のユーザーに付与できます。 共有カタログとデータ資産に対するアクセス許可の付与は、Unity Catalog に登録された他の資産に対する場合と同様に機能します。重要な違いは、Delta Sharing 共有から作成されたカタログ内のオブジェクトに対する読み取りアクセス権のみをユーザーに付与できることです。

    共有ノートブックはカタログ レベルに存在しているため、カタログに対する USE CATALOG 特権を持つすべてのユーザーがアクセスできます。

    詳細については、「Databricks 間 Delta Sharing を使用して共有されたデータを読み取る (受信者の場合)」を参照してください。

履歴共有を使用してテーブルの読み取りパフォーマンスを向上させる

Databricks から Databricks へのテーブル共有では、履歴共有を有効にすることでパフォーマンスを向上させることができます。 共有履歴は、クラウド ストレージの一時的なセキュリティ資格情報を利用してパフォーマンスを向上させ、プロバイダーの共有 Delta テーブルのルート ディレクトリにスコープを絞り込み、ソース テーブルへの直接アクセスに相当するパフォーマンスを実現します。

  • 新しいテーブル共有の場合は、テーブル共有を作成するときに WITH HISTORY を指定します。 「共有にテーブルを追加する」を参照してください。 Databricks Runtime 16.2 以降でコンピューティングを使用してテーブルを共有する場合、WITH HISTORY が既定です。
  • 既存のテーブル共有の場合は、共有テーブル履歴を共有するように共有を変更する必要があります。 「共有を更新する」を参照してください。 Databricks Runtime 16.2 以降でコンピューティングを使用してテーブルを共有する場合、WITH HISTORY が既定です。

スキーマ全体を共有すると、スキーマ内のすべてのテーブルが既定で履歴と共有されます。

パーティション分割が有効になっているテーブルは、履歴共有のパフォーマンス上の利点を受け取りません。 「共有するテーブル パーティションを指定する」を参照してください

クラウド トークンの適格性要件とデータ プライバシーに関する考慮事項については、 クラウド トークンの適格性に関するページを参照してください。

クラウド環境における Databricks-to-Databricks Delta Sharing のサポートマトリックス

Databricks 間 Delta Sharing は、次のように同じ環境の種類内でのみサポートされます: 商用間、GovCloud 間、DoD 間、または Azure China 間。 商用クラウドから AWS GovCloud、AWS GovCloud から Azure China へのクロス環境共有はサポートされていません。 商用クラウドには、FedRAMP Moderate などのコンプライアンス制御が有効になっているワークスペースが含まれます。

Databricks 間 Delta Sharing は、Azure Government 環境ではサポートされていません。

このマトリックスでは、各行はプロバイダー環境 (メタストア共有データ) を表し、各列は受信者環境 (共有データを受信するメタストア) を表します。 この表は、組み合わせごとに共有がサポートされているかどうかを示します。

プロバイダー 受信者: 商用クラウド 受信者: AWS GovCloud 受信者: AWS GovCloud DoD 受信者: Azure China
商用クラウド
AWS GovCloud
AWS GovCloud DoD
Azure China