このページでは、Azure Databricksを使用しているかどうかに関係なく、Azure Databricksのデータと AI 資産を組織外のユーザーと共有できる、セキュリティで保護されたデータ共有プラットフォームである Azure Databricks の OpenSharing について説明します。 OpenSharing は、データ製品を交換するためのオープン フォーラムである Databricks Marketplace と、セキュリティで保護されたプライバシー保護環境である Clean Rooms の基礎でもあります。この環境では、複数の関係者が機密性の高いエンタープライズ データに対して共同作業を行うことができます。
OpenSharing は、他のプラットフォームから Delta テーブルを共有するために使用できる オープンソース プロジェクト としても使用できます。
OpenSharing のしくみ
OpenSharing は、Databricks によって開発され、他の組織とのセキュリティで保護されたデータ共有のために開発された オープン プロトコル です。 組織が使用するコンピューティング プラットフォームに関係なく機能します。
OpenSharing を使用してデータを共有する方法はいくつかあります。
Databricks から Databricks への共有プロトコル。Unity カタログ対応ワークスペースのデータと AI 資産を、Unity カタログ対応 Databricks ワークスペースにもアクセスできるユーザーと共有できます。
この方法では、Azure Databricksに組み込まれている OpenSharing サーバーを使用します。 ノートブック共有、Unity カタログボリューム共有、Unity カタログ AI モデル共有、Unity カタログ データ ガバナンス、監査、使用状況追跡など、他のプロトコルではサポートされていない OpenSharing 機能がサポートされています。 Unity Catalog との統合により、プロバイダーと受信者の両方のセットアップとガバナンスが簡素化され、パフォーマンスが向上します。
Databricks からオープンへの共有プロトコル。これにより、Unity カタログ対応 Databricks ワークスペースで管理する表形式のデータを、任意のコンピューティング プラットフォーム上のユーザーと共有できます。
この方法では、Azure Databricksに組み込まれている OpenSharing サーバーを使用します。これは、Unity カタログを使用してデータを管理し、Databricks を使用していないユーザーや、Unity カタログ対応 Databricks ワークスペースにアクセスできないユーザーと共有する場合に便利です。 プロバイダー側の Unity Catalog との統合により、プロバイダーのセットアップとガバナンスが簡素化されます。
オープンソースの OpenSharing サーバーのカスタマー マネージド実装。これにより、Databricks かどうかにかかわらず、任意のプラットフォームから任意のプラットフォームに共有できます。
Azure Databricksドキュメントでは、独自の OpenSharing サーバーを設定する手順については説明していません。 オープンソース プロジェクトを参照してください。
Azure Databricks 用 SAP Business Data Cloud (BDC) コネクタを使用すると、Unity カタログ対応ワークスペースと SAP BDC アカウントの間でデータを共有できます。
このアプローチでは、SAP BDC コネクタを使用します。このコネクタでは、OpenSharing を使用して、SAP BDC データ製品へのコピーゼロ アクセスをライブで行います。
Azure Databricks 用 SAP BDC コネクタとは何ですか? を参照してください。
共有、プロバイダー、受信者
Azure Databricksでの OpenSharing の基になる主な概念は、共有、プロバイダー、受信者です。
共有とは
OpenSharing では、 共有 は、プロバイダーが 1 人以上の受信者と共有するテーブルとテーブル パーティションの読み取り専用コレクションです。 受信者が Unity カタログ対応 Databricks ワークスペースを使用している場合は、ノートブック ファイル、ビュー (行および列レベルでのアクセスを制限する動的ビューを含む)、Unity カタログ ボリューム、および Unity カタログ モデルを共有に含めることもできます。
テーブル、ストリーミング テーブル、管理された Iceberg テーブル、ビュー、具体化されたビュー、ボリューム、モデル、ノートブック ファイルは、いつでも共有に対して追加または削除でき、データ受信者のアクセス権はいつでも共有に割り当てたり取り消したりできます。
Unity カタログ対応の Azure Databricks ワークスペースでは、共有は Unity カタログに登録されているセキュリティ保護可能なオブジェクトです。 Unity カタログメタストアから共有を削除すると、その共有のすべての受信者はアクセスできなくなります。
OpenSharing の共有の作成を参照してください。
プロバイダーとは
プロバイダーは、受信者とデータを共有するエンティティです。 プロバイダーであり、組み込みの Databricks OpenSharing サーバーを利用し、Unity カタログを使用して共有と受信者を管理する場合は、Unity カタログに対して有効になっている少なくとも 1 つのAzure Databricksワークスペースが必要です。 既存のすべてのワークスペースを Unity カタログに移行する必要はありません。 OpenSharing のニーズに合わせて、新しい Unity カタログ対応ワークスペースを作成するだけです。
受信者が Unity カタログ対応 Databricks ワークスペースに存在する場合、プロバイダーは、プロバイダー組織を表し、その組織を共有のセットに関連付ける Unity カタログセキュリティ保護可能なオブジェクトでもあります。
受信者とは
受信者は、プロバイダーから共有を受け取るエンティティです。 Unity カタログでは、共有は、組織を表し、その組織が 1 つ以上の共有にアクセスできるようにする資格情報またはセキュリティで保護された共有識別子に関連付けるセキュリティ保護可能なオブジェクトです。
データ プロバイダー (sharer) として、特定の Unity カタログ メタストアに対して複数の受信者を定義できますが、複数のメタストアのデータを特定のユーザーまたはユーザー グループと共有する場合は、メタストアごとに受信者を個別に定義する必要があります。 受信者は複数の共有にアクセスできます。
プロバイダーが Unity カタログメタストアから受信者を削除した場合、その受信者は以前にアクセスできたすべての共有へのアクセスを失います。
OpenSharing 用のデータ受信者を作成する (Databricks から Databricks への共有) を参照してください。
Databricks からオープン共有と Databricks 間の共有の比較
このセクションでは、Unity カタログで有効になっている Databricks ワークスペースから共有するための 2 つのプロトコルについて説明します。
Note
このセクションでは、プロバイダーが Unity カタログ対応の Azure Databricks ワークスペース上にあることを前提としています。 Databricks 以外のプラットフォームまたは Unity 以外のカタログ ワークスペースから共有するようにオープンソースの OpenSharing サーバーを設定する方法については、オープンソース プロジェクトを参照してください。
プロバイダーが Azure Databricks で OpenSharing を使用する方法は、データを共有する相手によって異なります。
- オープン共有 を使用すると、Azure Databricks にアクセスできるかどうかに関係なく、任意のユーザーとデータを共有できます。
- Databricks から Databricks への共有 を使用すると、ワークスペースが自分とは異なる Unity カタログ メタストアにアタッチされている Azure Databricks ユーザーとデータを共有できます。 Databricks-to-Databricks 共有では、ノートブック、ボリューム、モデルの共有もサポートされています。この機能は、Databricks-to-Open 共有では利用できません。
オープンなOpenSharingとは何ですか?
Databricks を使用しているかどうかに関係なく、Azure Databricks ワークスペースの外部のユーザーとデータを共有する場合は、OpenSharing を使用してデータを安全に共有できます。 データ プロバイダーは、次のいずれかの方法を使用して共有受信者との認証を管理します。
- 有効期間の長いベアラー トークンを生成し、受信者と安全に共有します。 トークンを使用して認証を行い、あなたがアクセス権を与えた共有に含まれるテーブルに対して読み取りアクセス権を取得します。
- Open ID Connect (OIDC) フェデレーションを使用し、受信者の ID プロバイダー (IdP) が Databricks に渡す JWT トークンと引き換えに、有効期間の短い Databricks OAuth トークンを受信者に付与します。
受信者は、次のような多くのコンピューティング ツールとプラットフォームを使用して共有データにアクセスできます。
- Azure Databricks
- Apache Spark
- Pandas
- Power BI
OpenSharing コネクタの完全な一覧とその使用方法については、 OpenSharing のドキュメントを参照してください。
「OpenSharing Databricks-to-Open 共有プロトコルとは」も参照してください。
Databricks-to-Databricks OpenSharing とは
Unity カタログが有効になっている Databricks ワークスペースを持つユーザーとデータを共有する場合は、Databricks-to-Databricks OpenSharing を使用できます。 Databricks から Databricks への共有を使用すると、AWS、Azure、GCP のいずれにあるかにかかわらず、他の Databricks アカウントのユーザーとデータを共有できます。 また、独自の Databricks アカウント内の異なる Unity カタログ メタストア間でデータを安全に共有する優れた方法でもあります。 同じ Unity カタログ メタストアにアタッチされているワークスペース間で OpenSharing を使用してデータを共有する必要はありません。そのシナリオでは、Unity カタログ自体を使用してワークスペース間のデータへのアクセスを管理できるためです。
Databricks から Databricks への共有の利点の 1 つは、共有受信者が共有にアクセスするためのトークンを必要とせず、プロバイダーが受信者トークンを管理する必要がないという点です。 共有接続のセキュリティ (すべての ID 検証、認証、監査を含む) は、OpenSharing と Databricks プラットフォームを通じて完全に管理されます。 もう 1 つの利点は、Databricks ノートブック ファイル、Unity カタログ ボリューム、Unity カタログ モデルを共有できることです。
「OpenSharing Databricks-to-Databricks プロトコルとは」も参照してください。
プロバイダー管理者は OpenSharing をどのように設定しますか?
このセクションでは、プロバイダーが OpenSharing を有効にし、Unity カタログ対応の Azure Databricks ワークスペースから共有を開始する方法の概要について説明します。 オープン ソースの OpenSharing については、オープンソース プロジェクトを参照してください。
同一アカウント内の Unity Catalog メタストア間における Databricks 同士の共有は、常に有効化されています。 OpenSharing が他のアカウントまたは Databricks 以外のクライアントの Databricks ワークスペースとデータを共有できるようにするプロバイダーの場合、Azure Databricks アカウント管理者またはメタストア管理者は、次のセットアップ手順を実行します (大まかに言うと)。
共有するデータを管理する Unity カタログ メタストアの OpenSharing を有効にします。
Note
OpenSharing を使用してアカウント内の他の Unity カタログ メタストアのユーザーとのみデータを共有する場合は、メタストアで OpenSharing を有効にする必要はありません。 1 つの Azure Databricks アカウント内でのメタストア間の共有は、既定では有効になっています。
メタストアで OpenSharing を有効にするを参照してください。
Unity カタログ メタストアに登録されているデータ資産を含む共有を作成します。
Databricks 以外の受信者(Databricks-to-Open共有と呼ばれます)と共有する場合は、Delta形式のテーブルを含めることができます。 Databricks から Databricks への共有を使用する場合は、ビュー、Unity カタログ ボリューム、Unity カタログ モデル、ノートブック ファイルを共有に追加することもできます。
OpenSharing の共有の作成を参照してください。
受信者を作成します。
OpenSharing 用のデータ受信者を作成する (Databricks から Databricks への共有) を参照してください。
受信者が Databricks ユーザーではない場合、または Unity カタログが有効になっている Databricks ワークスペースにアクセスできない場合は、 Databricks から Open への共有を使用する必要があります。 その受信者のベアラー トークン ベースの資格情報を生成するか、OIDC フェデレーションを使用できます。
受信者が Unity カタログで有効になっている Databricks ワークスペースにアクセスできる場合は、 Databricks から Databricks への共有を使用できます。トークンベースの資格情報は必要ありません。 受信者に
共有識別子を要求し、それを使用してセキュリティで保護された接続を確立します。 Tip
自分自身をテスト受信者として使用して、セットアップ プロセスを試します。
受信者に 1 つ以上の共有へのアクセス権を付与します。
OpenSharing データ共有へのアクセスの管理 (プロバイダーの場合) を参照してください。
Note
この手順は、
USE SHARE、USE RECIPIENT、SET SHARE PERMISSIONの特権を持つ管理者以外のユーザーが実行することもできます。 Unity カタログ権限のリファレンスを参照してください。共有への接続に必要な情報を受信者に送信します(Databricks-to-Open 共有のみ)。
ベアラー トークンを使用した Databricks から Open への共有の場合は、セキュリティで保護されたチャネルを使用して、トークンベースの資格情報をダウンロードできるアクティブ化リンクを受信者に送信します。 「 受信者の接続情報を送信する」を参照してください。
OIDC トークン フェデレーションを使用した Databricks から Open への共有の場合は、生成されたポータル URL を送信します。 OpenSharing 受信者の Open ID Connect (OIDC) フェデレーションを有効にするを参照してください。
Databricks から Databricks への共有の場合、共有に含まれるデータは、共有へのアクセスを許可するとすぐに、受信者の Databricks ワークスペースで使用できるようになります。
受信者が共有データにアクセスできるようになりました。
受信者が共有データにアクセスする方法
受信者は、読み取り専用形式で共有データ資産にアクセスします。 共有ノートブック ファイルは読み取り専用ですが、他のノートブックと同様に、複製してから受信者ワークスペースで変更して実行できます。
セキュリティで保護されたアクセスは、共有モデルによって異なります。
Databricks-to-Open 共有(受信者が Unity Catalog が有効な Databricks ワークスペースを持っていない場合)には、次の 2 つのオプションがあります。
- ベアラー トークン フローでは、受信者は、Apache Spark、pandas、Power BI、Databricks などの任意のツールのデータにアクセスするたびに資格情報を提供します。 ベアラー トークンを使用した OpenSharing Databricks-to-Open 共有を使用して共有されるデータの読み取りを参照してください。
- OIDC トークンフェデレーション フローでは、受信者または受信者のクライアント アプリは、独自の ID プロバイダー (IdP) を使用してデータにアクセスします。 U2M フローで Open ID Connect (OIDC) フェデレーションを使用して共有されたデータを読み取り、M2M フローで Open ID Connect (OIDC) フェデレーションを使用して共有されるデータの読み取りを参照してください。
Databricks 間共有 (受信者ワークスペースが Unity Catalog に対応している場合): 受信者は Databricks を使用してデータにアクセスします。 Unity カタログを使用して、Databricks アカウント内の他のユーザーへのアクセスを許可および拒否できます。 Databricks-to-Databricks OpenSharing (受信者向け) を使用して共有されるデータの読み取りを参照してください。
データ プロバイダーが独自の Databricks アカウントのデータ テーブルまたはボリュームを更新するたびに、更新プログラムは受信者のシステムにほぼリアルタイムで表示されます。 OpenSharing を使用して共有されたデータにアクセスする方法については、「 OpenSharing を使用して共有されたデータにアクセスする (受信者向け)」を参照してください。
共有データを共有し、アクセスしているユーザーを追跡する方法
Unity カタログ対応Azure Databricks ワークスペース上のデータ プロバイダーは、Azure Databricks監査ログとシステム テーブルを使用して、共有と受信者の作成と変更を監視したり、共有の受信者アクティビティを監視したりできます。 データ共有の監査と監視を参照してください。
Databricks ワークスペースで共有データを使用するデータ受信者は、Databricks 監査ログとシステム テーブルを使用して、どのデータにアクセスしているユーザーを把握できます。 データ共有の監査と監視を参照してください。
ボリュームの共有
Databricks 間共有フローを使用して、ボリュームを共有できます。 「 共有にボリュームを追加する (プロバイダーの場合)」と「 Databricks-to-Databricks OpenSharing (受信者の場合) を使用して共有されたデータを読み取る」 を参照してください (受信者の場合)。
モデルの共有
Databricks 間共有フローを使用して、モデルを共有できます。 「 共有にモデルを追加する (プロバイダーの場合)」と「 Databricks-to-Databricks OpenSharing (受信者の場合) を使用して共有されたデータを読み取る」 を参照してください (受信者の場合)。
ノートブックの共有
OpenSharing を使用すると、Databricks から Databricks への共有フローを使用してノートブック ファイルを共有できます。 「 ノートブック ファイルを共有に追加する (プロバイダーの場合)」と「 共有ノートブックの読み取り (受信者向け)」を参照してください。
ビューを共有するときに行レベルと列レベルでアクセスを制限する
受信者のプロパティに基づいて特定のテーブル データへのアクセスを制限する動的ビューを共有できます。 「動的ビューを共有に追加して行と列をフィルター処理する」を参照してください。
OpenSharing と streaming
OpenSharing では、Apache Spark 構造化ストリーミングがサポートされます。 プロバイダーは、履歴またはストリーミング テーブルを持つテーブルを共有して、受信者が構造化ストリーミング ソースとして使用し、共有データを低待機時間で増分処理できるようにします。 受信者は、履歴と共有されているテーブルに対して Delta Lake タイム トラベル クエリ を実行することもできます。
履歴とテーブルを共有する方法については、「 共有にテーブルを追加する」を参照してください。 共有テーブルをストリーミング ソースとして使用する方法については、「 Apache Spark Structured Streaming (Databricks-to-Databricks 共有の受信者の場合)、または Spark Structured Streaming を使用して共有テーブルにアクセス する (Databricks から Open への共有データの受信者向け)」を参照してください。
ストリーミング テーブルを共有する方法については、「ストリーミング テーブルを 共有に追加する」を参照してください。
構造化ストリーミングの概念も参照してください。
Delta Lake 機能のサポート マトリックス
OpenSharing では、テーブルを共有するときに、ほとんどの Delta Lake 機能がサポートされます。 このサポートマトリックスに含まれるものは次の通りです。
- 特定バージョンの Databricks Runtime、オープンソースの OpenSharing Spark コネクタ、またはオープンソースの OpenSharing Python コネクタが必要な Delta 機能。
- 部分的にサポートされている機能。
| Feature | プロバイダー | Databricks の受信者 | オープン ソースの受信者 |
|---|---|---|---|
| ベクトルの削除 |
|
|
|
| 列マッピング |
|
|
|
| 統一された形式 |
|
|
|
| V2 チェックポイント | 制限付きでサポート | 制限付きでサポート | 制限付きでサポート |
| TimestampNTZ | サポートされている | Databricks Runtime 14.1 以降 | OpenSharing Spark コネクタ 3.3 以降 |
| リキッド クラスタリング | 制限付きでサポート | 制限付きでサポート | 制限付きでサポート |
OpenSharing に関する FAQ
OpenSharing についてよく寄せられる質問を次に示します。
OpenSharing を使用するには Unity カタログが必要ですか?
いいえ。Unity カタログを (プロバイダーとして) 共有したり、共有データを (受信者として) 使用したりする必要はありません。 ただし、Unity Catalog には、表形式以外の AI 資産共有のサポート、すぐに使用可能なガバナンス、シンプルさがあり、クエリパフォーマンスなどの利点があります。
プロバイダーは、次の 2 つの方法でデータを共有できます。
Unity カタログ管理の下で共有するアセットを配置し、組み込みの Azure Databricks OpenSharing サーバーを使用して共有します。
すべてのアセットを Unity カタログに移行する必要はありません。 共有するアセットを管理するために Unity Catalog に対して有効になっているAzure Databricks ワークスペースは 1 つだけ必要です。 一部のアカウントでは、Unity カタログに対して新しいワークスペースが自動的に有効になります。 Unity カタログについて始めに知っておくべきことを参照してください
必ずしもAzure Databricks アカウントを使用せずに、Databricks から Open への共有サーバーを実装してデータを共有します。
受信者は、次の 2 つの方法でデータを使用できます。
Databricks ワークスペースなしの場合。 Power BI、pandas、オープンソース Apache Spark など、多くのデータ プラットフォームで使用できる オープンソース OpenSharing コネクタを使用します。 ベアラー トークンを使用した OpenSharing Databricks-to-Open Sharing 共有で共有されたデータの読み取りおよびOpenSharing オープンソース プロジェクトを参照してください。
Databricks ワークスペース内で 受信者ワークスペースは Unity カタログに対して有効にする必要はありませんが、ガバナンス、シンプルさ、パフォーマンスの利点があります。
これらの利点を望む受信者組織は、すべての資産を Unity カタログに移行する必要はありません。 Unity カタログで共有されている資産を管理するために有効になっている Azure Databricks ワークスペースは 1 つだけ必要です。 一部のアカウントでは、Unity カタログに対して新しいワークスペースが自動的に有効になります。 Unity カタログについて始めに知っておくべきことを参照してください
OpenSharing の Databricks-to-Open 共有で共有されたデータをベアラー トークンを使用して読み取るおよびDatabricks-to-Databricks OpenSharing で共有されたデータを読み取る(受信者向け)を参照してください。
OpenSharing を使用するには、Databricks の顧客である必要がありますか?
いいえ。OpenSharing はオープン プロトコルです。 Databricks 以外のデータは、任意のデータ プラットフォーム上の受信者と共有できます。 プロバイダーは、任意のコンピューティング プラットフォームから共有するようにオープン OpenSharing サーバーを構成できます。 受信者は、Power BI、pandas、オープンソース Spark など、多くのデータ製品に対して オープンソース OpenSharing コネクタを使用して共有データを使用できます。
ただし、Azure Databricksで OpenSharing を使用する (特に Unity カタログ対応ワークスペースからの共有) には、多くの利点があります。
詳細については、この FAQ の最初の質問を参照してください。
OpenSharing のコストを発生させ、確認するにはどうすればよいですか?
OpenSharing のコストは、ビュー、具体化されたビュー、ストリーミング テーブルを共有およびアクセスするときに発生します。 共有のコストの潜在的な原因は次のとおりです。
- Azure Databricksによって課金されるコンピューティング コスト。
- ストレージおよびネットワーク転送(エグレス)のコスト。これは、ストレージ ベンダーによって課金されるか、プロバイダーが SecureConnect を使用している場合は Azure Databricks によって課金されます。
- 外部スキーマとテーブルを共有する場合の外部コンピューティング ソース コスト。
コンピューティングの実行方法とコンピューティング料金の支払い方法は、次のいくつかの要因によって異なります。
- 受信者のコンピュートの種類
- 共有が同じ Azure Databricks アカウント内で行われるか、複数のアカウント間で行われるか
次の表では、OpenSharing を使用して ビュー を共有およびアクセスするための課金方法について説明します。
| 受信者コンピューティング | アカウント関係 | 誰が支払うか | 課金に使用される SKU | アクセス方法 |
|---|---|---|---|---|
| Databricks Serverless | Any | Recipient* | 受信者のサーバーレス | 受信者が基になるデータへの直接アクセスを受け取る |
| Databricks クラシック | 同じアカウント | Recipient* | 受信者のクラシック | 受信者が基になるデータへの直接アクセスを受け取る |
| Databricks クラシック | 別のアカウント | Recipient | プロバイダーのインタラクティブ サーバーレス | プロバイダーがフィルター処理を実行する |
| Databricks から Open 共有コネクター | Any | プロバイダー | プロバイダーのインタラクティブ サーバーレス | プロバイダーがフィルター処理を実行する |
* 別のアカウントでサーバーレス コンピューティングを使用している受信者、または同じアカウントの受信者と OpenSharing を使用する場合、増分料金は発生しません。 つまり、データ資産を具体化するための追加コストは発生しません。
外部テーブル (ベータ) を共有する場合、具体化は常に実行され、プロバイダー側に格納されます。 外部 Iceberg テーブルの場合、Iceberg クライアントを使用していない開いている受信者と共有するときに、プロバイダー側で具体化が実行されます。 プロバイダーには、データの具体化に使用される既定のストレージに起因する追加料金が表示される場合があります。 ベータ期間中の外部テーブルのコンピューティング コストはありません。
課金の帰属は、課金対象使用量システム テーブル リファレンスおよびOpenSharing マテリアライズ履歴システム テーブル リファレンスを使用してクエリすることもできます。 受信者がコストの帰属先である場合、その関連付けられたレコードは受信者のみがシステム テーブルで参照できます。 クエリの例については、「 サンプル クエリ」を参照してください。
OpenSharing ではエグレス コストが発生しますか?
リージョン内の OpenSharing では、エグレス コストは発生しません。 他のデータ共有プラットフォームとは異なり、OpenSharing ではデータ レプリケーションは必要ありません。 このモデルには多くの利点がありますが、クラウドまたはリージョン間でデータを共有する場合、クラウド ベンダーからデータ エグレス料金が請求される可能性があることを意味します。 Azure Databricks では、エグレス料金が発生しない Cloudflare R2 からの共有がサポートされ、エグレス料金の監視と回避のためにその他のツールと推奨事項が提供されます。 OpenSharing エグレス コストの監視と管理 (プロバイダーの場合) を参照してください。
ただし、プロバイダーが SecureConnect を使用している場合、データ転送はクラウド ベンダーではなくAzure Databricksによって課金されます。
受信者は、共有ビュー、具体化されたビュー、ストリーミング テーブルの基になるデータに直接アクセスできますか?
共有ビュー、具体化されたビュー、ストリーミング テーブルの場合、次のいずれかに該当する場合、データ受信者は直接アクセスできます。
- 受信者は、同じ Azure Databricks アカウントでサーバーレス コンピューティングまたは非専用クラシック コンピューティングを使用します。
- 受信者は、別の Azure Databricks アカウントでサーバーレス コンピューティングを使用します。
それ以外の場合、データは具体化され、プロバイダー側でフィルター処理されます。
データの具体化は、共有データ資産の親ストレージ場所に格納されます。
具体化された資産を共有する場合、コンピューティングは必要なフィルターを適用し、プロバイダーのストレージにキャッシュされた一時的な具体化を作成することによって要求を処理します。 このフィルター処理されたデータは、署名済みの有効期間の短い URL を使用して受信者に配信され、プロバイダー間のアクセス制御を維持しながら安全なアクセスを確保します。
プロバイダーは受信者のアクセスを取り消すことができますか?
はい。受信者のアクセスは、必要に応じて指定されたレベルの細分性で取り消すことができます。 特定の共有と特定の IP アドレスへの受信者アクセスを拒否したり、受信者の表形式データをフィルター処理したり、受信者トークンを取り消したり、受信者を完全に削除したりすることができます。 共有に対する受信者のアクセスを取り消すおよびOpenSharing(Databricks から Databricks への共有)向けのデータ受信者を作成するを参照してください。
署名付き URL を使用するのは安全ではありませんか?
OpenSharing では、署名済みの URL を使用して、オブジェクト ストレージ内のファイルへの一時的なアクセスを提供します。 共有データに既にアクセスできる受信者にのみ付与されます。 これらは有効期間が短く、受信者が既に許可されているレベルを超えてアクセスレベルを拡大しないため、セキュリティで保護されています。
OpenSharing Databricks-to-Open 共有プロトコルで使用されるトークンは安全ですか?
OpenSharing では、他の使用可能なデータ共有プラットフォームとは異なり、クロスプラットフォーム共有が可能であるため、共有プロトコルにはオープン トークンが必要です。 プロバイダーは、トークンの有効期間を構成し、ネットワーク制御を設定し、必要に応じてアクセスを取り消すことで、トークンのセキュリティを確保できます。 さらに、トークンによって、受信者が既に付与されているレベルを超えるアクセス レベルは拡張されません。 トークンのセキュリティに関する考慮事項を参照してください。
トークンを使用して受信者共有へのアクセスを管理しない場合は、databricks-to-Databricks 共有
Lakeflow Connect と OpenSharing の違いは何ですか?
OpenSharing を使用すると、プラットフォーム、クラウド、リージョン間でライブ データを安全に共有できます。 Databricks では、マネージド コネクタを使用してインジェストすることをお勧めします。これは、高いデータ 量、待機時間の短いクエリ、サードパーティの API の制限に対応するためにスケーリングされるためです。 ただし、データを移動せずにクエリを実行する必要があります。
マネージド コネクタと OpenSharing のいずれかを選択できる場合は、次のシナリオで OpenSharing を選択します。
- データの重複の制限。
- 可能な限り最新のデータのクエリの実行。
制限事項
テーブルの形式と機能のサポート
形式の要件:
- 表形式のデータは、 Delta または Managed Iceberg テーブル形式である必要があります。 Parquet テーブルを Delta に簡単に変換し、もう一度戻すことができます。 CONVERT TO DELTAを参照してください。
- OpenSharing では、UniForm テーブルを差分テーブルとしてのみ読み取ることができます。
サポートされていないテーブル:
- プロバイダーは、パーティション フィルター処理で液体クラスタリングを使用するテーブルを共有できません。
- プロバイダーは、V2 チェックポイントと R2 テーブルを共有できません。
- プロバイダーは、照合順序が有効になっているテーブルを共有できません。
- プロバイダーは、行フィルターまたは列マスクを使用してテーブルを共有することはできません。
- プロバイダーは
SHALLOW CLONEテーブルを共有できません。 Azure Databricks では、絶対パスを参照する Delta ログの事前署名 URL はサポートされていません。 - プロバイダーは、 管理された Iceberg テーブル を外部の Iceberg クライアントと共有できません。 「 共有に管理された Iceberg テーブルを追加する」 および「 外部 Iceberg クライアントへの共有を有効にする」を参照してください。
- 外部キー制約 は、共有テーブルでは使用できません。
Databricks から Databricks への共有のみ
次の資産は、Databricks から Databricks への共有フローを使用してのみ共有できます。
- ノートブックの共有。 Databricks-to-Databricks OpenSharing (受信者向け) を使用した共有へのノートブック ファイルの追加と共有データの読み取りを参照してください。
- ボリューム共有。 「 共有にボリュームを追加する (プロバイダーの場合)」と「 Databricks-to-Databricks OpenSharing (受信者向け)」を使用して共有されたデータを読み取る方法に関する記事を参照してください。
- モデル共有。 共有にモデルを追加する(プロバイダー向け)およびDatabricks-to-Databricks OpenSharing を使用して共有されたデータを読み取る(受信者向け)を参照してください。
Views
- 共有可能なビューは、差分テーブルまたはその他の共有可能なビューで定義する必要があります。 「 共有にビューを追加する (プロバイダーの場合)」と「 共有ビューの読み取り (受信者向け)」を参照してください。
ストリーミング
- OpenSharing では、ストリーミング ソースの実行中またはストリーミングの再起動中の
responseFormatの変更はサポートされていません。
受信者のメタデータ
- 共有カタログの
information_schema内のテーブルには、Unity カタログに格納されているメタデータが反映されます。 このメタデータは、共有テーブルに直接クエリを実行するか、 DESCRIBE や REFRESH FOREIGN などのコマンドを実行する場合にのみ、プロバイダーから更新されます。 それまでは、プロバイダーのデータと比較して、information_schemaが古く表示されることがあります。
リソースと技術的な制限
- 共有テーブルに許可されるメタデータ内のファイルの数には制限があります。 詳細については、「 リソースの制限超過エラー」を参照してください。
-
information_schemaという名前のスキーマは Unity カタログメタストアにインポートできません。これは、そのスキーマ名が Unity カタログで予約されているためです。
Delta Lake 機能のサポート マトリックスも参照してください。
連鎖削除は共有保護を回避する
カタログやスキーマなどの親オブジェクトを削除すると、子オブジェクトがアクティブな共有に含まれている場合でも、子オブジェクトの連鎖削除がトリガーされます。 連鎖削除によって資産が削除された後、同じ名前の資産を共有に再追加することはできません。
この問題を回避するには、親オブジェクトを削除する前にすべての共有から資産を削除します。
リソース クォータ
Azure Databricksは、すべての OpenSharing セキュリティ保護可能オブジェクトにリソース クォータを適用します。 これらのクォータは、リソースの制限に記載されています。 これらのリソース制限を超えることが予想される場合は、Azure Databricks アカウント チームにお問い合わせください。
Unity Catalog リソース クォータ API を使用して、クォータの使用状況を監視できます。 「Unity Catalog リソース クォータの使用状況を監視するを参照してください。