Bagikan melalui


Berbagi Delta

Berlaku untuk:ditandai ya Databricks SQL ditandai ya Databricks Runtime 10.4 LTS ke atas ditandai ya Unity Catalog saja

Delta Sharing adalah protokol terbuka untuk berbagi data yang aman dengan organisasi lain terlepas dari platform komputasi mana yang mereka gunakan. Ini dapat berbagi kumpulan tabel dalam metastore Unity Catalog secara real time tanpa menyalinnya, sehingga penerima data dapat segera mulai bekerja dengan versi terbaru data bersama.

Ada tiga komponen untuk Delta Sharing:

  • Penyedia

    Penyedia adalah entitas yang telah membuat data tersedia untuk berbagi.

  • Berbagi

    Berbagi menentukan pengelompokan logis untuk tabel yang ingin Anda bagikan.

  • Penerima

    Penerima mengidentifikasi organisasi yang ingin Anda bagikan berapa pun jumlah sahamnya.

Untuk panduan terperinci tentang cara menggunakan Berbagi Delta, lihat Apa itu Berbagi Delta?.

Penyedia

Berlaku untuk:centang ditandai ya Databricks SQL centang ditandai ya Databricks Runtime 11.3 LTS ke atas

Penyedia data adalah objek yang mewakili organisasi di dunia nyata yang berbagi data. Sebuah penyedia berisi bagian-bagian yang selanjutnya berisi data bersama. Setelah penyedia menambahkan Anda sebagai Penerima Anda dapat

Contoh

-- 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

Saham

Sebuah share adalah kontainer yang diinstansiasi dengan perintah CREATE SHARE. Setelah dibuat, Anda dapat secara berulang mendaftarkan kumpulan tabel yang ada yang ditentukan dalam metastore menggunakan perintah ALTER SHARE. Anda dapat mendaftarkan tabel dengan nama aslinya, ditentukan oleh skema aslinya, atau memberikan nama alternatif yang terlihat.

Anda harus menjadi admin metastore atau admin akun untuk membuat, mengubah, dan menghapus pembagian.

Contoh

-- 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)

Penerima

Penerima adalah objek yang Anda buat menggunakan CREATE RECIPIENT untuk mewakili organisasi yang ingin Anda izinkan berbagi aksesnya. Saat Anda membuat penerima, Databricks SQL menghasilkan tautan aktivasi yang dapat Anda kirim ke organisasi. Untuk mendapatkan tautan aktivasi setelah pembuatan, Anda menggunakan DESCRIBE RECIPIENT.

Setelah penerima dibuat, Anda dapat memberikan hak akses SELECT pada bagian pilihan Anda menggunakan GRANT ON SHARE.

Anda harus menjadi administrator metastore untuk membuat penerima, menghapus penerima, dan memberikan akses ke pembagian.

Contoh

-- 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;