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

OpenSharing の共有を作成します

共有とは、1つ以上の受信者と共有したいデータおよびAIアセットのコレクションを表す、Unity Catalog内のセキュリティ保護可能なオブジェクトです。共有を作成し、そこにアセットを追加して、受信者にアクセス権を付与します。

共有には、次のデータアセットを含めることができます。

スキーマ (データベース) 全体を共有すると、受信者は、共有した時点でスキーマ内のすべてのテーブル、ストリーミングテーブル、ビュー、マテリアライズドビュー、モデル、ボリュームにアクセスできるほか、今後スキーマに追加されたデータや AI アセットにもアクセスできます。

共有には、1つのUnity CatalogメタストアのデータとAIアセットのみを含めることができます。共有からデータとAIアセットをいつでも追加または削除できます。

共有を作成する前に、アカウントでOpenSharing を設定する(プロバイダー向け)ことを確認してください。

共有モデルの詳細については、共有、プロバイダー、および受信者を参照してください。

要件​

完了したい各タスクについて、記載されている要件を満たしていることを確認してください。

ヒント

データ資産を共有に追加する際は、Databricks は、共有所有者としてグループを使用することをお勧めします。

タスク

要件

共有を作成する

  • 共有したいデータが登録されている Unity Catalog メタストアに対するCREATE SHARE権限が必要です。
  • Unity CatalogメタストアがアタッチされているDatabricksワークスペースを使用して共有を作成します。

共有に次の項目を追加します:

  • テーブル
  • ストリーミングテーブル
  • マネージド Iceberg テーブル
  • フォーリンテーブル
  • フォーリン Iceberg テーブル
  • Foreign Delta tables
  • ビュー
  • マテリアライズドビュー
  • メトリクスビュー
  • 共有の所有者である必要があります。
  • データアセットを含むカタログとスキーマに対して、USE CATALOG権限とUSE SCHEMA権限が必要です。
  • データ資産のSELECT権限が必要です。アセットを引き続き共有するには、その権限を保持する必要があります。権限がなくなると、受信者は共有を通じてアセットにアクセスできません。

スキーマ全体または外部スキーマを共有する

  • 共有の所有者およびスキーマの所有者であるか、USE SCHEMA を所有している必要があります。
  • テーブルを共有するスキーマに対する SELECT 権限がある。
  • ボリュームを共有するスキーマに対する READ VOLUME 権限がある。

共有にボリュームを追加する

  • 共有の所有者である必要があります。
  • ボリュームを含むカタログとスキーマに対するUSE CATALOGおよびUSE SCHEMA権限、またはカタログまたはスキーマの所有権を持っている必要があります。
  • ボリュームに対してREAD VOLUME権限が必要です。ボリュームが共有され続けるためには、その権限を保持する必要があります。これを失うと、受信者は共有を通じてボリュームにアクセスできなくなります。

Python UDF を共有に追加する

  • 共有の所有者である必要があります。
  • Python UDFを含むカタログおよびスキーマに対してUSE CATALOGおよびUSE SCHEMAの権限を持っているか、カタログまたはスキーマの所有権が必要です。
  • Python UDF に対する EXECUTE 権限を持っている必要があります。Python UDF が引き続き共有されるためには、その権限を保持する必要があります。それを失うと、受信者は共有を通じて Python UDF にアクセスできなくなります。

共有にモデルを追加する

  • 共有の所有者である必要があります。
  • モデルを含むカタログおよびスキーマに対してUSE CATALOGおよびUSE SCHEMAの権限を持っているか、カタログまたはスキーマの所有権が必要です。
  • モデルに対するEXECUTE権限が必要です。モデルを引き続き共有するには、その権限を保持する必要があります。その権限を失った場合、受信者は共有を通じてモデルにアクセスできません。

ノートブック ファイルを共有に追加する

  • ノートブックに対するCAN READ権限を持つ共有の所有者である必要があります。

タスク

要件

共有を作成する

  • 共有したいデータが登録されている Unity Catalog メタストアに対するCREATE SHARE権限が必要です。
  • Unity CatalogメタストアがアタッチされているDatabricksワークスペースを使用して共有を作成します。

共有に次の項目を追加します:

  • テーブル
  • ストリーミングテーブル
  • マネージド Iceberg テーブル
  • フォーリンテーブル
  • フォーリン Iceberg テーブル
  • Foreign Delta tables
  • ビュー
  • マテリアライズドビュー
  • メトリクスビュー
  • 共有の所有者である必要があります。
  • データアセットを含むカタログとスキーマに対して、USE CATALOG権限とUSE SCHEMA権限が必要です。
  • データ資産のSELECT権限が必要です。アセットを引き続き共有するには、その権限を保持する必要があります。権限がなくなると、受信者は共有を通じてアセットにアクセスできません。

スキーマ全体または外部スキーマを共有する

  • 共有の所有者およびスキーマの所有者であるか、USE SCHEMA を所有している必要があります。
  • テーブルを共有するスキーマに対する SELECT 権限がある。
  • ボリュームを共有するスキーマに対する READ VOLUME 権限がある。

共有にボリュームを追加する

  • 共有の所有者である必要があります。
  • ボリュームを含むカタログとスキーマに対するUSE CATALOGおよびUSE SCHEMA権限、またはカタログまたはスキーマの所有権を持っている必要があります。
  • ボリュームに対してREAD VOLUME権限が必要です。ボリュームが共有され続けるためには、その権限を保持する必要があります。これを失うと、受信者は共有を通じてボリュームにアクセスできなくなります。

Python UDF を共有に追加する

  • 共有の所有者である必要があります。
  • Python UDFを含むカタログおよびスキーマに対してUSE CATALOGおよびUSE SCHEMAの権限を持っているか、カタログまたはスキーマの所有権が必要です。
  • Python UDF に対する EXECUTE 権限を持っている必要があります。Python UDF が引き続き共有されるためには、その権限を保持する必要があります。それを失うと、受信者は共有を通じて Python UDF にアクセスできなくなります。

共有にモデルを追加する

  • 共有の所有者である必要があります。
  • モデルを含むカタログおよびスキーマに対してUSE CATALOGおよびUSE SCHEMAの権限を持っているか、カタログまたはスキーマの所有権が必要です。
  • モデルに対するEXECUTE権限が必要です。モデルを引き続き共有するには、その権限を保持する必要があります。その権限を失った場合、受信者は共有を通じてモデルにアクセスできません。

ノートブック ファイルを共有に追加する

  • ノートブックに対するCAN READ権限を持つ共有の所有者である必要があります。

コンピュートの要件​

  • Databricks ノートブックを使用して共有を作成する場合、コンピュートリソースは Databricks Runtime 11.3 LTS 以降を使用し、標準または専用アクセスモード (以前の共有およびシングルユーザー) を備えている必要があります。
  • SQLステートメントを使用して共有にスキーマを追加する場合 (またはスキーマを更新または削除する場合)、 Databricks Runtime 13.3 LTS以上を実行している SQL ウェアハウスまたはコンピュートを使用する必要があります。 カタログエクスプローラ を使用して同じことを実行する場合、コンピュートの要件はありません。

共有オブジェクトを作成する​

共有オブジェクトを作成する前に、要件を満たしていることを確認してください。

共有を作成するには、カタログエクスプローラ、Databricks Unity Catalog CLI、または Databricks ノートブックまたは Databricks SQL クエリエディターで CREATE SHARE SQL コマンドを使用します。

  1. Databricks ワークスペースで、データアイコン。 カタログ をクリックします。

  2. カタログ ウィンドウの上部にある歯車アイコン。歯車アイコンをクリックし、 OpenSharing を選択します。

    または、右上隅の Share > OpenSharing をクリックします。

  3. 自分が共有 タブで、 データの共有 ボタンをクリックします。

  4. 共有の作成 ページで、共有の 名前 とオプションのコメントを入力します。

  5. 保存して続行 をクリックします。

    データアセットの追加を続けることも、停止して後で戻ることもできます。

  6. **データ資産の追加**タブで、共有するデータ資産を選択します。

    詳細な手順、追加要件、および関連する制限事項については、以下を参照してください。

  7. 保存して続行 をクリックします。

  8. ノートブックを追加 タブで、共有するノートブックを選択します。

    詳細な手順については、「ノートブック ファイルを共有に追加」を参照してください。

  9. 保存して続行 をクリックします。

  10. 受信者の追加 タブで、共有する受信者を選択します。

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

  11. 「**データを共有**」をクリックして、受信者とデータを共有します。

    まだ受信者を作成していない場合は、 データを共有 をクリックし、受信者を作成してから、後でアクセス権を付与してください。

共有にテーブルを追加する​

共有にテーブルを追加する前に、要件を満たしていることを確認してください。

ワークスペース管理者であり、ワークスペース管理者グループからテーブルを含むスキーマおよびカタログに対する USE SCHEMA および USE CATALOG 権限を継承している場合、そのテーブルを共有に追加することはできません。まず、スキーマおよびカタログに対する USE SCHEMA および USE CATALOG 権限を自身に付与する必要があります。

注記

テーブルのコメント、列のコメント、および主キー制約は、2024年7月25日以降にDatabricks-to-Databricks 共有を使用して受信者と共有される共有に含まれます。リリース日より前に受信者と共有された共有を通じてコメントと制約の共有を開始するには、受信者のアクセス権を取り消して再付与し、コメントと制約の共有をトリガーする必要があります。

共有にテーブルを追加するには、カタログエクスプローラ、Databricks Unity Catalog CLI、または Databricks ノートブックや Databricks SQL クエリ エディタで SQL コマンドを使用します。

  1. Databricks ワークスペースで、データアイコン。 カタログ をクリックします。

  2. カタログ ウィンドウの上部にある歯車アイコン。歯車アイコンをクリックし、 OpenSharing を選択します。

    または、右上隅の Share > OpenSharing をクリックします。

  3. 「**自分が共有**」タブで、テーブルを追加する共有を見つけて、その名前をクリックします。行トラッキングが有効なテーブルを追加できます。受信者は行トラッキング列をクエリできます。

  4. **アセットの管理 > アセットの編集**をクリックします。

  5. アセットの編集 ページで、スキーマ全体 (データベース) または個々のテーブルを選択します。

    • テーブルを選択するには、まずカタログを選択し、次にそのテーブルを含むスキーマ、最後にテーブル自体を選択します。

      ワークスペース検索を使用して、テーブルを名前、列名、またはコメントで検索できます。「ワークスペース オブジェクトの検索」を参照してください。

    • スキーマを選択するには、まずカタログを選択し、次にスキーマを選択します。

      共有スキーマの詳細については、「 共有にスキーマを追加する」を参照してください。

  6. 履歴 : テーブル履歴を共有して、受信者がタイムトラベルクエリを実行したり、Spark 構造化ストリーミングでテーブルを読み取ったり、トランザクションを実行したりできるようにします。Databricks-to-Databricks 共有では、パフォーマンス向上のためにテーブルの Delta ログも共有されます。履歴共有によるテーブルの読み取りパフォーマンス向上を参照してください。履歴の共有には、Databricks Runtime 12.2 LTS 以降が必要です。

注記

顧客がtable_changes() 関数を使用してテーブルのチェンジデータフィード (CDF) をクエリできるようにするには、共有する前にテーブルで CDF を有効にする必要があります WITH HISTORY。

  1. (オプション)吹き出しプラスアイコン。 エイリアス 列または パーティション 列の下にある をクリックして、エイリアスまたはパーティションを追加します。スキーマ全体を選択した場合、エイリアスとパーティションは使用できません。スキーマ全体を選択した場合、テーブル履歴はデフォルトで含まれます。

  2. 保存 をクリックします。

共有からテーブルを削除する方法については、共有の更新を参照してください。

クラウドトークンの適格性​

Databricksはクラウドトークン(一時的なパススコープのクラウド資格情報)を使用して、受信者に共有Deltaテーブルファイルへの直接的な読み取りアクセス権を付与します。Databricks間オープン共有プロトコルでは、これは ディレクトリベースのアクセスモード とも呼ばれます。ビュー、マテリアライズドビュー、フォーリンテーブル(フォーリンDeltaテーブルおよびフォーリンIcebergテーブルを除く)、ストリーミングテーブル、ボリューム、ノートブック、Python UDF、およびAIモデルはサポートされていません。どのテーブルが対象となるかは、共有プロトコルによって異なります。

Databricks-to-Databricks 共有 :次のすべての条件が当てはまる場合は、クラウド トークンが使用されます:

  • テーブルは WITH HISTORY で共有されています (最初からの完全な履歴)。
  • テーブルはパーティションフィルターなしで共有されます。

Databricks-to-Open 共有:クラウド トークン(ディレクトリベースのアクセス モード)は、次のすべてが当てはまる場合に使用されます。

  • 共有オブジェクトは、 マネージドまたは外部のDeltaテーブル です。
  • テーブルは WITH HISTORY で共有されています (最初からの完全な履歴)。
  • テーブルはパーティションフィルターなしで共有されます。
  • このテーブルは CCv2 テーブルではありません。
  • テーブルはデフォルトストレージを使用していません。

Databricks-to-Databricks共有の場合、クラウドトークンは長期間有効なベアラー トークンなしでUnity Catalogメタストア間で直接交換され、直接ソーステーブルアクセスと同等のパフォーマンスが実現します。DatabricksとOpen間での共有の場合、OpenSharingサーバーは、リストおよびメタデータ応答に、テーブルのクラウドストレージの場所とaccessModes: ["url", "dir"]を含みます。Open recipients は、Generate Temporary Table Credentials エンドポイントを呼び出して資格情報を取得し、クラウド ストレージから直接読み取ることができます。

重要

クラウド トークン アクセスを使用する場合、受信者は共有 Delta テーブルのルート ディレクトリにスコープ設定された資格情報を受け取ります。これにより、データファイルと Delta log の両方への読み取りアクセスが許可されます。Delta log には、各テーブルバージョンのコミット履歴、コミッターに関する情報、および vacuum されていない削除済みデータが含まれています。

共有するテーブルパーティションを指定​

テーブルを共有に追加するときに、テーブルの一部のみを共有するには、パーティション仕様を指定してください。Catalog Explorer、Databricks Unity Catalog CLI、またはDatabricksノートブックもしくはDatabricks SQLクエリーエディターのSQLコマンドを使用して、共有にテーブルを追加または共有を更新する際に、パーティションを指定します。共有にテーブルを追加するおよび共有を更新するを参照してください。

例​

次のSQLの例は、year、month、およびdateの列によってパーティション化された、inventoryテーブル内のデータの一部を共有します:

  • 2021年のデータ。
  • 2020年12月のデータ。
  • 2019年12月25日のデータ。
SQL
ALTER SHARE share_name
ADD TABLE inventory
PARTITION (year = "2021"),
(year = "2020", month = "Dec"),
(year = "2019", month = "Dec", date = "2019-12-25");

受信者プロパティを使用してパーティションフィルタリングを行う​

データ受信者のプロパティに一致する、パラメーター化されたパーティション共有とも呼ばれるテーブルパーティションを共有できます。

デフォルトプロパティには次のものが含まれます。

  • databricks.accountIdデータ受信者が属するDatabricksアカウント (Databricks-to-Databricks共有のみ)。
  • databricks.metastoreId: データ受信者が属する Unity Catalog メタストア (Databricks間共有のみ)。
  • databricks.nameデータ受信者の名前。

受信者を作成または更新する際に、任意のカスタムプロパティを作成できます。

受信者プロパティでフィルタリングすることで、複数のDatabricksアカウント、ワークスペース、およびユーザー間で、同じ共有を使用して同じテーブルを共有しつつ、データ境界を維持できます。

たとえば、テーブルにDatabricksアカウントID列が含まれている場合、DatabricksアカウントIDによって定義されたテーブルパーティションを持つ単一の共有を作成できます。共有すると、OpenSharing は、各受信者に Databricks アカウントに関連付けられたデータのみを動的に提供します。

OpenSharingにおけるパラメーターベースの動的パーティション共有の図

プロパティによって動的にパーティション分割する機能がなければ、受信者ごとに個別の共有を作成する必要があります。

共有を作成または更新する際に、受信者プロパティでフィルタリングするパーティションを指定するには、カタログエクスプローラまたは Databricks ノートブックまたは Databricks SQL クエリーエディターで CURRENT_RECIPIENT SQL 関数を利用できます。

注記

受信者のプロパティは、Databricks Runtime 12.2以上で利用できます。

  1. Databricks ワークスペースで、データアイコン。 カタログ をクリックします。

  2. カタログ ウィンドウの上部にある歯車アイコン。歯車アイコンをクリックし、 OpenSharing を選択します。

    または、右上隅の Share > OpenSharing をクリックします。

  3. 自分が共有 タブで、更新する共有を見つけて、その名前をクリックします。

  4. アセットの管理 > データ アセットの追加 をクリックします。

  5. [テーブルの追加] ページで、テーブルが含まれるカタログとデータベースを選択し、そのテーブルを選択してください。

    どのカタログとデータベースにテーブルが含まれているか不明な場合は、ワークスペース検索を使用して、名前、列名、またはコメントで検索できます。「ワークスペース オブジェクトの検索」を参照してください。

  6. (オプション) パーティション 列の下の吹き出しプラスアイコン。をクリックして、パーティションを追加します。

    パーティションをテーブルに追加 ダイアログで、次の構文を使用してプロパティ・ベースのパーティション仕様を追加します。

    (<column-name> = CURRENT_RECIPIENT().<property-key>)

    例えば

    (country = CURRENT_RECIPIENT().country)
  7. 保存 をクリックします。

削除ベクトルまたは列マッピングを含むテーブルを共有に追加します​

削除ベクトルは、Delta テーブルで有効にできるストレージ最適化機能です。「Databricks の削除ベクトル」を参照してください。

Databricks では、Delta テーブルの列マッピングもサポートされています。 Delta Lake 列マッピングを使用した列の名前変更と削除を参照してください。

削除ベクトルまたは列マッピングを使用してテーブルを共有するには、履歴と共有する必要があります。 共有にテーブルを追加するを参照してください。

削除ベクトルまたは列マッピングが設定されたテーブルを共有すると、受信者は、SQLウェアハウス、Databricks Runtime 14.1以降で実行されているコンピュート、またはオープンソース delta-sharing-spark 3.1以降で実行されているコンピュートを使用して、そのテーブルをクエリできます。「削除ベクトルまたは列マッピングが有効なテーブルの読み取り」および「削除ベクトルまたは列マッピングが有効なテーブルの読み取り」を参照してください。

共有にスキーマを追加する​

共有にスキーマを追加する前に、要件を満たしていることを確認してください。

共有にスキーマ全体を追加すると、共有の作成時にスキーマ内のすべてのデータアセットに受信者がアクセスできるようになります。また、時間の経過とともにスキーマに追加されるすべてのアセットにもアクセスできるようになります。これには、スキーマ内のすべてのテーブル、ビュー、およびボリュームが含まれます。この方法で共有されたテーブルには、常に完全な履歴が含まれます。

受信者とスキーマを共有する​

共有にスキーマを追加するには、「共有にテーブルを追加する」の手順に従い、スキーマの追加方法を規定するコンテンツに注意してください。

SQLを使用してスキーマを追加、更新、または削除するには、 Databricks Runtime 13.3 LTS以上を実行している SQL ウェアハウスまたはクラスターが必要です。 カタログエクスプローラ を使用して同じことを実行する場合、コンピュートの要件はありません。

制限事項​

  • サポートされていないデータアセットが含まれていても、スキーマを共有できます。これらのアセットはフィルタリングされ、受信者と共有されません。サポートされていないデータアセットは次のとおりです:

    • パーティションフィルタリングを伴うリキッドクラスタリングを使用するテーブル
    • V2 チェックポイント付き R2 テーブル
    • 照合順序が有効になっているテーブル
    • 行フィルターまたは列マスクを持つテーブル
    • SHALLOW CLONE tables
    • 共有テーブル内の外部キー制約
  • スキーマ全体を共有する場合、テーブルエイリアス、パーティション、およびボリュームエイリアスは使用できません。スキーマ内のアセットにエイリアスまたはパーティションを作成している場合、スキーマ全体を共有に追加すると、それらは削除されます。

  • スキーマ内のテーブルまたはボリュームに対して詳細オプションを指定したい場合は、SQLを使用してそのテーブルまたはボリュームを共有し、異なるスキーマ名でエイリアスを付ける必要があります。

  • スキーマレベルのエイリアシングはサポートされていません。異なるカタログの同じ名前のスキーマを同じ共有に追加することはできません。代わりに、エイリアススキーマ名で個々のテーブルを共有します。

ABACポリシーで保護されたテーブルとスキーマを共有に追加する​

属性ベースのアクセス制御 (ABAC) は、Databricks全体で柔軟、スケーラブル、一元化されたアクセスコントロールを提供するデータガバナンスモデルです。

標準テーブルと同様に、ABACポリシーで保護されたテーブルやスキーマを共有できます。データアセットにABACポリシーを適用する方法については、行フィルターと列マスクのポリシーを作成および管理するを参照してください。

ただし、 特権ユーザー である必要があります。特権ユーザーとは、共有の所有者であり、データ資産に適用されるABACポリシーから除外されたユーザーです。このポリシーは、受信者のアクセスを管理しません。受信者は、共有資産への完全なアクセス権を持っています。ABAC の制限が適用されます。

共有にストリーミングテーブルを追加する​

ストリーミングテーブルは、ストリーミングまたは増分データ処理に対する追加サポートを備えた通常のDeltaテーブルです。ストリーミングテーブルは、追加専用のデータソース向けに設計されており、入力を一度だけ処理します。スタンドアロンのストリーミングテーブルを使用するを参照してください。

共有にストリーミングテーブルを追加する前に、要件を満たしていることを確認してください。

追加要件​

  • ストリーミングテーブルの共有が設定されているアカウントで、**ワークフロー、ノートブック、LakeFlow Pipelines向けのServerlessコンピュート**を有効にする必要があります。See Serverless コンピュートへの接続.

  • ワークスペースでワークスペースとカタログのバインディングが有効になっている場合は、そのワークスペースがストリーミングテーブルがあるカタログに対する読み取り/書き込みアクセス権を持っていることを確認してください。詳細については、ワークスペースとカタログのバインドを参照してください。

  • 共有可能なストリーミングテーブルは、 Delta テーブルまたはその他の共有可能なストリーミングテーブルまたはビューで定義する必要があります。

  • ストリーミングテーブルを共有に追加するときは、Databricks Runtime LTS 13.3 以上のコンピュートあるいはSQLウェアハウスを使用する必要があります。

制限事項:​

  • ストリーミングテーブルでは、行フィルターと列マスクを持つことはできません。

    • ストリーミングテーブルのベーステーブルは、行フィルターと列マスクを持つことができます。
  • ストリーミングテーブルにはパーティションフィルターを含めることはできません。代わりに、ストリーミングテーブルの上にビューを作成します。

  • Databricks-to-Open 共有の受信者は、ストリーミングテーブルの現在のスナップショットのみを読み取ることができます。タイムトラベル、クエリ履歴、ストリーミング読み取り、および CDF は、オープン受信者にはサポートされていません。相手の方がCDFを必要とする場合は、CDFを有効にした通常のDeltaテーブルを共有してください。

  • 受信者が基盤となるデータに直接アクセスできない場合、LIMIT 句と述語プッシュダウンはサポートされません。システムは、クエリフィルターに関係なく、すべてのクエリ結果を受信者に返す前に完全に具体化します。共有ビュー、マテリアライズドビュー、およびストリーミングテーブルの基になるデータに受信者は直接アクセスできますか?をご覧ください。

  • ストリーミングテーブルの一般的な制限も適用されます。ストリーミングテーブルの制限を参照してください。

ストリーミングテーブルを受信者と共有する​

共有にストリーミングテーブルを追加するには:

  1. Databricks ワークスペースで、データアイコン。 カタログ をクリックします。

  2. カタログ ウィンドウの上部にある歯車アイコン。歯車アイコンをクリックし、 OpenSharing を選択します。

    または、右上隅の Share > OpenSharing をクリックします。

  3. 「 自分が共有 」タブで、ストリーミングテーブルを追加する共有を見つけて、その名前をクリックします。

  4. **アセットの管理 > アセットの編集**をクリックします。

  5. アセットの編集 ページで、共有するストリーミングテーブルを検索または参照し、選択します。

  6. (オプション) エイリアス 列で、吹き出しプラスアイコン。 をクリックしてエイリアス、つまり代替のストリーミングテーブル名を指定し、ストリーミングテーブル名をより読みやすくします。エイリアスは、受信者が確認し、クエリで使用する必要がある名前です。エイリアスが指定されている場合、受信者は実際のストリーミングテーブル名を使用できません。

  7. 保存 をクリックします。

共有からストリーミングテーブルを削除する方法に関する情報については、共有の更新を参照してください。

共有にマネージド Iceberg テーブルを追加​

Apache Icebergは、アナリティクスワークロード向けのオープンソースのテーブル形式です。Databricksでは、Unity Catalog内にIcebergテーブルを作成でき、これらはマネージドIcebergテーブルと呼ばれます。

管理対象Icebergテーブルを共有に追加する前に、要件を満たしていることを確認してください。Icebergテーブルおよびマネージド Iceberg テーブルの制限が適用されます。制限事項を参照してください。

共有にマネージド Iceberg テーブルを追加するには:

  1. Databricks ワークスペースで、データアイコン。 カタログ をクリックします。

  2. カタログ ウィンドウの上部にある歯車アイコン。歯車アイコンをクリックし、 OpenSharing を選択します。

    または、右上隅の Share > OpenSharing をクリックします。

  3. 自分が共有 タブで、マネージドIcebergテーブルを追加する共有を見つけて、その名前をクリックします。

  4. [ アセットの管理 ] > [ アセットの編集 ] をクリックします。

  5. **アセットの編集**ページで、共有したいマネージド Iceberg テーブルを検索または参照して選択します。

  6. (オプション) Alias 列で、吹き出しプラスアイコン。をクリックして、別名、または別のマネージド Iceberg テーブル名を指定し、名前をより読みやすくします。エイリアスは、受信者が確認し、クエリで使用する必要がある名前です。エイリアスが指定されている場合、受信者は実際のマネージド Iceberg テーブル名を使用できません。

  7. 保存 をクリックします。

共有にフォーリンスキーマまたはテーブルを追加します。​

レイクハウスフェデレーションを使用すると、Databricksを使用してPostgreSQLやMySQLなどの外部データソースに対してクエリーを実行できます。フォーリンテーブルのデータとメタデータは、ソースシステム内に保持されます。Databricksはクエリーフェデレーションを通じてそのデータを照会し、Unity Catalogがデータガバナンスを追加します。フォーリンスキーマは、これらのテーブルのスキーマです。外部ソースへの接続の詳細については、外部データベースおよびカタログへの接続を参照してください。

OpenSharingを使用すると、Databricksにデータをコピーしたり、複雑なネットワーク設定を行ったり、資格情報を転送したりすることなく、元の場所から外部データを安全に共有できるようになります。

注記

これは、OneLakeやHive metastoreなどのフォーリンカタログに登録されたDelta形式のテーブルを共有する、foreign Deltaテーブルの共有とは異なります。

共有に外部スキーマまたはテーブルを追加する前に、要件を満たしていることを確認してください。

追加要件​

  • フォーリンスキーマまたはフォーリンテーブル共有が設定されているアカウントでは、 Serverless compute for ワークフロー、ノートブック、およびLakeFlow Pipelines を有効にする必要があります。「Serverless コンピュートへの接続」を参照してください。

  • 外部のスキーマとテーブルを共有する場合、データはプロバイダー側でクエリされ、一時的にマテリアライズされます。デフォルトでは、マテリアライズされたデータは、Databricks の デフォルト ストレージ を使用して隠されたスキーマに格納されます。デフォルト ストレージの要件を満たしていることを確認し、制限を遵守してください。

    デフォルトストレージの地域別の可用性の詳細については、 「サーバレスの可用性」を参照してください。

    Databricks デフォルトストレージの使用をオプトアウトし、一時的なマテリアライズに独自のストレージを使用するには、サポートケースをオープンしてください。

重要

具体化するには大きすぎるフォーリンテーブルは共有できません。具体化が制限を超えると、クエリは失敗します。

制限事項​

  • 共有されたフォーリンテーブルは、LIMIT句または述語プッシュダウンをサポートしていません。システムは、クエリフィルターに関係なく、すべてのクエリ結果を受信者に返す前に完全に具体化します。

推奨される使用パターン​

クエリ結果は各クエリに対してオンデマンドで生成されるため、フォーリンテーブルとスキーマの共有は、テーブルまたはマテリアライズドビューの共有と比較して、費用対効果が高くない可能性があります。Databricksでは、パフォーマンスを向上させるために次のことを推奨しています。

  • 一般的なクエリ結果のサイズは10 GB未満に抑えてください。
  • 頻繁なデータダンプの代わりに、アドホックな探索的クエリを使用します。
  • クラウドトークン共有を使用する場合、コスト効率とパフォーマンス向上のため、フォーリンテーブル上に作成されたマテリアライズドビューを共有することを検討してください。

外部スキーマまたはテーブルを受信者と共有する​

共有に外部スキーマまたはテーブルを追加するには、カタログエクスプローラ、Databricks Unity Catalog CLI、または Databricks ノートブックまたは Databricks SQL クエリエディターの SQL コマンドを使用します。

  1. Databricks ワークスペースで、データアイコン。 カタログ をクリックします。

  2. カタログ ウィンドウの上部にある歯車アイコン。歯車アイコンをクリックし、 OpenSharing を選択します。

    または、右上隅の Share > OpenSharing をクリックします。

  3. 自分が共有 タブで、フォーリンテーブルまたはスキーマを追加する共有を見つけて、その名前をクリックします。

  4. **アセットの管理 > アセットの編集**をクリックします。

  5. アセットを編集 ページで、共有するフォーリンテーブルまたはスキーマを検索または参照して選択します。

  6. (オプション) **エイリアス**列で、 吹き出しプラスアイコン。をクリックしてエイリアス、つまり代替の外部スキーマ名またはテーブル名を指定し、外部スキーマ名またはテーブル名をより読みやすくします。エイリアスは、受信者が確認し、クエリで使用する必要がある名前です。エイリアスが指定されている場合、受信者は実際の外部スキーマ名またはテーブル名を使用できません。

  7. 保存 をクリックします。

フォーリンIcebergテーブルを共有に追加する​

フォーリン Iceberg テーブルは、レイクハウスフェデレーション を使用してフォーリン Iceberg カタログからフェデレーションされたテーブルです。Databricks の Apache Iceberg テーブルの詳細については、Databricks の Apache Iceberg とは何ですか? を参照してください。

始める前に、一般的な要件と共有を作成するを満たしていることを確認してください。外部 Iceberg クライアントを使用して、受信者に外部の Iceberg テーブルを共有することもできます。詳細については、外部 Iceberg クライアントへの共有を有効にするを参照してください。

注記

受信者が最新のデータを受け取ることを確認するには、定期的にフォーリンIcebergテーブルを更新してください。任意のSELECTクエリまたはREFRESH TABLEコマンドは、テーブルのメタデータを更新します。

Databricks では、Databricks 上のフォーリン Iceberg テーブルをリモートの Iceberg ソースと同期した状態に保つために、スケジュールされたジョブを設定することをおすすめします。更新のスケジュール設定の詳細については、クエリのスケジュール設定を参照してください。

追加要件​

制限事項​

  • パーティションはサポートされていません。
  • Icebergクライアントを使用していないオープンな受信者と共有する場合、LIMIT句および述語プッシュダウンはサポートされていません。システムは、クエリーフィルターに関わらず、すべてのクエリー結果を受信者に返す前に完全にマテリアライズ化します。

共有にフォーリン Iceberg テーブルを追加する​

フォーリンIcebergテーブルは、完全な履歴と共に自動的に共有されます。

共有にフォーリン Iceberg テーブルを追加するには:

  1. Databricks ワークスペースで、データアイコン。 カタログ をクリックします。

  2. カタログ ウィンドウの上部にある歯車アイコン。歯車アイコンをクリックし、 OpenSharing を選択します。

    または、右上隅の Share > OpenSharing をクリックします。

  3. 「 自分が共有 」タブで、外部 Iceberg テーブルを追加する共有を見つけて、その名前をクリックします。

  4. [ アセットの管理 ] > [ アセットの編集 ] をクリックします。

  5. [アセットの編集] ページで、共有するフォーリンIceberg テーブルを検索または参照し、それを選択します。

  6. (オプション) エイリアス 列で、吹き出しプラスアイコン。をクリックしてエイリアスを指定します。エイリアスは、受信者が見る名前であり、クエリで使用する必要がある名前です。

  7. 保存 をクリックします。

共有にフォーリンDeltaテーブルを追加する​

フォーリンDeltaテーブルとは、Databricksがカタログフェデレーションを通じてソースストレージから直接読み取るDelta Lake形式のフォーリンテーブルです。例として、OneLake、Hive metastore、またはAWS Glue内のDeltaテーブルなどが挙げられます。詳細については、「フォーリンテーブルの操作」および「カタログフェデレーションとは」を参照してください。

Databricks受信者の場合、外部Deltaテーブルは常に完全な履歴とともに、パーティションフィルターなしで共有されるため、受信者は常にクラウドトークンを使用してソースDeltaファイルを直接読み取ります。Databricks-to-Open共有の受信者の場合、データは受信者側でマテリアライズされ、事前署名付きURLを通じて配信されます。

注記

これは、PostgreSQLやMySQLなどのソースからクエリーフェデレーションテーブルを共有する、フォーリンテーブルの共有とは異なります。

開始する前に、一般的な要件を満たしていることを確認し、共有を作成してください。

共有にフォーリンDeltaテーブルを追加する​

共有にフォーリン Delta テーブルを追加するには:

  1. Databricks ワークスペースで、データアイコン。 カタログ をクリックします。

  2. カタログ ウィンドウの上部にある歯車アイコン。歯車アイコンをクリックし、 OpenSharing を選択します。

    または、右上隅の Share > OpenSharing をクリックします。

  3. 自分が共有 tabで、フォーリンDeltaテーブルを追加する共有を見つけて、その名前をクリックします。

  4. [ アセットの管理 ] > [ アセットの編集 ] をクリックします。

  5. アセットの編集 ページで、共有するフォーリンDeltaテーブルを検索または参照して選択します。

  6. (オプション) エイリアス 列で、吹き出しプラスアイコン。をクリックしてエイリアスを指定します。エイリアスは、受信者が見る名前であり、クエリで使用する必要がある名前です。

  7. 保存 をクリックします。

共有にビューを追加する​

ビューは、1 つ以上のテーブルまたは他のビューから作成される読み取り専用オブジェクトです。 ビューは、Unity Catalog メタストア内の複数のスキーマとカタログに含まれるテーブルやその他のビューから作成できます。 ビューの作成と管理を参照してください。

ビューを共有する場合、データはクエリされ、一時的にマテリアライズされます。マテリアライズされたデータは、ビューの親スキーマまたはカタログのストレージロケーション、またはメタストアのルートロケーションに格納されます。

ビューを共有に追加する前に、要件を満たしていることを確認してください。

追加要件​

  • ビュー共有が設定されているアカウントで、 ワークフロー、ノートブック、およびLakeflow PipelinesのServerless コンピュート を有効にする必要があります。Serverless コンピュートへの接続を参照してください。

  • 共有可能なビューは、Delta テーブル、フォーリンテーブル、その他の共有可能なビュー、またはローカルのマテリアライズドビューとストリーミングテーブルで定義する必要があります。

  • ビューを共有に追加するときは、Databricks Runtime 13.3 LTS 以上のコンピュートまたはSQLウェアハウスを使用する必要があります。

  • ワークスペースでワークスペースとカタログのバインドが有効になっている場合は、ワークスペースにカタログへの読み取りおよび書き込みアクセス権があることを確認してください。詳細については、ワークスペースとカタログのバインドを参照してください。

  • ビューを共有する場合、受信者のコンピュートタイプとアカウントの関係によっては、データがプロバイダー側でクエリされ、一時的にマテリアライズされる可能性があります。マテリアライズドデータは、ビューの親スキーマまたはカタログのストレージロケーション、あるいはメタストアのルートロケーションに格納されます。マテリアライゼーションが行われるタイミングと費用負担の詳細については、受信者は、共有ビュー、マテリアライズドビュー、およびストリーミングテーブル内の基になるデータに直接アクセスできますか? を参照してください。および OpenSharing のコストはどのように発生し、確認できますか?

  • ストレージロケーションにファイアウォールやプライベートリンクなどのカスタムネットワーク設定がある場合、受信者がそのストレージロケーションに接続できるよう、許可リストに登録されていることを確認する必要があります。サーバレス コンピュートのファイアウォール規則の構成については、ファイアウォールを使用したワークスペースのネットワーク送信の制限 を参照してください。

制限事項​

受信者とビューを共有する​

このセクションでは、Catalog Explorer、Databricks CLI、またはDatabricksノートブックやDatabricks SQLクエリ エディターのSQLコマンドを使用して、共有にビューを追加する方法について説明します。Unity Catalog REST API を使用する場合は、REST API リファレンスの PATCH /api/2.1/unity-catalog/shares/ を参照してください。

  1. Databricks ワークスペースで、データアイコン。 カタログ をクリックします。

  2. カタログ ウィンドウの上部にある歯車アイコン。歯車アイコンをクリックし、 OpenSharing を選択します。

    または、右上隅の Share > OpenSharing をクリックします。

  3. 自分が共有 タブで、ビューを追加する共有を見つけて、その名前をクリックします。

  4. アセットの管理 > データ アセットの追加 をクリックします。

  5. [ テーブルの追加 ] ページで、共有したいビューを検索または参照し、選択します。

  6. (オプション)吹き出しプラスアイコン。 エイリアス 列の下にある をクリックして、代替ビュー名、または エイリアス を指定し、ビュー名を読みやすくします。エイリアスは受信者が見る名前であり、クエリで使用する必要があります。エイリアスが指定されている場合、受信者は実際のビュー名を使用できません。

  7. 保存 をクリックします。

共有からビューを削除する方法については、共有の更新を参照してください。

共有に動的ビューを追加して行と列をフィルター処理する​

ダイナミックビューを使用して、テーブルデータへのきめ細やかなアクセス制御を構成できます。以下を含む:

  • 列または行レベルのセキュリティ
  • データマスキング.

CURRENT_RECIPIENT()関数を使用する動的ビューを作成すると、受信者定義で指定したプロパティに基づいて受信者アクセスを制限できます。

このセクションでは、動的ビューを使用して、行レベルと列レベルの両方で、受信者によるテーブルデータへのアクセスを制限する例を示します。

要件​

  • 共有にビューを追加するための要件を満たしているか確認してください。
  • Databricks Runtime バージョン : CURRENT_RECIPIENT 関数は Databricks Runtime 14.2 以降でサポートされています。

制限事項:​

  • ビュー共有のすべての制限が適用されます。
  • プロバイダーが CURRENT_RECIPIENT 関数を使用するビューを共有している場合、共有コンテキストのために、プロバイダーはそのビューを直接クエリすることはできません。このような動的ビューをテストするには、プロバイダーは自分自身とビューを共有し、受信者としてそのビューをクエリする必要があります。
  • プロバイダーは、動的ビューを参照するビューを作成できません。

受信者のプロパティを設定する​

これらの例では、共有するテーブルには country という名前の列があり、一致する country プロパティを持つ受信者のみが特定の行または列を表示できます。

カタログエクスプローラー、またはDatabricksノートブックまたはSQLクエリエディターのSQLコマンドを使用して、受信者のプロパティを設定できます。

  1. Databricks ワークスペースで、データアイコン。 カタログ をクリックします。

  2. カタログ ウィンドウの上部にある歯車アイコン。歯車アイコンをクリックし、 OpenSharing を選択します。

    または、右上隅の Share > OpenSharing をクリックします。

  3. [受信者] タブで、プロパティを追加する受信者を見つけて、その名前をクリックします。

  4. ページ右下、**受信者のプロパティ**の下で、Databricks 受信者の場合は 鉛筆アイコン。 **databricks.metastoreID** の横にある、またはオープン受信者の場合は **databricks.name** の横にある 鉛筆アイコンをクリックします。

  5. [受信者プロパティの編集] ダイアログで、列名をキーとしてcountry (この場合)、フィルタリングする値を値としてCA (例:) 指定します。

  6. 保存 をクリックします。

受信者向けの行レベルのアクセス許可を持つ動的ビューを作成​

この例では、一致するcountryプロパティを持つ受信者のみが特定の行を表示できます。

SQL
CREATE VIEW my_catalog.default.view1 AS
SELECT * FROM my_catalog.default.my_table
WHERE country = CURRENT_RECIPIENT('country');

もう1つのオプションは、データプロバイダーがファクトテーブルフィールドを受信者プロパティにマッピングする個別のマッピングテーブルを維持することです。これにより、受信者プロパティとファクトテーブルフィールドを分離して、柔軟性を高めることができます。

受信者に対する列レベルのアクセス許可を持つ動的ビューを作成する​

この例では、country プロパティに一致する受信者のみが特定の列を表示できます。その他は、返されたデータを REDACTED として表示します。

SQL
CREATE VIEW my_catalog.default.view2 AS
SELECT
CASE
WHEN CURRENT_RECIPIENT('country') = 'US' THEN pii
ELSE 'REDACTED'
END AS pii
FROM my_catalog.default.my_table;

動的ビューを受信者と共有する​

動的ビューを受信者と共有するには、標準ビューの場合と同じ SQL コマンドまたは UI プロシージャを使用します。 共有にビューを追加するを参照してください。

共有にマテリアライズドビューを追加​

ビューと同様に、マテリアライズドビューもクエリの結果であり、テーブルのようにアクセスできます。通常ビューとは異なり、マテリアライズドビューの結果は、マテリアライズドビューが最後に更新された時点のデータの状態を反映します。マテリアライズドビューの詳細については、「スタンドアロンのマテリアライズドビューを使用する」を参照してください。

共有にマテリアライズドビューを追加する前に、要件を満たしていることを確認してください。

追加要件​

  • マテリアライズドビュー共有が設定されているアカウントで、 ワークフロー、ノートブック、および Lakeflow pipelines の Serverless コンピュート を有効にする必要があります。See Serverless コンピュートへの接続.

  • ワークスペースでワークスペース-カタログバインディングが有効になっている場合は、そのワークスペースがマテリアライズドビューを含むカタログへの読み取り/書き込みアクセス権を持っていることを確認してください。詳細については、ワークスペースとカタログのバインドを参照してください。

  • 共有可能なマテリアライズドビューは、Delta テーブル、またはその他の共有可能なストリーミングテーブル、ビュー、またはマテリアライズドビューで定義する必要があります。

  • マテリアライズドビューを共有に追加するときは、Databricks Runtime 13.3 LTS 以上の SQLウェアハウスまたはコンピュートを使用する必要があります。

制限事項:​

  • マテリアライズドビューには行フィルターを設定できませんが、マテリアライズドビューのベース テーブルには行フィルターと列マスクを設定できます。
  • マテリアライズドビューはパーティションフィルターを持つことはできません。代わりに、マテリアライズドビューの上にビューを作成します。
  • Databricks-to-Open Sharing の受信者は、マテリアライズドビューの現在のスナップショットのみを読み取ることができます。ストリーミング読み取りはオープンな受信者向けにはサポートされていません。
  • 受信者が基盤となるデータに直接アクセスできない場合、LIMIT 句と述語プッシュダウンはサポートされません。システムは、クエリフィルターに関係なく、すべてのクエリ結果を受信者に返す前に完全に具体化します。共有ビュー、マテリアライズドビュー、およびストリーミングテーブルの基になるデータに受信者は直接アクセスできますか?をご覧ください。
  • 一般的な制限はマテリアライズドビューにも適用されます。「マテリアライズドビューの制限事項」を参照してください。

マテリアライズドビューを受信者と共有する​

このセクションでは、DatabricksノートブックまたはDatabricks SQLクエリ エディターで、カタログエクスプローラ、Databricks CLI、またはSQLコマンドを使用して、マテリアライズドビューを共有に追加する方法について説明します。REST APIを使用したい場合は、REST APIリファレンスのPATCH /api/2.1/unity-catalog/shares/を参照してください。

  1. Databricks ワークスペースで、データアイコン。 カタログ をクリックします。

  2. カタログ ウィンドウの上部にある歯車アイコン。歯車アイコンをクリックし、 OpenSharing を選択します。

    または、右上隅の Share > OpenSharing をクリックします。

  3. 「 自分が共有 」タブで、マテリアライズドビューを追加する共有を見つけて、その名前をクリックします。

  4. **アセットの管理 > アセットの編集**をクリックします。

  5. アセットの編集 ページで、共有したいマテリアライズドビューを検索または参照して選択します。

  6. (オプション) エイリアス 列で、吹き出しプラスアイコン。 をクリックして、マテリアライズドビュー名をよりわかりやすくするためのエイリアス、つまり代替のマテリアライズドビュー名を指定します。エイリアスは、受信者が見てクエリで使用する必要がある名前です。エイリアスが指定されている場合、受信者は実際のマテリアライズドビュー名を使用できません。

  7. 保存 をクリックします。

共有からマテリアライズドビューを削除する方法については、共有の更新を参照してください。

共有にメトリクスビューを追加する​

メトリクスビューを使用すると、メジャーをそれらのグループ化、フィルタリング、集計に使用するディメンションから分離することで、ビジネス上のメトリクスを1回定義できます。メトリクスビューの詳細については、Unity Catalogメトリクスビューを参照してください。

共有にメトリクスビューを追加する前に、要件を満たしていることを確認してください。

制限事項:​

行フィルター、列マスク、または ABAC ポリシーを持つテーブルを参照するメトリクスビューが共有された場合でも、受信者はそのクエリを実行できません。

メトリクスビューを受信者と共有する​

このセクションでは、カタログエクスプローラー、Databricks CLI、または Databricks ノートブックや Databricks SQL クエリーエディターでの SQL コマンドを使用して、メトリクスビューを共有に追加する方法について説明します。Unity Catalog REST API を使用する場合は、REST API リファレンスの PATCH /api/2.1/unity-catalog/shares/ を参照してください。

SQL、Databricks CLI、およびPythonでは、メトリクスビューは VIEW データ型を使用します。

  1. Databricks ワークスペースで、データアイコン。 カタログ をクリックします。

  2. カタログ ペインの上部にある歯車アイコン歯車アイコン。をクリックし、 OpenSharing を選択します。

    または、右上隅の Share > OpenSharing をクリックします。

  3. 自分が共有 tabで、メトリクスビューを追加する共有を見つけて、その名前をクリックします。

  4. アセットの管理 > データ アセットの追加 をクリックします。

  5. テーブルの追加 ページで、共有したいメトリクスビューを検索または参照して選択します。

  6. (オプション)吹き出しプラスアイコン。 エイリアス 列の下にある をクリックして代替名を指定するか、 エイリアス をクリックしてメトリクスビュー名を読みやすくします。エイリアスは受信者が確認する名前であり、クエリーで使用する必要があります。エイリアスが指定されている場合、受信者は実際のメトリクスビュー名を使用できません。

  7. 保存 をクリックします。

共有からメトリクスビューを削除する方法については、共有の更新を参照してください。

共有にボリュームを追加する​

ボリュームは、クラウド オブジェクト ストレージの場所にあるストレージの論理ボリュームを表す Unity Catalog オブジェクトです。 これらは主に、表形式以外のデータ資産に対するガバナンスを提供することを目的としています。 Unity Catalogボリュームとはを参照してください。

共有にボリュームを追加する前に、要件を満たしていることを確認してください。

追加要件​

  • ボリューム共有は、Databricks-to-Databricks 共有でのみサポートされています。
  • ボリュームを共有に追加する際は、バージョン2023.50以降のSQLウェアハウス、またはDatabricks Runtime 14.1以降のコンピュートリソースを使用する必要があります。
  • プロバイダー側のボリュームストレージにカスタムネットワーク構成(ファイアウォールやプライベートリンクなど)がある場合、プロバイダーは、受信者のデータプレーンアドレスが、ボリュームのストレージ場所に接続できるように適切に許可リストに登録されていることを確認する必要があります。受信者側で、Catalog Explorerはボリュームを正しく表示しない場合があります。
注記

2024年7月25日以降にDatabricks-to-Databricks共有を使用して受信者と共有された共有には、ボリュームコメントが含まれます。リリース日より前に受信者と共有された共有を通じてコメントの共有を開始したい場合は、コメントの共有をトリガーするために受信者アクセスを取り消して再付与する必要があります。

受信者とボリュームを共有する​

このセクションでは、カタログエクスプローラ、Databricks CLI、または Databricks ノートブックまたは SQL クエリ エディターの SQL コマンドを使用して、共有にボリュームを追加する方法について説明します。 Unity Catalog REST APIを使用したい場合は、REST APIリファレンスのPATCH /api/2.1/unity-catalog/shares/ を参照してください。

  1. Databricks ワークスペースで、データアイコン。 カタログ をクリックします。

  2. カタログ ウィンドウの上部にある歯車アイコン。歯車アイコンをクリックし、 OpenSharing を選択します。

    または、右上隅の Share > OpenSharing をクリックします。

  3. 自分が共有 タブで、ボリュームを追加する共有を見つけて、その名前をクリックします。

  4. **アセットの管理 > アセットの編集**をクリックします。

  5. **資産の編集**ページで、共有するボリュームを検索または参照して選択します。

    あるいは、ボリュームを含むスキーマ全体を選択できます。「共有にスキーマを追加する」を参照してください。

  6. (オプション)吹き出しプラスアイコン。 **エイリアス**列の下にある をクリックして、代替ボリューム名、つまり**エイリアス**を指定し、ボリューム名を読みやすくします。

    エイリアスは、スキーマ全体を選択した場合は使用できません。

    エイリアスは、受信者が確認する名前であり、クエリで使用する必要があります。エイリアスが指定されている場合、受信者は実際のボリューム名を使用できません。

  7. 保存 をクリックします。

共有からのボリュームの削除に関する情報については、共有の更新を参照してください。

共有に Python UDF を追加する​

ユーザー定義関数 (UDF) を使用すると、Databricks の組み込み機能を拡張するコードを再利用および共有できます。Python UDF を作成する方法については、Python スカラー ユーザー定義関数 (UDF) を参照してください。

Python UDF を共有に追加する前に、要件を満たしていることを確認してください。

追加の制限​

  • オープンな受信者とPython UDFを共有することはできません。

Python UDF を受信者と共有する​

このセクションでは、カタログエクスプローラー、Databricks CLI、またはDatabricksノートブックまたはSQLクエリエディターのSQLコマンドを使用して、Python UDFを共有に追加する方法について説明します。Unity Catalog REST APIを使用したい場合は、REST APIリファレンスのPATCH /api/2.1/unity-catalog/shares/を参照してください。

  1. Databricks ワークスペースで、データアイコン。 カタログ をクリックします。

  2. カタログ ウィンドウの上部にある歯車アイコン。歯車アイコンをクリックし、 OpenSharing を選択します。

    または、右上隅の Share > OpenSharing をクリックします。

  3. **自分が共有** タブで、Python UDFを追加する共有を見つけて、その名前をクリックします。

  4. **アセットの管理 > アセットの編集**をクリックします。

  5. 「**アセットの編集**」ページで、共有するPython UDFを検索または参照して選択します。

    または、Python UDF を含むスキーマ全体を選択できます。「共有にスキーマを追加する」を参照してください。

  6. (オプション)吹き出しプラスアイコン。 エイリアス 列の下にある をクリックして、Python UDF 名を読みやすくするための別の Python UDF 名、または エイリアス を指定します。

    エイリアスは、スキーマ全体を選択した場合は使用できません。

    エイリアスは、受信者が確認する名前であり、クエリで使用する必要があります。エイリアスが指定されている場合、受信者は実際のPython UDF名を使用できません。

  7. 保存 をクリックします。

共有にモデルを追加する​

モデルを共有に追加する前に、要件を満たしていることを確認してください。

注記

モデルコメントとモデルバージョンコメントは、Databricks-to-Databricks 共有を使用して共有される共有に含まれます。

追加要件​

  • モデル共有は、Databricks-to-Databricks 共有でのみサポートされています。
  • モデルを共有に追加するときは、バージョン 2023.50 以降の SQLウェアハウス、または Databricks Runtime 14.0 以降のコンピュートリソースを使用する必要があります。

受信者とモデルを共有します​

このセクションでは、カタログ エクスプローラー、Databricks CLI、または Databricks ノートブックまたは SQL クエリ エディターの SQL コマンドを使用して、共有にモデルを追加する方法について説明します。 Unity Catalog REST APIを使用したい場合は、REST APIリファレンスのPATCH /api/2.1/unity-catalog/shares/ を参照してください。

共有にモデルを追加するには:

  1. Databricks ワークスペースで、データアイコン。 カタログ をクリックします。

  2. カタログ ウィンドウの上部にある歯車アイコン。歯車アイコンをクリックし、 OpenSharing を選択します。

    または、右上隅の Share > OpenSharing をクリックします。

  3. 自分が共有 タブで、モデルを追加する共有を見つけて、その名前をクリックします。

  4. **アセットの管理 > アセットの編集**をクリックします。

  5. [アセットの編集] ページで、共有したいモデルを検索または参照して選択します。

    または、モデルを含むスキーマ全体を選択できます。「共有にスキーマを追加する」を参照してください。

  6. (オプション)吹き出しプラスアイコン。 エイリアス 列の下のをクリックして、代替のモデル名(**エイリアス**)を指定し、モデル名をより読みやすくします。

    エイリアスは、スキーマ全体を選択した場合は使用できません。

    エイリアスは、受信者が確認する名前であり、クエリで使用する必要があります。エイリアスが指定されている場合、受信者は実際のモデル名を使用できません。

  7. 保存 をクリックします。

共有からモデルを削除する方法については、共有の更新を参照してください。

ノートブック ファイルを共有に追加します​

ノートブック ファイルを共有に追加する前に、要件を満たしていることを確認してください。

カタログエクスプローラ を使用して、ノートブック ファイルを共有に追加します。

  1. Databricks ワークスペースで、データアイコン。 カタログ をクリックします。

  2. 「OpenSharing >」ボタンをクリックしてください。

  3. **自分が共有**タブで、ノートブックを追加したい共有を見つけて、その名前をクリックします。

  4. 「アセットの管理」をクリックし、「ノートブックファイルを追加」を選択します。

  5. ノートブックファイルを追加 ページで、ファイルアイコンをクリックして、共有するノートブックを参照します。

    • 共有するファイルをクリックし、 選択 をクリックします。
    • (オプション) **Share as** フィールドで、ファイルにユーザーフレンドリーなエイリアスを指定します。これは受信者に表示される識別子です。
    • **[ストレージの場所]** の下の、ノートブックを格納するクラウドストレージの外部ロケーション を入力します。定義済みの外部ロケーションの下にサブパスを指定できます。外部ロケーションを指定しない場合、ノートブックはメタストアレベルのストレージロケーション(または「メタストアのルートロケーション」)に保存されます。メタストアにルートロケーションが定義されていない場合は、ここに外部ロケーションを入力する必要があります。「既存のメタストアにマネージドストレージを追加する」を参照してください。
  6. 保存 をクリックします。

共有ノートブックファイルが、「 ノートブックファイル 」リストの「 アセット 」タブに表示されます。

共有からノートブックファイルを削除​

共有からノートブックファイルを削除するには:

  1. Databricks ワークスペースで、データアイコン。 カタログ をクリックします。

  2. カタログ ウィンドウの上部にある歯車アイコン。歯車アイコンをクリックし、 OpenSharing を選択します。

    または、右上隅の Share > OpenSharing をクリックします。

  3. **自分が共有**タブで、ノートブックを含む共有を見つけて、共有名をクリックします。

  4. [ アセット ] タブで、共有から削除したいノートブック ファイルを見つけます。

  5. 行の右側にあるケバブメニューアイコン。ケバブメニューをクリックし、 「ノートブック ファイルの削除」 を選択します。

  6. 確認ダイアログで、 [削除] をクリックします。

共有内のノートブック ファイルを更新する​

既に共有しているノートブックを更新するには、**共有名**フィールドに新しいエイリアスを指定して再度追加する必要があります。Databricksでは、ノートブックの改訂済みステータスを示す<old-name>-update-1のような名前を使用することをお勧めします。受信者に変更について通知する必要がある場合があります。受信者は、更新を活用するために新しいノートブックを選択してクローンを作成する必要があります。

外部 Iceberg クライアントへの共有を有効にする​

Apache Iceberg REST Catalog API を使用する外部の Iceberg クライアントと、Delta テーブル、マネージド Iceberg テーブル、フォーリン Iceberg テーブル、ビュー、マテリアライズドビュー、およびストリーミングテーブルを共有できます。

共有する前に、データアセットを共有に追加するために必要なOpenSharing要件を満たしていることを確認してください。

注記

この機能は、マネージド Iceberg テーブルの共有とは異なります。

追加の制限​

外部の Iceberg クライアントと共有​

外部のIcebergクライアントとデータ資産を共有するには:

  1. Deltaテーブルを共有する場合は、各DeltaテーブルにIcebergCompatV3を設定して、Iceberg互換テーブルとして公開します。これにより、標準のDelta操作と並行して、Icebergメタデータの非同期生成が可能になります。Iceberg v3の要件を満たしていること、および制限事項を遵守していることを確認してください。テーブルでIceberg v3を有効にする方法については、「Use Apache Iceberg v3 features」を参照してください。

    Snowflakeに共有する場合、ユニフォーム対応のテーブルのみが受信者に表示されます。他のテーブルはフィルタリングされています。

注記

「DESCRIBE HISTORY」を使用して、Iceberg クライアントからテーブルをクエリできるようになる前に Iceberg メタデータ生成が完了したことを確認します。

  1. データアセットを共有に追加します。詳細な手順については、以下を参照してください:

重要

プロバイダー側でのデータ具体化は、ビュー、マテリアライズドビュー、またはストリーミングテーブルを共有する場合にトリガーされ、コンピュートコストの蓄積につながる可能性があります。詳細については、「オープン共有費用を発生させ、確認する方法」を参照してください。

  1. オープン共有の受信者と共有してください。受信者を作成し、共有へのアクセスを付与する方法については、ベアラー トークンを使用して非Databricksユーザーの受信者オブジェクトを作成する (Databricks-to-Open 共有)またはOpenSharing 受信者向けに Open ID Connect (OIDC) フェデレーションを有効にするを参照してください。

その他のリソース​

このページの見出し