Delta Sharing
適用対象: Databricks SQL Databricks Runtime 10.4 LTS 以降 Unity Catalog のみ
Delta Sharing は、他の組織が使用しているコンピューティング プラットフォームに関係なく、安全にデータを共有するためのオープン プロトコルです。 Unity Catalog メタストア内のテーブルのコレクションをコピーせずにリアルタイムで共有できるため、データ受信者は最新バージョンの共有データの操作をすぐに開始できます。
Delta Sharing には、次の 3 つのコンポーネントがあります。
-
プロバイダーは、データを共有に利用できるようにしたエンティティです。
-
共有では、共有しようとするテーブルの論理グループを定義します。
-
受信者は、任意の数の共有を共有する組織を識別します。
Delta Sharing の使用方法の詳細なガイドについては、「Delta Sharing とは」を参照してください。
プロバイダー
適用対象: Databricks SQL Databricks Runtime 11.3 LTS 以上
データ プロバイダーは、データを共有する実際の組織を表すオブジェクトです。 プロバイダーには共有が含まれており、共有にはさらに共有データが含まれています。 プロバイダーに受信者として追加されると、次のことが可能になります。
- ALTER PROVIDER を使ってプロバイダーのローカル名をカスタマイズします。
- SHOW SHARES IN PROVIDER で共有するデータのセットを一覧表示します。
- CREATE CATALOG で、関心のある共有を使ってカタログを作成します。
例
-- Change the data provider name locally.
> ALTER PROVIDER `Center for Disease Control` RENAME TO cdc;
-- List the shares the provider has granted you access too.
> SHOW SHARES IN PROVIDER cdc;
vaccinedata
-- Make the share accessible locally as a catalog.
> CREATE CATALOG cdcdata USING SHARE cdc.vaccinedata;
-- Use the data.
> USE CATALOG cdcdata;
> SELECT COUNT(*) FROM information_schema.tables;
10
関連記事
- DESCRIBE PROVIDER
- ALTER PROVIDER
- DROP PROVIDER
- SHOW PROVIDERS
- COMMENT ON PROVIDER
- SHOW SHARES IN PROVIDER
- CREATE CATALOG
- Delta Sharing とは
共有
共有は、CREATE SHARE コマンドを使用してインスタンスが作成されるコンテナーです。 作成後は、ALTER SHARE コマンドを使用して、メタストア内で定義されている既存のテーブルのコレクションを繰り返し登録できます。 テーブルは、元のスキーマで修飾された元の名前で登録することも、別の公開名を指定することもできます。
共有を作成、変更、削除するには、メタストア管理者またはアカウント管理者である必要があります。
例
-- Create share `customer_share` only if share with same name doesn't exist, with a comment.
> CREATE SHARE IF NOT EXISTS customer_share COMMENT 'This is customer share';
-- Add 2 tables to the share.
-- Expose my_schema.tab1 a different name.
-- Expose only two partitions of other_schema.tab2
> ALTER SHARE customer_share ADD TABLE my_schema.tab1 AS their_schema.tab1;
> ALTER SHARE customer_share ADD TABLE other_schema.tab2 PARTITION (c1 = 5), (c1 = 7);
-- List the content of the share
> SHOW ALL IN SHARE customer_share;
name type shared_object added_at added_by comment partitions
----------------- ---- ---------------------- ---------------------------- -------------------------- ------- -----------------
other_schema.tab2 TABLE main.other_schema.tab2 2022-01-01T00:00:01.000+0000 alwaysworks@databricks.com NULL
their_schema.tab1 TABLE main.myschema.tab2 2022-01-01T00:00:00.000+0000 alwaysworks@databricks.com NULL (c1 = 5), (c1 = 7)
関連記事
- データ フィードの変更
- CREATE SHARE
- DESCRIBE SHARE
- ALTER SHARE
- DROP SHARE
- SHOW SHARES
- SHOW ALL IN SHARE
- COMMENT ON SHARE
- Delta Sharing とは
Recipients
受信者は、CREATE RECIPIENT を使用して作成するオブジェクトであり、共有へのアクセスを許可する組織を表します。 受信者を作成すると、その組織に送信できるアクティブ化リンクが Databricks SQL によって生成されます。 作成後にアクティブ化リンクを取得するには、DESCRIBE RECIPIENT を使用します。
受信者が作成されたら、GRANT ON SHARE を使用して、選択した共有に対する SELECT
権限を付与できます。
受信者の作成、受信者の削除、共有へのアクセス権の付与を行うには、メタストア管理者である必要があります。
例
-- Create a recipient.
> CREATE RECIPIENT IF NOT EXISTS other_org COMMENT 'other.org';
-- Retrieve the activation link to send to other.org
> DESCRIBE RECIPIENT other_org;
name created_at created_by comment activation_link active_token_id active_token_expiration_time rotated_token_id rotated_token_expiration_time
--------- ---------------------------- -------------------------- --------- --------------- ------------------------------------ ---------------------------- ---------------- -----------------------------
other_org 2022-01-01T00:00:00.000+0000 alwaysworks@databricks.com other.org https://.... 0160c81f-5262-40bb-9b03-3ee12e6d98d7 9999-12-31T23:59:59.999+0000 NULL NULL
-- Choose shares that other.org has access to
> GRANT SELECT ON SHARE customer_share TO RECIPIENT other_org;