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

Delta Sharing Databricks-to-Databricks プロトコルを使用してデータを共有する (プロバイダー向け)

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

注記

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

誰が Databricks-to-Databricks Delta Sharingを使用する必要がありますか?

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

  1. この記事で説明する Databricks間共有プロトコル を使用すると、Unity カタログが有効なワークスペースのデータを、同じく Unity カタログが有効なDatabricksワークスペースにアクセスできるユーザーと共有できます。

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

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

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

  3. オープンソースの Delta Sharing サーバーの顧客管理実装により 、Databricks の有無にかかわらず、任意のプラットフォームから任意のプラットフォームに共有できます。

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

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

Databricks-to-Databricks Delta Sharing ワークフロー

このセクションではDatabricks間共有ワークフローの概要と、各ステップの詳細なドキュメントへのリンクを提供します。

Databricks間Delta Sharing モデルの場合:

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

    詳細については、「ステップ1: 受信者の共有識別子をリクエストする」を参照してください。

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

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

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

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

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

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

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

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

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

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

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

備考

プレビュー

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

Databricks-to-Databricks テーブル共有は、履歴共有を有効にすることでパフォーマンスを向上させることができます。 履歴を共有すると、クラウドストレージの一時的なセキュリティ認証情報を活用して、プロバイダーの共有Deltaテーブルのルートディレクトリにスコープダウンすることでパフォーマンスが向上し、ソーステーブルへの直接アクセスに匹敵するパフォーマンスが得られます。

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

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

注記

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

履歴共有データのプライバシー

プロバイダーは、Databricks-to-Databricks Delta Sharing履歴共有により、データ ファイルとDelta ログの両方に対する一時的な読み取りアクセス権が受信者に付与されることに注意する必要があります 。Deltaログには、各テーブルバージョンのコミット履歴、コミッターに関する情報 (GitHubコミット履歴と同様)、およびvacuumされていない削除されたデータが含まれます。