Delta Sharing の Databricks間共有プロトコルを使用したデータの共有 (プロバイダー向け)

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

注:

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

Databricks間Delta Sharingは誰が使用すべきですか?

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

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

    このアプローチでは、Delta Sharing に組み込まれているDatabricks サーバーを使用し、ノートブック共有、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: 受信者の共有 ID を要求する」を参照してください。

  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間Delta Sharingを使用して共有されたデータを読み取る (受信者向け)」を参照してください。

履歴共有によるテーブル読み取りパフォーマンスの向上

プレビュー

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

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

注:

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

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

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