Delta Sharing の共有を作成して管理する
このページでは、Delta Sharing の共有を作成および管理する方法について説明します。
共有は、Unity Catalog のセキュリティ保護可能なオブジェクトであり、次のデータ資産を 1 人以上の受信者と共有するために使用できます。
- テーブルとテーブルパーティション
- ストリーミングテーブル
- ビュー (行レベルと列レベルでアクセスを制限する動的ビューを含む)
- マテリアライズドビュー
- ボリューム
- ノートブック
- AIモデル
スキーマ (データベース) 全体を共有する場合、受信者は、スキーマを共有した時点でスキーマ内のすべてのテーブル、ストリーミングテーブル、ビュー、マテリアライズドビュー、モデル、ボリュームにアクセスできるほか、将来スキーマに追加されるデータや AI アセットにもアクセスできます。
共有には、1 つの Unity Catalog メタストアからのデータと AI アセットのみを含めることができます。 データ資産と AI 資産は、いつでも共有に追加したり、共有から削除したりできます。
詳細については、共有、プロバイダー、および受信者を参照してください。
必要条件
共有を作成するには、次のことを行う必要があります。
- メタストア管理者であるか、共有するデータが登録されている Unity Catalog メタストアの
CREATE SHARE
特権を持っている。 - その Unity Catalog メタストアがアタッチされている Databricks ワークスペースを使用して共有を作成します。
テーブル、ストリーミングテーブル、ビュー、またはマテリアライズドビューを共有に追加するには、次の操作を行う必要があります。
- 共有の所有者になります。
- テーブル、ストリーミングテーブル、ビュー、またはマテリアライズドビューを含むカタログとスキーマに対する
USE CATALOG
権限とUSE SCHEMA
権限、またはカタログまたはスキーマの所有権を持っている。 - テーブル、ストリーミングテーブル、ビュー、またはマテリアライズドビューに対する
SELECT
権限を持っている。 アセットを引き続き共有するには、その権限を保持する必要があります。あなたがそれを失った場合、受取人は共有を通じて資産にアクセスできなくなります。そのため、Databricks では、共有所有者としてグループを使用することをお勧めします。
共有にボリュームを追加するには、次の操作を行う必要があります。
- 共有の所有者になります。
- カタログまたはスキーマのボリュームまたは所有権を含むカタログおよびスキーマに対する
USE CATALOG
権限とUSE SCHEMA
権限を持っている。 - ボリュームの
READ VOLUME
権限を持っています。 ボリュームを引き続き共有するには、その権限を維持する必要があります。 紛失した場合、受信者は共有からボリュームにアクセスできなくなります。 そのため、Databricks では、共有所有者としてグループを使用することをお勧めします。
共有にモデルを追加するには、次の操作を行う必要があります。
- 共有の所有者になります。
- モデルを含むカタログとスキーマに対する
USE CATALOG
権限とUSE SCHEMA
権限を持っているか、カタログまたはスキーマの所有権を持っている。 - モデルの
EXECUTE
権限を持っています。 モデルを引き続き共有するには、その権限を保持する必要があります。 紛失した場合、受信者は共有を介してモデルにアクセスできなくなります。 そのため、Databricks では、共有所有者としてグループを使用することをお勧めします。
スキーマ全体を共有するには、次の操作を行う必要があります。
- 共有とスキーマの所有者であるか、右の権限を持っている
USE SCHEMA.
- テーブルを共有するスキーマに対する
SELECT
権限がある。 - ボリュームを共有するスキーマに対する
READ VOLUME
権限がある。
ノートブック ファイルを共有に追加するには、次の条件を満たしている必要があります。
- 共有の所有者であり、ノートブックに対する CAN READ アクセス許可を持っている。
受信者に共有へのアクセス権を付与するには、次のいずれかである必要があります。
- メタストア管理者。
- 共有オブジェクトと受信者オブジェクト (
USE SHARE
+SET SHARE PERMISSION
) または共有の所有者) および (USE RECIPIENT
または受信者の所有者) の両方に対する委任されたアクセス許可または所有権を持つユーザー。
共有を表示するには、次のいずれかである必要があります。
- メタストアの管理者(すべてを表示できる)
USE SHARE
権限を持つユーザー (すべて閲覧可能)- シェアオブジェクトの所有者
コンピュートの要件:
- Databricks ノートブックを使用して共有を作成する場合、コンピュート リソースは Databricks Runtime 11.3 LTS 以上を使用し、標準または専用アクセス モード (以前の共有およびシングル ユーザー) を持っている必要があります。
- SQLステートメントを使用して共有にスキーマを追加する場合 (またはスキーマを更新または削除する場合)、 Databricks Runtime 13.3 LTS以上を実行している SQL ウェアハウスまたはコンピュートを使用する必要があります。 Catalog Explorer を使用して同じことを実行する場合、コンピュートの要件はありません。
共有オブジェクトを作成してください
共有を作成するには、Catalog Explorer、Databricks Unity Catalog CLI、または Databricks ノートブックまたは Databricks SQL クエリエディターの CREATE SHARE
SQL コマンドを使用できます。
必要な権限 :メタストアの管理者またはメタストアの CREATE SHARE
権限を持つユーザー。
- Catalog Explorer
- SQL
- CLI
-
Databricks ワークスペースで、[
カタログ] をクリックします。
-
[カタログ ] ウィンドウの上部にある [
] 歯車アイコンをクリックし、[ Delta Sharing ] を選択します。
または、[ クイック アクセス ] ページで [Delta Sharing > ] ボタンをクリックします。
-
自分が共有 タブで、 データの共有 ボタンをクリックします。
-
共有の作成 ページで、共有の 名前 とオプションのコメントを入力します。
-
保存して続行 をクリックします。
データ資産を引き続き追加することも、停止して後で戻ることもできます。
-
データ資産の追加 タブで、共有するテーブル、ストリーミングテーブル、ボリューム、ビュー、マテリアライズドビュー、およびモデルを選択します。
詳細な手順については、以下を参照してください。
-
保存して続行 をクリックします。
-
[ ノートブックの追加 ] タブで、共有するノートブックを選択します。
詳細な手順については、「 共有にノートブック ファイルを追加する」を参照してください。
-
保存して続行 をクリックします。
-
[ 受信者の追加 ] タブで、共有する受信者を選択します。
詳細な手順については、Delta Sharing データ共有へのアクセスを管理する (プロバイダー向け)を参照してください。
-
「 データの共有 」をクリックして、受信者とデータを共有します。
ノートブックまたは Databricks SQL クエリ エディターで次のコマンドを実行します。
CREATE SHARE [IF NOT EXISTS] <share-name>
[COMMENT "<comment>"];
これで、テーブル、ストリーミングテーブル、ボリューム、ビュー、マテリアライズドビュー、およびモデルを共有に追加できます。
詳細な手順については、以下を参照してください。
Databricks CLI を使用して次のコマンドを実行します。
databricks shares create <share-name>
--comment
を使用してコメントを追加したり、--json
を使用してアセットを共有に追加したりできます。詳細については、以下のセクションを参照してください。
これで、テーブル、ストリーミングテーブル、ボリューム、ビュー、マテリアライズドビュー、およびモデルを共有に追加できます。
詳細な手順については、以下を参照してください。
共有にテーブルを追加する
共有にテーブルを追加するには、Catalog Explorer、Databricks Unity Catalog CLI、または Databricks ノートブックまたは Databricks SQL クエリエディターの SQL コマンドを使用できます。
テーブルコメント、列コメント、 および主キー制約 は、2024 年 7 月 25 日以降に Databricks-to-Databricks 共有を使用して受信者と共有される共有に含まれます。 リリース日より前に受信者と共有された共有を通じてコメントと制約の共有を開始する場合は、コメントと制約の共有をトリガーするために、受信者のアクセス権を取り消して再付与する必要があります。
必要な権限 : 共有オブジェクトの所有者、テーブルを含むカタログとスキーマの USE CATALOG
と USE SCHEMA
、およびテーブルに対する SELECT
権限。 テーブルを共有する限り、 SELECT
権限を維持する必要があります。 詳細については、要件を参照してください。
ワークスペース管理者であり、テーブルを含むスキーマとカタログに対する USE SCHEMA
および USE CATALOG
のアクセス許可をワークスペース管理者グループから継承した場合、テーブルを共有に追加することはできません。 まず、スキーマとカタログに対する USE SCHEMA
権限と USE CATALOG
権限を自分自身に付与する必要があります。
- Catalog Explorer
- SQL
- CLI
-
Databricks ワークスペースで、[
カタログ] をクリックします。
-
[カタログ ] ウィンドウの上部にある [
] 歯車アイコンをクリックし、[ Delta Sharing ] を選択します。
または、[ クイック アクセス ] ページで [Delta Sharing > ] ボタンをクリックします。
-
自分が共有 タブで、テーブルを追加する共有を見つけて、その名前をクリックします。
-
アセットの管理 > データ アセットの追加 をクリックします。
-
[ テーブルの追加 ] ページで、スキーマ全体 (データベース) または個々のテーブルを選択します。
-
テーブルまたはビューを選択するには、まずカタログを選択し、次にテーブルを含むスキーマを選択し、次にテーブルまたはビュー自体を選択します。
ワークスペース検索を使用して、名前、列名、またはコメントでテーブルを検索できます。ワークスペースオブジェクトの検索を参照してください。
-
スキーマを選択するには、まずカタログを選択し、次にスキーマを選択します。
共有スキーマの詳細については、「 共有にスキーマを追加する」を参照してください。
-
-
履歴 : テーブル履歴を共有して、受信者がタイムトラベルクエリを実行したり、 Spark 構造化ストリーミングを使用してテーブルを読み取ったりできるようにします。 Databricks-to-Databricks共有の場合、パフォーマンスを向上させるために、テーブルのDeltaログも共有されます。履歴共有によるテーブル読み取りパフォーマンスの向上を参照してください。履歴共有には、Databricks Runtime 12.2 LTS 以降が必要です。
また、顧客が table_changes() 関数を使用してテーブルのチェンジデータフィード (CDF) をクエリできるようにする場合は、 テーブルで CDF を有効にして から、 WITH HISTORY
で共有する必要があります。
-
(オプション) エイリアス 列または パーティション 列の下の
をクリックして、エイリアスまたはパーティションを追加します。エイリアスとパーティションは、スキーマ全体を選択した場合は使用できません。スキーマ全体を選択した場合、テーブル履歴はデフォルトで含まれます。
- エイリアス : テーブル名を読みやすくするための代替テーブル名。エイリアスは、受信者に表示され、クエリで使用する必要があるテーブル名です。エイリアスが指定されている場合、受信者は実際のテーブル名を使用できません。
- パーティション : テーブルの一部のみを共有します。たとえば、
(column = 'value')
.共有するテーブルパーティションの指定および受信者のプロパティを使用してパーティションのフィルタリングを行うを参照してください。
-
[ 保存 ]をクリックします。
ノートブックまたは Databricks SQL クエリ エディターで次のコマンドを実行して、テーブルを追加します。
ALTER SHARE <share-name> ADD TABLE <catalog-name>.<schema-name>.<table-name> [COMMENT "<comment>"]
[PARTITION(<clause>)] [AS <alias>]
[WITH HISTORY | WITHOUT HISTORY];
次を実行して、スキーマ全体を追加します。ADD SCHEMA
SQLDatabricks Runtimeコマンドを使用するには、13.3LTS 以降 ウェアハウスまたはコンピュートが必要です。共有スキーマの詳細については、「 共有にスキーマを追加する」を参照してください。
ALTER SHARE <share-name> ADD SCHEMA <catalog-name>.<schema-name>
[COMMENT "<comment>"];
次のオプションがあります。PARTITION
と AS <alias>
は、スキーマ全体を選択した場合は使用できません。
-
PARTITION(<clause>)
: テーブルの一部のみを共有する場合は、パーティションを指定できます。たとえば、(column = 'value')
のように指定します。共有するテーブル パーティションの指定および受信者のプロパティを使用してパーティションのフィルター処理を行うをご覧ください。 -
AS <alias>
: 代替テーブル名、またはテーブル名を読みやすくするための エイリアス 。エイリアスは、受信者に表示され、クエリで使用する必要があるテーブル名です。エイリアスが指定されている場合、受信者は実際のテーブル名を使用できません。<schema-name>.<table-name>
の形式を使用します。 -
WITH HISTORY
またはWITHOUT HISTORY
:WITH HISTORY
が指定されている場合、テーブルを完全な履歴と共有し、受信者がタイムトラベルクエリとストリーミング読み取りを実行できるようにします。Databricks-to-Databricks共有の場合、履歴共有はテーブルのDeltaログも共有して、パフォーマンスを向上させます。テーブル共有のデフォルト動作は、コンピュートが 16.2 以降で実行されている場合はWITH HISTORY
、それより前の Databricks Runtime バージョンではWITHOUT HISTORY
Databricks Runtime。スキーマ共有の場合、デフォルトはDatabricks Runtimeバージョンに関係なくWITH HISTORY
されます。WITH HISTORY
とWITHOUT HISTORY
には、Databricks Runtime 12.2 LTS 以降が必要です。履歴共有によるテーブル読み取りパフォーマンスの向上も参照してください。
タイムトラベルクエリとストリーミング読み取りに加えて、 顧客が table_changes() 関数を使用してテーブルのチェンジデータフィード (CDF) をクエリできるようにする場合は、 テーブルで CDF を有効にして から WITH HISTORY
で共有する必要があります。
ALTER SHARE
オプションの詳細については、「ALTER SHARE」を参照してください。
テーブルを追加するには、 Databricks CLI を使用して次のコマンドを実行します。
databricks shares update <share-name> \
--json '{
"updates": [
{
"action": "ADD",
"data_object": {
"name": "<table-full-name>",
"data_object_type": "TABLE",
"shared_as": "<table-alias>"
}
}
]
}'
スキーマを追加するには、次の Databricks CLI コマンドを実行します。
databricks shares update <share-name> \
--json '{
"updates": [
{
"action": "ADD",
"data_object": {
"name": "<schema-full-name>",
"data_object_type": "SCHEMA"
}
}
]
}'
テーブルの場合、およびテーブルのみの場合は、 "data_object_type"
.
この例にリストされているオプションの詳細については、[SQL] タブの説明を参照してください。
追加のパラメーターについては、 databricks shares update --help
を実行するか、REST API リファレンスの PATCH /api/2.1/unity-catalog/shares/ を参照してください。
共有からテーブルを削除する方法については、共有の更新を参照してください。
共有するテーブルパーティションの指定
テーブルを共有に追加するときにテーブルの一部のみを共有するには、パーティション仕様を指定できます。 パーティションは、共有にテーブルを追加するとき、または共有を更新するときに、Catalog Explorer、Databricks Unity Catalog CLI 、またはSQL Databricksノートブックの コマンド、またはDatabricks SQL クエリ エディターを使用して指定できます。共有にテーブルを追加するおよび共有を更新するを参照してください。
基本的な例
次の SQL の例では、 inventory
テーブルのデータの一部を共有し、 year
、 month
、 date
の各カラムでパーティション化されています。
- 2021年のデータ。
- 2020年12月のデータ。
- 2019年12月25日のデータ。
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 で定義されたテーブルパーティションを持つ 1 つの共有を作成できます。 共有すると、Delta Sharing は、各受信者に Databricks アカウントに関連付けられているデータのみを動的に配信します。
プロパティごとに動的にパーティション分割する機能がなければ、受信者ごとに個別の共有を作成する必要があります。
共有を作成または更新するときに受信者のプロパティでフィルター処理するパーティションを指定するには、カタログ エクスプローラーを使用するか、Databricks ノートブックまたは Databricks SQL クエリ エディターの CURRENT_RECIPIENT
SQL 関数を使用できます。
受信者のプロパティは、Databricks Runtime 12.2 以降で使用できます。
- Catalog Explorer
- SQL
-
Databricks ワークスペースで、[
カタログ] をクリックします。
-
[カタログ ] ウィンドウの上部にある [
] 歯車アイコンをクリックし、[ Delta Sharing ] を選択します。
または、[ クイック アクセス ] ページで [Delta Sharing > ] ボタンをクリックします。
-
自分が共有 タブで、更新する共有を見つけて、その名前をクリックします。
-
アセットの管理 > データ アセットの追加 をクリックします。
-
[ テーブルの追加 ] ページで、テーブルを含むカタログとデータベースを選択し、テーブルを選択します。
テーブルが含まれているカタログとデータベースがわからない場合は、ワークスペース検索を使用して、名前、列名、またはコメントでテーブルを検索できます。ワークスペースオブジェクトの検索を参照してください。
-
(オプション) パーティション 列の下の
をクリックして、パーティションを追加します。
パーティションをテーブルに追加 ダイアログで、次の構文を使用してプロパティ・ベースのパーティション仕様を追加します。
(<column-name> = CURRENT_RECIPIENT().<property-key>)
例えば
(country = CURRENT_RECIPIENT().'country')
-
[ 保存 ]をクリックします。
ノートブックまたは Databricks SQL クエリ エディターで次のコマンドを実行します。
ALTER SHARE <share-name> ADD TABLE <catalog-name>.<schema-name>.<table-name>
PARTITION (<column-name> = CURRENT_RECIPIENT().<property-key>);
例えば
ALTER SHARE acme ADD TABLE acme.default.some_table
PARTITION (country = CURRENT_RECIPIENT().'country');
削除ベクトルまたは列マッピングを含むテーブルを共有に追加する
プレビュー
この機能は パブリック プレビュー段階です。
削除ベクトルは、Delta テーブルで有効にできるストレージ最適化機能です。 削除ベクトルとはを参照してください。
Databricks では、Delta テーブルの列マッピングもサポートされています。 Delta Lake 列マッピングを使用した列の名前変更と削除を参照してください。
削除ベクトルまたは列マッピングを使用してテーブルを共有するには、履歴と共有する必要があります。 共有にテーブルを追加するを参照してください。
削除ベクトルまたは列マッピングを使用してテーブルを共有すると、受信者は SQLウェアハウス、 Databricks Runtime 14.1 以降を実行しているコンピュート、またはオープンソース delta-sharing-spark
3.1 以上を実行しているコンピュートを使用してテーブルをクエリできます。 削除ベクトルまたは列マッピングが有効になっているテーブルの読み取りおよび削除ベクトルまたは列マッピングが有効になっているテーブルの読み取りを参照してください。
ストリーミングテーブルを共有に追加する
プレビュー
この機能は パブリック プレビュー段階です。
ストリーミングテーブルは、ストリーミングまたは増分データ処理の追加サポートを備えた通常の Delta テーブルです。 追加専用のデータソース用に設計されたストリーミングテーブルと、入力を一度だけ処理します。「Databricks SQLでストリーミングテーブルを使用する」を参照してください。
必要な権限 : 共有オブジェクトの所有者、ストリーミングテーブルを含むカタログとスキーマの USE CATALOG
と USE SCHEMA
、ストリーミングテーブルの SELECT
。 ストリーミングテーブルを共有する限り、 SELECT
権限を維持する必要があります。詳細については、「 要件」を参照してください。
追加要件:
- サーバレス コンピュートは、ワークフロー、ノートブック、およびstremaingDLT テーブル共有が設定されているアカウントの で有効にする必要があります。サーバレス コンピュートの有効化を参照してください。
- ワークスペースでワークスペースとカタログのバインディングが有効になっている場合は、ワークスペースにストリーミングテーブルが存在するカタログへの読み取りおよび書き込みアクセス権があることを確認します。 詳細については、「 カタログへのアクセスを特定のワークスペースに制限する」を参照してください。
- 共有可能なストリーミングテーブルは、 Delta テーブルまたはその他の共有可能なストリーミングテーブルまたはビューで定義する必要があります。
- ストリーミングテーブルを共有に追加するときは、Databricks Runtime LTS 13.3 以上のコンピュートあるいはSQLウェアハウスを使用する必要があります。
制限:
- ストリーミングテーブルには、行フィルターと列マスクを含めることはできません。
- ストリーミングテーブルのベーステーブルには、行フィルターと列マスクを含めることができます。
ストリーミングテーブルを共有に追加するには:
- Catalog Explorer
- SQL
- CLI
-
Databricks ワークスペースで、[
カタログ] をクリックします。
-
[カタログ ] ウィンドウの上部にある [
] 歯車アイコンをクリックし、[ Delta Sharing ] を選択します。
または、[ クイック アクセス ] ページで [Delta Sharing > ] ボタンをクリックします。
-
[ Shared by me ] タブで、ストリーミングテーブルを追加する共有を見つけて、その名前をクリックします。
-
「 アセットの管理」>「アセットの編集 」をクリックします。
-
[ アセットの編集 ] ページで、共有するストリーミングテーブルを検索または参照して選択します。
-
(オプション) [エイリアス ] 列で [
] をクリックしてエイリアスまたは代替ストリーミングテーブル名を指定し、ストリーミングテーブル名を読みやすくします。エイリアスは、受信者に表示され、クエリで使用する必要がある名前です。エイリアスが指定されている場合、受信者は実際のストリーミングテーブル名を使用できません。
-
[ 保存 ]をクリックします。
ノートブックまたはDatabricks SQLクエリーエディタで次のコマンドを実行します。
ALTER SHARE <share_name> ADD TABLE <st_name> [COMMENT <comment>] [AS <shared_st_name>];
次の Databricks CLI コマンドを実行します。
databricks shares update <share-name> \
--json '{
“updates”: [
{
“action”: “ADD”,
“data_object”: {
“name”: “<st-full-name>",
“data_object_type”: “TABLE”,
“comment”: “<comment>”
}
}
]
}'
共有からストリーミングテーブルを削除する方法については、「 共有の更新」を参照してください。
共有にビューを追加する
プレビュー
この機能は パブリック プレビュー段階です。
ビューは、1 つ以上のテーブルまたは他のビューから作成される読み取り専用オブジェクトです。 ビューは、Unity Catalog メタストア内の複数のスキーマとカタログに含まれるテーブルやその他のビューから作成できます。 ビューの作成と管理を参照してください。
このセクションでは、カタログ エクスプローラー、Databricks CLI、または Databricks ノートブックまたは Databricks SQL クエリ エディターの SQL コマンドを使用して、共有にビューを追加する方法について説明します。 Unity Catalog REST API を使用する場合は、REST API リファレンスの PATCH /api/2.1/unity-catalog/shares/ を参照してください。
必要な権限 :共有オブジェクトの所有者、ビューを含むカタログとスキーマの USE CATALOG
と USE SCHEMA
、ビューの SELECT
。 意見を共有したい限り SELECT
権限を維持する必要があります。 詳細については、「 要件」を参照してください。
追加要件 :
- ワークフロー、ノートブック、DLTのサーバレス コンピュート は、ビュー共有を設定しているアカウントで有効にする必要があります。サーバレス コンピュートの有効化を参照してください。
- 共有可能なビューは、Delta テーブルまたはその他の共有可能なビューで定義する必要があります。
- 共有テーブルまたは共有ビューを参照するビューは共有できません。
- SQL共有にビューを追加するときは、Databricks Runtime 13.3LTS 以上で ウェアハウスまたはコンピュートを使用する必要があります。
- ワークスペースでワークスペースとカタログのバインドが有効になっている場合は、ワークスペースにカタログへの読み取りおよび書き込みアクセス権があることを確認してください。詳細については、「 カタログへのアクセスを特定のワークスペースに制限する」を参照してください。
- 受信者がビューを使用する際の要件と制限については、「共有ビューを読み込む」を参照してください。
共有にビューを追加するには:
- Catalog Explorer
- SQL
- CLI
-
Databricks ワークスペースで、[
カタログ] をクリックします。
-
[カタログ ] ウィンドウの上部にある [
] 歯車アイコンをクリックし、[ Delta Sharing ] を選択します。
または、[ クイック アクセス ] ページで [Delta Sharing > ] ボタンをクリックします。
-
[ 自分が共有] タブで、ビューを追加する共有を見つけて、その名前をクリックします。
-
アセットの管理 > データ アセットの追加 をクリックします。
-
[ テーブルの追加 ] ページで、共有するビューを検索または参照し、それを選択します。
-
(オプション)
「エイリアス 」列の下の「 」をクリックして別のビュー名を指定するか、「 エイリアス 」をクリックしてビュー名を読みやすくします。エイリアスは、受信者に表示され、クエリで使用する必要がある名前です。受信者は、エイリアスが指定されている場合、実際のビュー名を使用できません。
-
[ 保存 ]をクリックします。
ノートブックまたは Databricks SQL クエリ エディターで次のコマンドを実行します。
ALTER SHARE <share-name> ADD VIEW <catalog-name>.<schema-name>.<view-name>
[COMMENT "<comment>"]
[AS <alias>];
オプションは次のとおりです。
AS <alias>
: ビュー名を読みやすくするための代替ビュー名またはエイリアス。エイリアスは、受信者に表示され、クエリで使用する必要があるビュー名です。受信者は、エイリアスが指定されている場合、実際のビュー名を使用できません。<schema-name>.<view-name>
の形式を使用します。COMMENT "<comment>"
: コメントは、カタログエクスプローラ UI に表示され、SQL 文を使用してビューの詳細をリストおよび表示するときに表示されます。
ALTER SHARE
オプションの詳細については、「ALTER SHARE」を参照してください。
次の Databricks CLI コマンドを実行します。
databricks shares update <share-name> \
--json '{
"updates": [
{
"action": "ADD",
"data_object": {
"name": "<view-full-name>",
"data_object_type": "VIEW",
"shared_as": "<view-alias>"
}
}
]
}'
"shared_as": "<view-alias>"
はオプションであり、ビュー名を読みやすくするための代替ビュー名またはエイリアスを提供します。エイリアスは、受信者に表示され、クエリで使用する必要があるビュー名です。受信者は、エイリアスが指定されている場合、実際のビュー名を使用できません。<schema-name>.<view-name>
の形式を使用します。
追加のパラメーターについては、 databricks shares update --help
を実行するか、REST API リファレンスの PATCH /api/2.1/unity-catalog/shares/ を参照してください。
共有からビューを削除する方法については、共有の更新を参照してください。
動的ビューを共有に追加して行と列をフィルター処理する
プレビュー
この機能は パブリック プレビュー段階です。
ダイナミックビューを使用して、次のようなテーブルデータへのきめ細かなアクセス制御を設定できます。
- 列または行のレベルでのセキュリティ。
- データマスキング。
CURRENT_RECIPIENT() 関数を使用する動的ビューを作成する場合は、受信者定義で指定したプロパティに従って受信者のアクセスを制限できます。
このセクションでは、動的ビューを使用して、行レベルと列レベルの両方でテーブルデータへの受信者のアクセスを制限する例を示します。
必要条件
-
Databricks Runtime バージョン :
CURRENT_RECIPIENT
関数は、Databricks Runtime 14.2 以降でサポートされています。 -
権限 :
- ビューを作成するには、共有オブジェクトの所有者であること、ビューを含むカタログとスキーマに
USE CATALOG
とUSE SCHEMA
があり、ビューにSELECT
が必要です。 意見を共有したい限りSELECT
権限を維持する必要があります。 - 受信者のプロパティを設定するには、受信者オブジェクトの所有者である必要があります。
- ビューを作成するには、共有オブジェクトの所有者であること、ビューを含むカタログとスキーマに
-
制限事項 : ビュー共有に関するすべての制限事項 ( Databricks-to-Databricks 共有の制限を含む) に加えて、次の制限があります。
- プロバイダーが
CURRENT_RECIPIENT
関数を使用するビューを共有する場合、プロバイダーは共有コンテキストのためにビューに対して直接クエリを実行できません。 このような動的ビューをテストするには、プロバイダーがビューを自分自身と共有し、受信者としてビューに対してクエリを実行する必要があります。 - プロバイダーは、動的ビューを参照するビューを作成できません。
- プロバイダーが
受信者のプロパティを設定する
これらの例では、共有するテーブルに country
という名前の列があり、一致する country
プロパティを持つ受信者のみが特定の行または列を表示できます。
受信者のプロパティは、カタログ エクスプローラーまたは Databricks ノートブックまたは SQL クエリ エディターの SQL コマンドを使用して設定できます。
- Catalog Explorer
- SQL
-
Databricks ワークスペースで、[
カタログ] をクリックします。
-
[カタログ ] ウィンドウの上部にある [
] 歯車アイコンをクリックし、[ Delta Sharing ] を選択します。
または、[ クイック アクセス ] ページで [Delta Sharing > ] ボタンをクリックします。
-
「受信者」 タブで、プロパティを追加する受信者を見つけて、その名前をクリックします。
-
[プロパティの編集 ] をクリックします。
-
「 受信者のプロパティを編集 」ダイアログで、キーとして列名(この場合は
country
)を入力し、値としてフィルタリングする値(CA
など)を入力します。 -
[ 保存 ]をクリックします。
受信者にプロパティを設定するには、 ALTER RECIPIENT
を使用します。この例では、 country
プロパティは CA
に設定されています。
ALTER RECIPIENT recipient1 SET PROPERTIES ('country' = 'CA');
受信者に行レベルの権限を持つダイナミックビューを作成してください
この例では、country
プロパティが一致する受信者のみが特定の行を表示できます。
CREATE VIEW my_catalog.default.view1 AS
SELECT * FROM my_catalog.default.my_table
WHERE country = CURRENT_RECIPIENT('country');
もう1つの選択肢は、データプロバイダーがファクトテーブルのフィールドを受信者のプロパティにマッピングする個別のマッピングテーブルを維持することです。これにより、受信者のプロパティとファクトテーブルのフィールドを分離して柔軟性を高めることができます。
受信者用に列レベルの権限を持つダイナミックビューを作成してください
この例では、country
プロパティに一致する受信者だけが特定の列を表示できます。 他のユーザーには、返されたデータが次のように表示されます REDACTED
。
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 プロシージャを使用します。 共有にビューを追加するを参照してください。
マテリアライズドビューを共有に追加する
プレビュー
この機能は パブリック プレビュー段階です。
ビューと同様に、マテリアライズドビューはクエリの結果であり、テーブルと同様にアクセスできます。通常のビューとは異なり、マテリアライズドビューの結果には、マテリアライズドビューが最後に更新されたときのデータの状態が反映されます。マテリアライズドビューの詳細については、Databricks SQLの「マテリアライズドビューを使用する」を参照してください。
このセクションでは、DatabricksCLI SQLDatabricksノートブックまたは クエリ エディタで Catalog Explorer、 、または コマンドを使用して、マテリアライズドビューを共有に追加する方法について説明します。Databricks SQLUnity Catalog REST API を使用する場合は、REST API リファレンスの PATCH /api/2.1/unity-catalog/shares/ を参照してください。
必要な権限 : 共有オブジェクトの所有者、マテリアライズドビューを含むカタログとスキーマの USE CATALOG
と USE SCHEMA
、マテリアライズドビューの SELECT
。マテリアライズドビューを共有する限り、 SELECT
権限を維持する必要があります。詳細については、「 要件」を参照してください。
追加要件 :
- マテリアライズドビュー 共有が設定されているアカウントの ワークフロー、ノートブック、およびDLTでサーバレス コンピュート を有効にする必要があります。Enable サーバレス コンピュートを参照してください。
- ワークスペースでワークスペースとカタログのバインドが有効になっている場合は、そのワークスペースに、マテリアライズドビューが存在するカタログへの読み取りおよび書き込みアクセス権があることを確認してください。詳細については、「 カタログへのアクセスを特定のワークスペースに制限する」を参照してください。
- Shareable マテリアライズドビューは、 Delta テーブルまたはその他の共有可能なストリーミングテーブル、ビュー、またはマテリアライズドビューで定義する必要があります。
- 共有にマテリアライズドビューを追加するときは 13.3 以上で SQLウェアハウスまたはコンピュートを使用する必要があります。Databricks RuntimeLTS
制限:
- マテリアライズドビューには、行フィルタと列マスクを含めることはできません。
- マテリアライズドのベース・テーブルには、ロー・フィルタとカラム・マスクを含めることができます。
- Catalog Explorer
- SQL
- CLI
-
Databricks ワークスペースで、[
カタログ] をクリックします。
-
[カタログ ] ウィンドウの上部にある [
] 歯車アイコンをクリックし、[ Delta Sharing ] を選択します。
または、[ クイック アクセス ] ページで [Delta Sharing > ] ボタンをクリックします。
-
[ 自分が共有] タブで、マテリアライズドビューを追加する共有を見つけて、その名前をクリックします。
-
「 アセットの管理」>「アセットの編集 」をクリックします。
-
[ アセットの編集 ] ページで、共有するマテリアライズドビューを検索または参照し、それを選択します。
-
(オプション) [エイリアス ] 列で [
] をクリックしてエイリアスまたは代替のマテリアライズドビュー名を指定し、マテリアライズドビューの名前を読みやすくします。エイリアスは、受信者に表示され、クエリで使用する必要がある名前です。受信者は、エイリアスが指定されている場合、実際のマテリアライズドビュー名を使用できません。
-
[ 保存 ]をクリックします。
ノートブックまたはDatabricks SQLクエリーエディタで次のコマンドを実行します。
ALTER SHARE <share_name> ADD MATERIALIZED VIEW <mv_name> [COMMENT <comment>] [AS <shared_mv_name>];
databricks shares update <share-name> \
--json '{
“updates”: [
{
“action”: “ADD”,
“data_object”: {
“name”: “<mat-view-full-name>”,
“data_object_type”: “MATERIALIZED_VIEW”,
“comment”: “<comment>”
}
}
]
}'
共有からマテリアライズドビューを削除する方法については、「 共有の更新」を参照してください。
共有にボリュームを追加します
ボリュームは、クラウド オブジェクト ストレージの場所にあるストレージの論理ボリュームを表す Unity Catalog オブジェクトです。 これらは主に、表形式以外のデータ資産に対するガバナンスを提供することを目的としています。 Unity Catalogボリュームとはを参照してください。
このセクションでは、Catalog Explorer、Databricks CLI、または Databricks ノートブックまたは SQL クエリ エディターの SQL コマンドを使用して、共有にボリュームを追加する方法について説明します。 Unity Catalog REST APIを使用したい場合は、REST APIリファレンスのPATCH /api/2.1/unity-catalog/shares/ を参照してください。
ボリュームコメントは、2024年7月25日以降に Databricks-to-Databricks 共有を使用して受信者と共有される共有に含まれます。 リリース日より前に受信者と共有された共有を通じてコメントの共有を開始する場合、コメント共有をトリガーするには、受信者のアクセス権を取り消して再付与する必要があります。
必要な権限 : 共有オブジェクトの所有者、ボリュームを含むカタログとスキーマの USE CATALOG
と USE SCHEMA
、ボリュームの READ VOLUME
。 ボリュームを共有する限り、 READ VOLUME
特権を維持する必要があります。 詳細については、「 要件」を参照してください。
追加要件 :
- ボリューム共有は、 Databricks-to-Databricks 共有でのみサポートされます。
- 共有にボリュームを追加するときは、バージョン 2023.50 以降の SQLウェアハウス、または Databricks Runtime 14.1 以降のコンピュート リソースを使用する必要があります。
- プロバイダー側のボリュームストレージにカスタムネットワーク構成(ファイアウォールやプライベートリンクなど)がある場合、プロバイダーは、ボリュームのストレージ場所に接続できるように、受信者のコントロールプレーンとデータプレーンのアドレスが適切にホワイトリストに登録されていることを確認する必要があります。
共有にボリュームを追加するには、次のようにします。
- Catalog Explorer
- SQL
- CLI
-
Databricks ワークスペースで、[
カタログ] をクリックします。
-
[カタログ ] ウィンドウの上部にある [
] 歯車アイコンをクリックし、[ Delta Sharing ] を選択します。
または、[ クイック アクセス ] ページで [Delta Sharing > ] ボタンをクリックします。
-
[ 自分が共有] タブで、ボリュームを追加する共有を見つけて、その名前をクリックします。
-
「 アセットの管理」>「アセットの編集 」をクリックします。
-
[ アセットの編集 ] ページで、共有するボリュームを検索または参照して選択します。
または、ボリュームを含むスキーマ全体を選択することもできます。「共有へのスキーマの追加」を参照してください。
-
(オプション)
「エイリアス 」列の下の「 」をクリックして代替ボリューム名を指定するか、「 エイリアス 」をクリックしてボリューム名を読みやすくします。
エイリアスは、スキーマ全体を選択した場合は使用できません。
エイリアスは、受信者に表示され、クエリで使用する必要がある名前です。受信者は、エイリアスが指定されている場合、実際のボリューム名を使用できません。
-
[ 保存 ]をクリックします。
ノートブックまたは Databricks SQL クエリ エディターで次のコマンドを実行します。
ALTER SHARE <share-name> ADD VOLUME <catalog-name>.<schema-name>.<volume-name>
[COMMENT "<comment>"]
[AS <alias>];
オプションは次のとおりです。
AS <alias>
: ボリューム名を読みやすくするための代替ボリューム名またはエイリアス。エイリアスは、受信者に表示され、クエリで使用する必要があるボリューム名です。受信者は、エイリアスが指定されている場合、実際のボリューム名を使用できません。<schema-name>.<volume-name>
の形式を使用します。COMMENT "<comment>"
: コメントは、カタログエクスプローラ UI に表示され、SQL ステートメントを使用してボリュームの詳細をリストおよび表示するときに表示されます。
ALTER SHARE
オプションの詳細については、「ALTER SHARE」を参照してください。
Databricks CLI 0.210 以降を使用して、次のコマンドを実行します。
databricks shares update <share-name> \
--json '{
"updates": [
{
"action": "ADD",
"data_object": {
"name": "<volume-full-name>",
"data_object_type": "VOLUME",
"string_shared_as": "<volume-alias>"
}
}
]
}'
"string_shared_as": "<volume-alias>"
はオプションであり、ボリューム名を読みやすくするための代替ボリューム名 (別名) を提供します。エイリアスは、受信者に表示され、クエリで使用する必要があるボリューム名です。受信者は、エイリアスが指定されている場合、実際のボリューム名を使用できません。<schema-name>.<volume-name>
の形式を使用します。
追加のパラメーターについては、 databricks shares update --help
を実行するか、REST API リファレンスの PATCH /api/2.1/unity-catalog/shares/ を参照してください。
共有からのボリュームの削除に関する情報については、共有の更新を参照してください。
共有にモデルを追加する
このセクションでは、カタログ エクスプローラー、Databricks CLI、または Databricks ノートブックまたは SQL クエリ エディターの SQL コマンドを使用して、共有にモデルを追加する方法について説明します。 Unity Catalog REST APIを使用したい場合は、REST APIリファレンスの PATCH /api/2.1/unity-catalog/shares/を参照してください。
モデル コメントとモデル バージョン コメントは、 Databricks-to-Databricks 共有を使用して共有される共有に含まれます。
必要な権限 : 共有オブジェクトの所有者、モデルを含むカタログとスキーマの USE CATALOG
と USE SCHEMA
、モデルの EXECUTE
。 モデルを共有する限り、 EXECUTE
権限を維持する必要があります。 詳細については、「 要件」を参照してください。
追加要件 :
- モデル共有は、 Databricks-to-Databricks 共有でのみサポートされます。
- 共有にモデルを追加するときは、バージョン 2023.50 以降の SQLウェアハウス、または Databricks Runtime 14.0 以降のコンピュート リソースを使用する必要があります。
共有にモデルを追加するには:
- Catalog Explorer
- SQL
- CLI
-
Databricks ワークスペースで、[
カタログ] をクリックします。
-
[カタログ ] ウィンドウの上部にある [
] 歯車アイコンをクリックし、[ Delta Sharing ] を選択します。
または、[ クイック アクセス ] ページで [Delta Sharing > ] ボタンをクリックします。
-
[ 自分が共有] タブで、モデルを追加する共有を見つけて、その名前をクリックします。
-
「 アセットの管理」>「アセットの編集 」をクリックします。
-
「 アセットの編集 」ページで、共有するモデルを検索または参照し、それを選択します。
または、モデルを含むスキーマ全体を選択することもできます。「共有へのスキーマの追加」を参照してください。
-
(オプション)[エイリアス]
列の下の [] をクリックして代替モデル名を指定するか、[ エイリアス] をクリックしてモデル名を読みやすくします。
エイリアスは、スキーマ全体を選択した場合は使用できません。
エイリアスは、受信者に表示され、クエリで使用する必要がある名前です。受信者は、エイリアスが指定されている場合、実際のモデル名を使用できません。
-
[ 保存 ]をクリックします。
ノートブックまたは Databricks SQL クエリ エディターで次のコマンドを実行します。
ALTER SHARE <share-name> ADD MODEL <catalog-name>.<schema-name>.<model-name>
[COMMENT "<comment>"]
[AS <alias>];
オプションは次のとおりです。
AS <alias>
: モデル名を読みやすくするための代替モデル名またはエイリアス。エイリアスは、受信者に表示され、クエリで使用する必要があるモデル名です。受信者は、エイリアスが指定されている場合、実際のモデル名を使用できません。<schema-name>.<model-name>
の形式を使用します。COMMENT "<comment>"
: コメントは、カタログエクスプローラーの UI と、SQL ステートメントを使用してモデルの詳細をリストおよび表示するときに表示されます。
ALTER SHARE
オプションの詳細については、「ALTER SHARE」を参照してください。
Databricks CLI 0.210 以降を使用して、次のコマンドを実行します。
databricks shares update <share-name> \
--json '{
"updates": [
{
"action": "ADD",
"data_object": {
"name": "<model-full-name>",
"data_object_type": "MODEL",
"string_shared_as": "<model-alias>"
}
}
]
}'
"string_shared_as": "<model-alias>"
はオプションであり、モデル名を読みやすくするための代替モデル名 (エイリアス) を提供します。エイリアスは、受信者に表示され、クエリで使用する必要があるモデル名です。受信者は、エイリアスが指定されている場合、実際のモデル名を使用できません。<schema-name>.<model-name>
の形式を使用します。
追加のパラメーターについては、 databricks shares update --help
を実行するか、REST API リファレンスの PATCH /api/2.1/unity-catalog/shares/ を参照してください。
共有からモデルを削除する方法については、共有の更新を参照してください。
共有にスキーマを追加する
スキーマ全体を共有に追加すると、受信者は、共有を作成した時点のスキーマ内のすべてのデータ資産だけでなく、時間の経過とともにスキーマに追加されるすべての資産にもアクセスできます。 これには、スキーマ内のすべてのテーブル、ビュー、およびボリュームが含まれます。 この方法で共有されたテーブルには、常に全履歴が含まれます。
SQLを使用してスキーマを追加、更新、または削除するには、 Databricks Runtime 13.3 LTS以上を実行している SQL ウェアハウスまたはクラスターが必要です。 Catalog Explorer を使用して同じことを実行する場合、コンピュートの要件はありません。
必要な権限 : 共有オブジェクトの所有者およびスキーマの所有者 (またはスキーマに対する USE SCHEMA
権限と SELECT
権限を持つユーザー)。
共有にスキーマを追加するには、「 共有にテーブルを追加する」の指示に従い、スキーマの追加方法を指定する内容に注意してください。
テーブル・エイリアス、パーティション、およびボリューム・エイリアスは、スキーマ全体を選択した場合は使用できません。 スキーマ内のアセットに対してエイリアスまたはパーティションを作成した場合、スキーマ全体を共有に追加すると、これらは削除されます。
スキーマ共有を使用して共有しているテーブルまたはボリュームの詳細オプションを指定する場合は、SQL を使用してテーブルまたはボリュームを共有し、テーブルまたはボリュームに別のスキーマ名のエイリアスを指定する必要があります。
ノートブック ファイルを共有に追加する
Catalog Explorer を使用して、ノートブック ファイルを共有に追加します。
必要なアクセス許可 : 共有オブジェクトの所有者と、共有するノートブックに対する CAN READ アクセス許可。
-
Databricks ワークスペースで、[
カタログ] をクリックします。
-
[クイック アクセス ] ページで、[ Delta Sharing] > ボタンをクリックします。
-
[ 自分が共有] タブで、ノートブックを追加する共有を見つけて、その名前をクリックします。
-
[ アセットの管理 ] をクリックし、[ ノートブック ファイルの追加 ] を選択します。
-
[ ノートブック ファイルの追加 ] ページで、ファイル アイコンをクリックして、共有するノートブックを参照します。
- 共有したいファイルをクリックして、「 選択 」をクリックします。
- (必要に応じて) [ 共有形式 ] フィールドにファイルのわかりやすいエイリアスを指定します。 これは、受信者に表示される識別子です。
- [ ストレージの場所 ] で、ノートブックを保存するクラウド ストレージの 外部ロケーション を入力します。 定義された外部ロケーションの下にサブパスを指定できます。 外部ロケーションを指定しない場合、ノートブックはメタストア レベルのストレージの場所 (または "メタストアのルートの場所") に格納されます。 メタストアのルートロケーションが定義されていない場合は、ここに外部ロケーションを入力する必要があります。 「 既存のメタストアに管理ストレージを追加する」を参照してください。
-
[ 保存 ]をクリックします。
共有ノートブックファイルが 「アセット 」タブの ノートブックファイル リストに表示されます。
共有からノートブック ファイルを削除する
共有からノートブック ファイルを削除するには:
-
Databricks ワークスペースで、[
カタログ] をクリックします。
-
[カタログ ] ウィンドウの上部にある [
] 歯車アイコンをクリックし、[ Delta Sharing ] を選択します。
または、[ クイック アクセス ] ページで [Delta Sharing > ] ボタンをクリックします。
-
[ 自分が共有] タブで、ノートブックを含む共有を見つけ、共有名をクリックします。
-
[アセット] タブで、共有から削除するノートブック ファイルを見つけます。
-
行の右側にある
ケバブメニューをクリックし、[ ノートブックファイルの削除 ]を選択します。
-
確認ダイアログで、[ 削除 ] をクリックします。
共有内のノートブック ファイルを更新する
既に共有しているノートブックを更新するには、再度追加して、[ 共有者 ] フィールドに新しいエイリアスを割り当てる必要があります。 Databricks では、ノートブックの改訂された状態を示す名前 ( <old-name>-update-1
など) を使用することをお勧めします。 変更の受取人への通知が必要な場合があります。 受信者は、更新を利用するために新しいノートブックを選択して複製する必要があります。
受信者に共有へのアクセス権を付与する
受信者に共有アクセス権を付与するには、Catalog Explorer、Databricks Unity Catalog CLI、または Databricks ノートブックまたは Databricks SQL クエリエディターの GRANT ON SHARE
SQL コマンドを使用できます。
必要な権限 : 次のいずれかです。
- メタストア管理者。
- 共有オブジェクトと受信者オブジェクト ((
USE SHARE
+SET SHARE PERMISSION
) または共有の所有者) および (USE RECIPIENT
または受信者の所有者) の両方に対する委任されたアクセス許可または所有権。
手順については、「 Delta Sharing データ共有へのアクセスを管理する (プロバイダー向け)」を参照してください。 この記事では、共有への受信者のアクセスを取り消す方法についても説明します。
株式と共有の詳細を表示する
共有の一覧または共有に関する詳細を表示するには、Catalog Explorer、Databricks Unity Catalog CLI、または Databricks ノートブックまたは Databricks SQL クエリエディターの SQL コマンドを使用できます。
必要な権限 : 返される共有のリストは、ロールと権限によって異なります。 メタストアの管理者と USE SHARE
権限を持つユーザーは、すべての共有を表示します。 それ以外の場合は、自分が共有オブジェクトの所有者である共有のみを表示できます。
詳細は次のとおりです。
- 共有の所有者、作成者、作成タイムスタンプ、アップデーター、更新されたタイムスタンプ、コメント。
- 共有内のデータ資産。
- 共有へのアクセス権を持つ受信者。
- Catalog Explorer
- SQL
- CLI
-
Databricks ワークスペースで、[
カタログ] をクリックします。
-
[カタログ ] ウィンドウの上部にある [
] 歯車アイコンをクリックし、[ Delta Sharing ] を選択します。
または、[ クイック アクセス ] ページで [Delta Sharing > ] ボタンをクリックします。
-
[共有 ] タブを開いて、共有の一覧を表示します。
-
[ 詳細 ] タブで共有の詳細を表示します。
共有の一覧を表示するには、ノートブックまたは Databricks SQL クエリ エディターで次のコマンドを実行します。必要に応じて、 <pattern>
を LIKE
述部に置き換えます。
SHOW SHARES [LIKE <pattern>];
特定の共有の詳細を表示するには、次のコマンドを実行します。
DESCRIBE SHARE <share-name>;
共有内のすべてのテーブル、ビュー、およびボリュームの詳細を表示するには、次のコマンドを実行します。
SHOW ALL IN SHARE <share-name>;
共有の一覧を表示するには、 Databricks CLI を使用して次のコマンドを実行します。
databricks shares list
特定の共有の詳細を表示するには、次のコマンドを実行します。
databricks shares get <share-name>
共有に対する権限を持っている受信者を表示します
受信者にアクセス権が付与されている共有の一覧を表示するには、カタログ エクスプローラー、Databricks Unity Catalog CLI、または Databricks ノートブックまたは Databricks SQL クエリー エディターの SHOW GRANTS TO RECIPIENT
SQL コマンドを使用できます。
必要なアクセス許可 : メタストア管理者、 USE SHARE
特権、または共有オブジェクトの所有者。
- Catalog Explorer
- SQL
- CLI
-
Databricks ワークスペースで、[
カタログ] をクリックします。
-
[カタログ ] ウィンドウの上部にある [
] 歯車アイコンをクリックし、[ Delta Sharing ] を選択します。
または、[ クイック アクセス ] ページで [Delta Sharing > ] ボタンをクリックします。
-
[ 自分が共有] タブで、受信者を見つけて選択します。
-
[ 受信者 ] タブに移動して、共有にアクセスできる受信者の一覧を表示します。
ノートブックまたはDatabricks SQLクエリーエディタで次のコマンドを実行します。
SHOW GRANTS ON SHARE <share-name>;
Databricks CLI を使用して次のコマンドを実行します。
databricks shares share-permissions <share-name>
共有を更新する
テーブル、ビュー 、 ボリューム、 ノートブック を共有 に追加する だけでなく、次の操作を行うことができます。
- 共有の名前を変更します。
- 共有からテーブル、ビュー、ボリューム、スキーマを削除します。
- 共有のコメントを追加または更新します。
- テーブルのエイリアス (受信者に表示されるテーブル名) の名前を変更します。
- テーブルの履歴データへのアクセスを有効または無効にして、受信者がテーブルのタイムトラベルクエリまたはストリーミング読み取りを実行できるようにします。
- パーティション定義を追加、更新、または削除します。
- 共有の所有者を変更します。
これらの共有の更新を行うには、Catalog Explorer、Databricks Unity Catalog CLI、または Databricks ノートブックまたは Databricks SQL クエリエディターの SQL コマンドを使用できます。 Catalog Explorer を使用して共有の名前を変更することはできません。
必要な権限 :共有所有者を更新するには、メタストア管理者、共有オブジェクトの所有者、または USE SHARE
と SET SHARE PERMISSION
の両方の権限を持つユーザーのいずれかである必要があります。 共有名を更新するには、メタストアの管理者(または CREATE_SHARE
権限を持つユーザー) であり 、共有所有者でなければなりません。 他の共有プロパティを更新するには、所有者である必要があります。
- Catalog Explorer
- SQL
- CLI
-
Databricks ワークスペースで、[
カタログ] をクリックします。
-
[カタログ ] ウィンドウの上部にある [
] 歯車アイコンをクリックし、[ Delta Sharing ] を選択します。
または、[ クイック アクセス ] ページで [Delta Sharing > ] ボタンをクリックします。
-
自分が共有 タブで、更新する共有を見つけて、その名前をクリックします。
共有の詳細ページで、次の操作を行います。
- [所有者] フィールドまたは [コメント] フィールドの横にある
編集アイコンをクリックして、これらの値を更新します。
- アセット行のケバブメニュー
ボタンをクリックして、アセットを削除します。
- 「 アセットの管理」>「アセットの編集 」をクリックして、他のすべてのプロパティを更新します。
- アセットを削除するには、アセットの横にあるチェックボックスをオフにします。
- パーティション定義を追加、更新、または削除するには、[ 詳細オプション ] をクリックします。
ノートブックまたは Databricks SQL エディターで次のコマンドを実行します。
共有の名前を変更します。
ALTER SHARE <share-name> RENAME TO <new-share-name>;
共有からテーブルを削除します。
ALTER SHARE share_name REMOVE TABLE <table-name>;
共有からボリュームを削除します。
ALTER SHARE share_name REMOVE VOLUME <volume-name>;
共有にコメントを追加または更新します。
COMMENT ON SHARE <share-name> IS '<comment>';
共有内のテーブルのパーティションを追加または変更します。
ALTER SHARE <share-name> ADD TABLE <table-name> PARTITION(<clause>);
共有所有者の変更:
ALTER SHARE <share-name> OWNER TO '<principal>'
-- Principal must be an account-level user email address or group name.
テーブル履歴の共有を有効にします。
ALTER SHARE <share-name> ADD TABLE <table-name> WITH HISTORY;
ALTER SHARE
パラメーターの詳細については、ALTER SHAREを参照してください。
Databricks CLI を使用して次のコマンドを実行します。
共有の名前を変更します。
databricks shares update <share-name> --name <new-share-name>
共有からテーブルを削除します。
databricks shares update <share-name> \
--json '{
"updates": [
{
"action": "REMOVE",
"data_object": {
"name": "<table-full-name>",
"data_object_type": "TABLE",
"shared_as": "<table-alias>"
}
}
]
}'
共有からボリュームを削除します (Databricks CLI 0.210 以降を使用)。
databricks shares update <share-name> \
--json '{
"updates": [
{
"action": "REMOVE",
"data_object": {
"name": "<volume-full-name>",
"data_object_type": "VOLUME",
"string_shared_as": "<volume-alias>"
}
}
]
}'
ボリュームにエイリアスがない場合は、 name
プロパティを使用します。エイリアスがある場合は、 string_shared_as
を使用します。
共有にコメントを追加または更新します。
databricks shares update <share-name> --comment '<comment>'
共有所有者の変更:
databricks shares update <share-name> --owner '<principal>'
プリンシパルは、アカウントレベルのユーザー、Eメールアドレス、またはグループ名である必要があります。
共有を削除する
共有を削除するには、Catalog Explorer、Databricks Unity Catalog CLI、または Databricks ノートブックまたは Databricks SQL クエリエディターの DELETE SHARE
SQL コマンドを使用できます。 共有の所有者である必要があります。
共有を削除すると、受信者は共有データにアクセスできなくなります。
必要な権限 : 共有オブジェクトの所有者。
- Catalog Explorer
- SQL
- CLI
-
Databricks ワークスペースで、[
カタログ] をクリックします。
-
[カタログ ] ウィンドウの上部にある [
] 歯車アイコンをクリックし、[ Delta Sharing ] を選択します。
または、[ クイック アクセス ] ページで [Delta Sharing > ] ボタンをクリックします。
-
[ 自分が共有したユーザー] タブで、削除する共有を見つけて、その名前をクリックします。
-
ケバブメニューをクリックし、[ 削除 ]を選択します。
-
確認ダイアログで、[ 削除 ] をクリックします。
ノートブックまたはDatabricks SQLクエリーエディタで次のコマンドを実行します。
DROP SHARE [IF EXISTS] <share-name>;
Databricks CLI を使用して次のコマンドを実行します。
databricks shares delete <share-name>