OpenSharing とは何ですか?
OpenSharingは、Databricksの安全なデータ共有プラットフォームであり、相手がDatabricksを使用しているかどうかに関係なく、組織外のユーザーとデータとAIアセットを共有できます。OpenSharing は、データ製品を交換するためのオープンなフォーラムであるDatabricks Marketplaceと、複数の当事者が機密性の高い企業データについて協力できる、安全でプライバシー保護された環境であるクリーンルームの基盤でもあります。
OpenSharingは、他のプラットフォームからDeltaテーブルを共有するために使用できる、オープンソースプロジェクトとしても利用できます。
OpenSharing の仕組みはどうなっていますか?
OpenSharingは、他の組織との安全なデータ共有を行うために、Databricksによって開発されたオープンプロトコルです。それは、それらの組織が使用するコンピューティングプラットフォームに関係なく機能します。
OpenSharingを使用してデータを共有する方法はいくつかあります:
-
Databricks-to-Databricks 共有プロトコル は、Unity Catalogが有効なワークスペースのデータとAIアセットを、Unity Catalogが有効なDatabricksワークスペースにもアクセスできるユーザーと共有できます。
このアプローチでは、Databricksに組み込まれているOpenSharingサーバーを使用します。他のプロトコルではサポートされていないOpenSharingの一部の機能をサポートしており、これにはノートブック共有、Unity Catalogボリューム共有、Unity Catalog AIモデル共有、Unity Catalogデータガバナンス、監査、プロバイダーと受信者の両方に対する使用状況の追跡が含まれます。Unity Catalogとの統合により、プロバイダーと受信者の両方にとってセットアップとデータガバナンスが簡素化され、パフォーマンスが向上します。
「OpenSharing Databricks-to-Databricks プロトコルとは」を参照してください。
-
Databricks-to-Open共有プロトコル を使用すると、Unity Catalog対応のDatabricksワークスペースで管理している表形式のデータを、任意のコンピューティングプラットフォーム上のユーザーと共有できます。
このアプローチでは、Databricks に組み込まれている OpenSharing サーバーを使用します。Unity Catalog を使用してデータを管理していて、Databricks を使用していないユーザーや Unity Catalog 対応の Databricks ワークスペースにアクセスできないユーザーとデータを共有したい場合に便利です。プロバイダー側でのUnity Catalogとの統合により、プロバイダーのセットアップとガバナンスが簡素化されます。
Databricks-to-Open共有プロトコルとは?を参照してください。
-
Databricksの有無に関わらず、あらゆるプラットフォームからあらゆるプラットフォームへの共有を可能にする、**オープンソースのOpenSharingサーバーの顧客管理実装です**。
Databricksドキュメントには独自のOpenSharingサーバーをセットアップする手順は記載されていません。オープンソースプロジェクトをご覧ください。
-
Unity Catalogが有効なワークスペースとSAP BDCアカウントの間でデータを共有できる**Databricks用SAP Business Data Cloud (BDC) コネクタ**。
このアプローチは、OpenSharingを活用し、SAP BDCデータ製品へのライブ、ゼロコピーアクセスを実現するSAP BDCコネクタを使用します。
Databricks 用 SAP BDC コネクタとはを参照してください。
共有、プロバイダー、および受信者
DatabricksのOpenSharingの基礎となる主な概念は、 共有 、 プロバイダー 、および 受信者 です。
共有とは?
OpenSharing では、 共有 は、プロバイダーが1人以上の受信者と共有する、テーブルとテーブルパーティションの読み取り専用のコレクションです。受信者がUnity Catalogが有効なDatabricks ワークスペースを使用している場合は、ノートブックファイル、ビュー(行と列のレベルでアクセスを制限する動的ビューを含む)、Unity Catalog ボリューム、およびUnity Catalog モデルを共有に含めることもできます。
共有に対してテーブル、ストリーミングテーブル、管理されたIcebergテーブル、ビュー、マテリアライズドビュー、メトリクスビュー、ボリューム、モデル、およびノートブックファイルをいつでも追加または削除でき、データ受信者のアクセス権をいつでも共有に割り当てたり取り消したりできます。
Unity Catalogが有効なDatabricks ワークスペースでは、共有はUnity Catalogに登録されているセキュリティ保護可能なオブジェクトです。Unity Catalog Metasotreから共有を削除すると、その共有のすべての受信者がその共有オブジェクトにアクセスできなくなります。
「OpenSharing 共有の作成」を参照してください。
プロバイダーとは何ですか?
プロバイダー は、受信者とデータを共有する事業体です。プロバイダーであり、組み込みの Databricks OpenSharing サーバーを利用し、Unity Catalog を使用して共有と受信者を管理したい場合は、Unity Catalog が有効になっている Databricks ワークスペースが少なくとも 1 つ必要です。すべての既存ワークスペースをUnity Catalogに移行する必要はありません。OpenSharingのニーズに合わせて、新しいUnity Catalog対応ワークスペースを作成するだけです。
受信者がUnity Catalog対応のDatabricksワークスペース上にいる場合、プロバイダーも、プロバイダー組織を表し、その組織を共有セットに関連付けるUnity Catalogのセキュリティ保護可能なオブジェクトになります。
受信者とは?
受信者 は、プロバイダーから共有を受け取るエンティティです。Unity Catalogでは、受信者は組織を表し、その組織が1つ以上の共有にアクセスできるようにする資格情報またはセキュア共有識別子に関連付けられている、セキュリティ保護可能なオブジェクトです。
データプロバイダー(共有者)は、特定のUnity Catalogメタストアに対して複数の受信者を定義できますが、複数のメタストアのデータを特定のユーザーまたはユーザーグループと共有する場合は、メタストアごとに受信者を個別に定義する必要があります。受信者は複数の共有にアクセスできます。
プロバイダーがUnity Catalogメタストアから受信者を削除すると、その受信者は以前にアクセスできたすべての共有にアクセスできなくなります。
「OpenSharing (Databricks-to-Databricks共有) のデータ受信者を作成する」を参照してください。
Databricks-to-Open sharing と Databricks-to-Databricks sharing
このセクションでは、Unity Catalogが有効になっているDatabricksワークスペースから共有するための2つのプロトコルについて説明します。
このセクションでは、プロバイダーがUnity Catalog対応のDatabricksワークスペース上にあることを前提としています。Databricks 以外のプラットフォームまたはUnity Catalog以外のカタログワークスペースから共有するようにオープンソースのOpenSharingサーバーを設定する方法については、「オープンソースプロジェクト」を参照してください。
プロバイダーがDatabricksでOpenSharingを使用する方法は、データを共有している相手によって異なります:
- オープン共有 を使用すると、Databricksにアクセスできるかどうかに関係なく、任意のユーザーとデータを共有できます。
- Databricks-to-Databricks 共有を使用すると、自分とは異なるUnity Catalogメタストアにアタッチされたワークスペースを持つDatabricksユーザーとデータを共有できます。Databricks-to-Databricksは、オープン共有では利用できないノートブック、ボリューム、モデルの共有もサポートしています。
オープンな OpenSharing とは何ですか?
Databricksを使用しているかどうかに関係なく、Databricksワークスペースの外部のユーザーとデータを共有する場合は、オープンOpenSharingを使用してデータを安全に共有できます。データプロバイダーとして、共有受信者との認証を管理するには、以下のいずれかの方法を使用します。
- 有効期間の長いベアラートークンを生成し、受信者と安全に共有します。トークンを使用して認証し、アクセスを許可した共有に含まれるテーブルへの読み取りアクセス権を取得します。
- Open ID Connect (OIDC) フェデレーションを利用し、受信者のIDプロバイダー (IdP) がDatabricksに渡すJWTトークンと引き換えに、短期間有効なDatabricks OAuthトークンを受信者に付与します。
受信者は、以下のような多くのコンピューティングツールやプラットフォームを使用して共有データにアクセスすることができます。
- Databricks
- Apache Spark
- Pandas
- Power BI
OpenSharingコネクタの全一覧と使用方法に関する情報は、OpenSharingドキュメントを参照してください。
「Databricks-to-Open sharing プロトコルとは何ですか?」も参照してください。
Databricks-to-Databricks OpenSharing とは何ですか?
Unity Catalogが有効になっているDatabricksワークスペースを持つユーザーとデータを共有する場合は、Databricks-to-Databricks OpenSharingを使用できます。Databricks-to-Databricks共有を使用すると、AWS、Azure、GCPのいずれを使用しているかに関係なく、他のDatabricksアカウントのユーザーとデータを共有できます。また、独自のDatabricksアカウント内のさまざまなUnity Catalogメタストア間でデータを安全に共有するための優れた方法でもあります。このシナリオでは、Unity Catalog自体を使用してワークスペース間のデータへのアクセスを管理できるため、同じUnity Catalogメタストアに接続されているワークスペース間でデータを共有するためにOpenSharingを使用する必要はありません。
Databricks-to-Databricks共有の利点の1つは、共有受信者が共有にアクセスするためにトークンを必要とせず、プロバイダーが受信者トークンを管理する必要がないことです。共有接続のセキュリティ(すべてのID検証、認証、および監査を含む)は、OpenSharingとDatabricksプラットフォームを通じて完全に管理されます。もう1つの利点は、Databricksノートブックファイル、Unity Catalogボリューム、およびUnity Catalogモデルを共有できることです。
「OpenSharing Databricks-to-Databricks プロトコルとは」も参照してください。
プロバイダー管理者はどのようにOpenSharingを設定し、データを共有しますか?
このセクションでは、プロバイダーがUnity Catalog対応のDatabricksワークスペースからOpenSharingを有効にして共有を開始する方法の概要について説明します。オープンソースのオープンシェアリングについては、オープンソースプロジェクトをご覧ください。
同じアカウント内のUnity Catalogメタストア間でのDatabricks-to-Databricks共有は、常に有効になっています。他のアカウントのDatabricksワークスペース、またはDatabricks以外のクライアントと共有するには、Databricksアカウント管理者またはメタストア管理者の権限を持つプロバイダーが次の手順を実行します。
- データを管理する Unity Catalog メタストアで OpenSharing を有効にします。
OpenSharingを使用して、アカウント内の他のUnity Catalogメタストアのユーザーとのみデータを共有する場合は、メタストアでOpenSharingを有効にする必要はありません。1つのDatabricksアカウント内でのメタストア間の共有は、デフォルトで有効になっています。
「メタストアでOpenSharingを有効にする」を参照してください。 2. 共有を作成し、その共有にデータとビューを追加します。OpenSharingの共有の作成を参照してください。
-
受信者を作成します。プロバイダーはEメールでアクセス資格情報を共有できるため、受信者は共有データに簡単にアクセスできるようになります。
「OpenSharing (Databricks-to-Databricks共有) のデータ受信者を作成する」を参照してください。
受信者がDatabricksユーザーでない場合、またはUnity Catalogが有効になっているDatabricksワークスペースにアクセスできない場合は、Databricks-to-Open共有を使用する必要があります。その受信者に対して、ベアラートークンベースの資格情報を生成するか、OIDCフェデレーションを使用できます。
-
受信者にデータへのアクセス権を付与します。詳細については、OpenSharingデータ共有へのアクセスを管理する (プロバイダー向け)を参照してください。
自分自身をテスト受信者として使用し、セットアッププロセスを試してください。
EメールによるOpenSharing
ベータ版
This feature is in Beta.To use it, an アカウント admin on the provider's アカウント must enable OpenSharing by Eメール from the アカウント console Previews page.See Manage account-level previews.
OpenSharingのプロバイダーは、Databricks-to-Databricks共有の共有識別子を事前に収集したり、オープン共有用の資格情報ファイルをを手動で配信したりする代わりに、受信者のEメールアドレスを使用して受信者を招待するために、Eメール共有を使用します。これは、新しい共有プロトコルや認証タイプではありません。これは、作成した受信者にレイヤー化された配信方法です。
受信者を作成するときに、招待で許可する接続方法(Databricks、オープン共有、またはそのいずれか)を選択します。Eメール招待では、OIDCフェデレーションはサポートされていません。
Eメール共有により、プロバイダーのセットアップが簡素化されます。
- 受信者のEメールアドレスのみが必要です。受信者を作成する前に、受信者にメタストア共有IDを尋ねたり、資格情報ファイルを受け渡すための安全なチャンネルを探したりする必要はありません。
- OpenSharingはアクセスを付与するときに安全なアクティベーションLinkを配信するため、その受け渡しをご自身で管理する必要はありません。
- 両方の接続方法を許可した場合、同じ招待を使用して、環境に応じてDatabricksまたはオープン共有を介して受信者が接続できるようになります。
作成、付与、およびアクセスのステップは、すべての受信者が使用するものと同じです。
- 受信者を作成し、Eメールアドレスを指定します。Databricks-to-Databricks 受信者については、OpenSharing のデータ受信者を作成する (Databricks-to-Databricks 共有) を参照してください。オープン受信者については、ベアラー トークンを使用して非 Databricks ユーザーの受信者オブジェクトを作成する (Databricks-to-Open 共有) を参照してください。
- 受信者に共有へのアクセス権を付与します。これにより、OpenSharing から受信者に安全なアクティベーションLinkがEメールで送信(Trigger)されます。詳細については、OpenSharing データ共有へのアクセスを管理する (プロバイダー向け)を参照してください。
- 受信者はLinkに従って招待を受け入れ、共有データを読み取ります。「共有されているデータにアクセスする」を参照してください。
制限事項の完全なリストについては、「Eメール招待による共有」を参照してください。
受信者が共有データにアクセスする方法とは?
受信者は、共有データアセットに読み取り専用形式でアクセスします。共有ノートブックファイルは読み取り専用ですが、クローンを作成し、他のノートブックと同様に受信者のワークスペースで変更および実行できます。
以下のように、安全なアクセスは共有モデルによって異なります。
-
Databricks-to-Open 共有(受信者がUnity Catalogが有効になっているDatabricksワークスペースにアクセスできない場合)には2つのオプションがあります。
- ベアラートークンフローでは、受信者は、Apache Spark、pandas、Power BI、Databricksなど、選択したツールでデータにアクセスするたびに資格情報を提供します。ベアラートークンで共有されたデータを読み取るを参照してください。
- OIDC トークンフェデレーションフローでは、受信者または受信者のクライアントアプリが、独自のIDプロバイダー (IdP) を使用してデータにアクセスします。U2M フローで Open ID Connect (OIDC) フェデレーションを使用して共有されたデータを読み取る および M2M フローで Open ID Connect (OIDC) フェデレーションを使用して共有されたデータを読み取る を参照してください。
-
Databricks-to-Databricks(受信者のワークスペースでUnity Catalogが有効になっている):受信者はDatabricksを使用してデータにアクセスします。Unity Catalogを使用して、Databricksアカウントの他のユーザーへのアクセスを許可および拒否できます。「Databricks-to-Databricks OpenSharing を使用して共有されたデータを読み取る (受信者向け)」を参照してください。
データプロバイダーが独自のDatabricksアカウントでデータテーブルまたはボリュームを更新するたびに、受信者のシステムに更新がほぼリアルタイムで表示されます。OpenSharing を使用して共有されているデータにアクセスする方法については、「OpenSharing を使用して共有されたデータにアクセスする(受信者向け)」を参照してください。
共有データを共有およびアクセスしているユーザーを追跡する方法とは?
Unity Catalog が有効な Databricks ワークスペースのデータプロバイダーは、Databricks 監査ログとシステムテーブルを使用して、共有と受信者の作成および変更を監視し、共有での受信者のアクティビティを監視できます。「データ共有の監査と監視」を参照してください。
Databricksワークスペースで共有データを使用するデータ受信者は、Databricksの監査ログとシステムテーブルを使用して、どのデータに誰がアクセスしているかを把握できます。「データ共有の監査と監視」を参照してください。
ボリュームの共有
Databricks-to-Databricks 共有フローを使用してボリュームを共有できます。 「共有にボリュームを追加する (プロバイダー向け)」および「Databricks-to-Databricks OpenSharing を使用して共有されたデータを読み取る (受信者向け)」を参照してください。
モデルの共有
Databricks-to-Databricks 共有フローを使用してモデルを共有できます。共有にモデルを追加する(プロバイダーの場合)およびDatabricks-to-Databricks OpenSharing を使用して共有されたデータを読み取る(受信者の場合)(受信者の場合)を参照してください。
ノートブックの共有
OpenSharing を使用して、Databricks-to-Databricks 共有フローを使用してノートブックファイルを共有できます。「共有へのノートブックファイルの追加」(プロバイダー向け)および「共有ノートブックの読み取り」(受信者向け)を参照してください。
ビューを共有する際に行および列レベルでアクセスを制限する
受信者のプロパティに基づいて特定のテーブルデータへのアクセスを制限する動的ビューを共有できます。動的ビューを共有に追加して行と列をフィルター処理するを参照してください。
オープン共有とストリーミング
OpenSharing は Apache Spark 構造化ストリーミングをサポートしています。プロバイダーは、受信者が構造化ストリーミングソースとして使用できるように、履歴を含むテーブルまたはストリーミングテーブルを共有して、共有データを低遅延で段階的に処理できます。受信者は、履歴と共有されているテーブルに対してDelta Lakeタイムトラベルクエリーを実行することもできます。
履歴を使用してテーブルを共有する方法については、「共有にテーブルを追加する」を参照してください。共有テーブルをストリーミングソースとして使用する方法については、「Apache Spark構造化ストリーミングを使用してテーブルをクエリーする」(Databricks-to-Databricks共有の受信者向け)または「Spark構造化ストリーミングを使用して共有テーブルにアクセスする」(Databricks-to-Open共有データの受信者向け)を参照してください。
ストリーミングテーブルを共有する方法については、共有にストリーミングテーブルを追加するを参照してください。
以下も参照してください:構造化ストリーミングの概念。
Delta Lake 機能サポートマトリックス
OpenSharing は、テーブルを共有する際に、ほとんどの Delta Lake 機能をサポートしています。このサポート・マトリックスには、次の項目が記載されています。
- 特定のバージョンの Databricks Runtime、オープンソースの OpenSharing Spark コネクタ、またはオープンソースの OpenSharing Python コネクタを必要とする Delta 機能。
- 部分的にサポートされている機能。
機能 | プロバイダー | Databricks 受信者 | オープンソース受信者 |
|---|---|---|---|
削除ベクトル | テーブルは履歴と共有する必要があります。 |
|
|
列マッピング | テーブルは履歴と共有する必要があります。 |
|
|
Iceberg を使用した Delta の読み取り | テーブルは履歴と共有する必要があります。 |
|
|
V2チェックポイント | 制限事項付きでサポートされています。 | 制限事項付きでサポートされています。 | 制限事項付きでサポートされています。 |
TimestampNTZ | サポートされています | Databricks Runtime 14.1以上 | OpenSharing Spark コネクタ 3.3以降 |
リキッドクラスタリング | 制限事項付きでサポートされています。 | 制限事項付きでサポートされています。 | 制限事項付きでサポートされています。 |
OpenSharing FAQ
以下は、OpenSharingに関するよくある質問です。
OpenSharingを使用するにはUnity Catalogが必要ですか?
いいえ、共有 (プロバイダーとして) または共有データの使用 (受信者として) に Unity Catalog は必要ありません。ただし、Unity Catalogは、非表形式およびAIアセット共有のサポート、すぐに使用できるガバナンス、シンプルさ、クエリパフォーマンスなどの点で有利です。
プロバイダーは2つの方法でデータを共有することができます:
-
共有するアセットをUnity Catalogの管理下に置き、組み込みのDatabricks OpenSharingサーバーを使用して共有します。
すべてのアセットをUnity Catalogに移行する必要はありません。共有したいアセットを管理するには、Unity Catalogが有効になっているDatabricksワークスペースが1つだけ必要です。一部のアカウントでは、新しいワークスペースが Unity Catalog に対して自動的に有効になります。Unity Catalog の概要を参照してください。
-
Databricksアカウントを使用することなく、Databricks-to-Open 共有サーバーを実装してデータを共有します。
受信者は、次の2つの方法でデータを消費できます:
-
Databricksワークスペースなし。Power BI、Pandas、オープンソースのApache Sparkを含む多くのデータプラットフォームで利用可能な、オープンソースのOpenSharingコネクタを使用します。「ベアラー トークンを使用して共有されたデータの読み取り」および「OpenSharingオープンソースプロジェクト」を参照してください。
-
Databricksワークスペースで。受信者ワークスペースはUnity Catalogで有効にする必要はありませんが、有効にするとガバナンス、シンプルさ、パフォーマンスの利点があります。
これらの利点を求める受信者組織は、すべての資産をUnity Catalogに移行する必要はありません。共有されている資産を管理するには、Unity Catalog用に有効化されたDatabricksワークスペースが1つだけ必要です。一部のアカウントでは、新しいワークスペースが Unity Catalog に対して自動的に有効になります。Unity Catalog の概要を参照してください。
ベアラートークンで共有されたデータを読み取るおよびDatabricks-to-Databricks OpenSharing を使用して共有されたデータを読み取る (受信者向け)を参照してください。
OpenSharing を使用するために Databricks の顧客である必要がありますか?
いいえ、OpenSharing はオープンなプロトコルです。Databricks以外のデータは、任意のデータプラットフォーム上の受信者と共有できます。プロバイダーは、任意のコンピューティングプラットフォームから共有するようにオープンOpenSharingサーバーを構成できます。受信者は、Power BI、pandas、オープンソースSparkなど、多くのデータ製品のオープンソースOpenSharingコネクタを使用して共有データを使用できます。
ただし、DatabricksでOpenSharingを使用すること、特にUnity Catalog対応ワークスペースからの共有には多くの利点があります。
詳細については、このFAQの最初の質問を参照してください。
OpenSharing コストを発生させて、確認するにはどうすればよいですか?
OpenSharingのコストは、ビュー、マテリアライズドビュー、ストリーミングテーブルを共有およびアクセスする際に発生します。以下は、共有による潜在的なコストです。
-
Databricksが課金するコンピュートコスト。
-
ストレージおよびネットワーク転送(エグレス)の費用は、ストレージベンダー、あるいはプロバイダーがSecureConnectを使用している場合はDatabricksによって請求されます。
-
外部スキーマとテーブルを共有する場合の、外部コンピュートソースのコスト。
コンピュートが実行される方法と、その費用を誰が支払うかは、いくつかの要因によって異なります。
- 受信者コンピュートの種類
- 同じ Databricks アカウント内で共有が行われるか、複数のアカウント間で共有が行われるか
次の表では、OpenSharing を使用したビューの共有とアクセスに関する課金方法について説明します。
受信者のコンピュート | アカウント関係 | 支払い元 | 請求に使用されるSKU | アクセス方法 |
|---|---|---|---|---|
Databricks のサーバーレス | すべて | 受信者* | 受信者のサーバレス | 受信者は基になるデータに直接アクセスできます。 |
Databricks クラシック | 同じアカウント | 受信者* | 受信者のクラシック | 受信者は基になるデータに直接アクセスできます。 |
Databricks クラシック | 異なるアカウント | 受信者 | プロバイダーのインタラクティブ サーバレス | プロバイダーがフィルタリングを実行します |
Databricks間オープン共有コネクタ | すべて | プロバイダー | プロバイダーのインタラクティブ サーバレス | プロバイダーがフィルタリングを実行します |
別の**アカウント**で**サーバレスコンピュート**を使用している受信者とOpenSharingを使用する場合、または同じ**アカウント**の受信者と使用する場合、追加料金は発生しません。これにより、データアセットのマテリアライズに追加費用は発生しません。
フォーリンテーブル を共有する場合、マテリアライゼーションは常にプロバイダー側で実行され、保存されます。Icebergクライアントを使用していないオープンな受信者とフォーリンIcebergテーブルを共有する場合、マテリアライゼーションはプロバイダー側で実行されます。プロバイダーには、データのマテリアライゼーションに使用されるdefaultストレージに起因する追加料金が表示される場合があります。
Databricks-to-Databricks共有フローを使用して フォーリンテーブル を共有する場合、フィルタリングは常にプロバイダー側で実行され、受信者がフィルタリングのコンピュートコストを負担します。Databricksのオープン共有プロトコルを使用する場合、フィルタリングはプロバイダー側で実行され、プロバイダーがコストを負担します。
課金アトリビューションは、課金利用システムテーブルリファレンスおよびOpenSharing マテリアライゼーション履歴システムテーブルリファレンスを使用して照会することもできます。受信者がアトリビューションの料金を支払う場合、受信者のみがシステムテーブル内の関連するレコードを閲覧できます。クエリの例については、「サンプルクエリ」を参照してください。
OpenSharing は egress のコストがかかりますか?
リージョン内のOpenSharingに、エグレスコストはかかりません。他のデータ共有プラットフォームとは異なり、OpenSharingではデータのレプリケーションは必要ありません。このモデルには多くの利点がありますが、クラウドまたはリージョン間でデータを共有する場合、クラウドベンダーがデータエグレス料金を請求する可能性があることを意味します。Databricks は、egress料金が発生しない Cloudflare R2 からの共有をサポートしており、egress料金を監視して回避するためのその他のツールと推奨事項を提供しています。OpenSharing エグレスコストを監視および管理する (プロバイダー向け)を参照してください。
ただし、プロバイダーがSecureConnectを使用している場合、データ転送はクラウドベンダーではなくDatabricksによって請求されます。
受信者は、共有ビュー、マテリアライズドビュー、ストリーミングテーブルの基になるデータに直接アクセスできますか?
共有ビュー、マテリアライズドビュー、およびストリーミングテーブルの場合、次のいずれかが当てはまる場合、データ受信者は直接アクセスできます:
- 受信者は、同じDatabricksアカウント上でサーバレスコンピュートまたは非専用のクラシックコンピュートを使用します。
- 受信者は、別のDatabricksアカウント上でサーバレス コンピュートを使用します。
それ以外の場合、データはプロバイダー側でマテリアライズされ、フィルタリングされます。
SecureConnectが有効になっている場合、上記のシナリオでも、これらのアセットは常にプロバイダー側で具体化され、フィルタリングされます。
データの具体化は、共有データ資産の親ストレージの場所に保存されます。
マテリアライズド アセットを共有する場合、コンピュートは必要なフィルターを適用し、プロバイダーのストレージにキャッシュされた一時的な具体化を作成することで、リクエストを処理します。このフィルタリングされたデータは、事前署名された有効期間の短いURLを使用して受信者に配信され、安全なアクセスを確保しつつ、プロバイダーから受信者へのアクセス制御を維持します。
プロバイダーは受信者アクセスを取り消すことができるか?
はい、受信者のアクセスは、オンデマンドで、指定した粒度レベルで取り消すことができます。特定の共有および特定のIPアドレスへの受信者アクセスの拒否、受信者の表形式のデータのフィルター処理、受信者トークンの取り消し、受信者の完全な削除を行うことができます。「共有への受信者のアクセス権を取り消す」および「OpenSharing のデータ受信者を作成する (Databricks-to-Databricks 共有)」を参照してください。
署名済みURLを使用するのは危険ではないのですか?
OpenSharingでは、署名済みのURLを使用して、オブジェクトストレージ内のファイルへの一時的なアクセスを提供します。これらは、共有データにすでにアクセスできる受信者にのみ付与されます。これらは有効期限が短く、受信者にすでに付与されているアクセスレベルを超えてアクセスレベルを拡大しないため、安全です。
Databricks-to-OpenSharingプロトコルで使用されているトークンは安全ですか?
OpenSharingでは、他のデータ共有プラットフォームとは異なり、クロスプラットフォームでの共有が可能なため、共有プロトコルにはオープントークンが必要です。プロバイダーは、トークンの有効期間を設定し、ネットワーク制御を設定し、オンデマンドでアクセスを取り消すことで、トークンのセキュリティを確保できます。さらに、このトークンは、受信者にすでに付与されているアクセスレベルを超えてアクセスレベルを拡大しません。「トークンのセキュリティに関する考慮事項」を参照してください。
受信者共有へのアクセス管理にトークンを使用しない場合は、Databricks-to-Databricks共有を使用するか、代替手段についてDatabricksアカウントチームにお問い合わせください。
LakeFlow ConnectとOpenSharingの違いは何ですか?
OpenSharing を使用すると、プラットフォーム、クラウド、リージョン間でライブ データを安全に共有できます。Databricksでは、大量のデータ、低レイテンシのクエリ、およびサードパーティのAPI制限に対応するようにスケーリングできるため、マネージドコネクタを使用したデータ取り込みをお勧めします。ただし、データを移動せずにクエリを実行することもできます。
マネージド コネクタと OpenSharing のいずれかを選択できる場合、以下のシナリオでは OpenSharing を選択してください:
- データの重複を制限しています。
- 可能な限り最新のデータをクエリしています。
制限事項
OpenSharingを使用してデータとAI資産を共有する場合は、次の制限事項を考慮してください。
Eメール招待による共有
Eメール招待による共有は、以下のシナリオではサポートされていません。
- OIDC federation : Eメール invitations don't support OIDC federation.See Enable Open ID Connect (OIDC) federation for OpenSharing recipients.
- グループ and service principals : An Eメール invitation must go to an individual user's Eメール address, so it can't represent a グループ or a service principals.
- A different accepting Databricks identity : For Databricks-to-Databricks sharing, the person who accepts must sign in with a Databricks アカウント whose Eメール matches the invited address.
Eメールによる OpenSharing には、以下の制限があります:
- Eメールの招待は単一のEメールアドレスに紐付けられており、転送することはできません。受信者は、そのユーザーとしてサインインした状態で承諾する必要があります。
- 各Eメール受信者は1つのEメールアドレスにマップされ、同じアドレスに対して2番目のEメール受信者を作成することはできません。
- To accept a Databricks-to-Databricks invitation, the recipient needs the
CREATE PROVIDERprivilege on their metastore, and theCREATE CATALOGprivilege to mount the shared data into a catalog. - Databricks-to-Databricks sharingの場合、1通のEメールによる招待は最大10個のメタストアで受け入れることができます。
- オープン共有の招待では、受信者が1回のみdownloadできる単一の認証情報ファイルを使用します。
- すでに受信者が持っている共有の招待を再送信することはできませんが、新しい共有へのアクセス権を付与すると、新しいEメールが送信されます。Eメール受信者の管理を参照してください。
CREATE RECIPIENTSQLコマンドとDatabricks CLIは、Eメール共有をサポートしていません。
テーブル形式と機能のサポート
フォーマット要件:
- 表形式データは、Deltaまたは管理されたIcebergテーブル形式である必要があります。ParquetテーブルをDelta形式に簡単に変換したり、元に戻したりすることができます。See CONVERT TO DELTA.
- OpenSharing は、Iceberg 読み取りが有効になっているテーブルのみを Delta テーブルとして読み取ることができます。
サポートされていないテーブル:
- プロバイダーは、パーティションフィルタリングでリキッドクラスタリングを使用するテーブルを共有できません。
- プロバイダーは、R2 テーブルを V2 チェックポイントと共有できません。
- プロバイダーは照合順序が有効になっているテーブルを共有できません。
- プロバイダーは、行フィルターまたは列マスクのあるテーブルを共有できません。
- プロバイダーは
SHALLOW CLONEテーブルを共有できません。Databricksは、絶対パスを参照するDeltaログのURLの事前署名をサポートしていません。 - 外部キー制約は共有テーブルでは使用できません。
Databricks-to-Databricks共有のみ
次のアセットは、Databricks-to-Databricks 共有フローでのみ共有できます。
- ノートブックの共有「共有へのノートブックファイルの追加」および「Databricks-to-Databricks OpenSharing を使用して共有されたデータを読み取る(受信者向け)」を参照してください。
- ボリューム共有。「共有にボリュームを追加する(プロバイダーの場合)」および「Databricks-to-Databricksオープン共有を使用して共有されたデータを読み取る (受信者の場合)」を参照してください。
- モデル共有「共有にモデルを追加する(プロバイダーの場合)」および「Databricks-to-Databricks OpenSharing を使用して共有されたデータを読み取る(受信者の場合)」を参照してください。
- メトリクスビューの共有。「共有へのメトリクスビューの追加」(プロバイダー向け)および「共有メトリクスビューの読み取り」(受信者向け)を参照してください。
ビュー
- 共有可能なビューは、Deltaテーブル、フォーリンテーブル、またはその他の共有可能なビューで定義する必要があります。「共有にビューを追加する」(プロバイダー向け)および「共有ビューを読み取る」(受信者向け)を参照してください。
ストリーミング
- OpenSharing は、ストリーミング ソースの実行中またはストリーミングの再起動中に
responseFormatの変更をサポートしていません。
受信者のメタデータ
- 共有カタログの
information_schema内のテーブルは、Unity Catalog に格納されているメタデータを反映します。このメタデータは、共有テーブルを直接クエリするか、DESCRIBE や REFRESH FOREIGN などのコマンドを実行した場合にのみ、プロバイダーから更新されます。それまでは、information_schemaはプロバイダーのデータと比較して古くなっているように見える場合があります。
リソースと技術制限
- 共有テーブルに許可されるメタデータ内のファイル数には制限があります。詳細については、「リソース制限超過エラー」を参照してください。
information_schemaという名前のスキーマはUnity Catalogで予約されているため、Unity Catalogメタストアにインポートできません。
Delta Lake機能サポートマトリックスも参照してください。
カスケード削除は共有保護をバイパスします
カタログやスキーマなどの親オブジェクトを削除すると、その子オブジェクトがアクティブな共有に含まれている場合でも、子オブジェクトのカスケード削除がトリガーされます。カスケード削除によってアセットが削除された後、同じ名前のアセットを共有に再度追加することはできません。
この問題を回避するには、親オブジェクトを削除する前に、すべての共有からアセットを削除してください。
リソースクォータ
Databricks は、すべての OpenSharing セキュリティ保護可能なオブジェクトにリソース クォータを適用します。これらのクォータは、リソース制限に記載されています。これらのリソース制限を超えることが予想される場合は、Databricksアカウントチームにお問い合わせください。
クォータの使用状況は、 Unity Catalog リソース クォータ APIを使用して監視できます。 「Unity Catalog のリソース クォータの使用状況を監視する」を参照してください。