Delta Paylaşımı (Databricks SQL)

Delta Paylaşımı, hangi bilgi işlem platformlarını kullandıklarından bağımsız olarak diğer kuruluşlarla güvenli veri paylaşımına yönelik açık bir protokoldür. Bir Unity Kataloğu meta veri deposundaki tablo koleksiyonlarını kopyalamadan gerçek zamanlı olarak paylaşabilir, böylece veri alıcıları paylaşılan verilerin en son sürümüyle hemen çalışmaya başlayabilir.

Delta Sharing'in üç bileşeni vardır:

  • Sağlayıcılar

    Sağlayıcı, verilerin paylaşılabilmesini sağlayan bir varlıktır.

  • Paylaşımlar

    Paylaşım, paylaşmayı planladığınız tablolar için mantıksal gruplandırmayı tanımlar.

  • Alıcılar

    Alıcı, herhangi bir sayıda paylaşımı paylaşmak istediğiniz bir kuruluşu tanımlar.

Delta Paylaşımı'nı kullanma hakkında ayrıntılı bir kılavuz için bkz. Azure Databricks tarafından yönetilen Delta Paylaşımı

Sağlayıcılar

Veri sağlayıcısı, gerçek dünyada verileri paylaşan kuruluşu temsil eden bir nesnedir. Sağlayıcı, paylaşılan verileri daha fazla içeren paylaşımlar içerir. Sağlayıcı sizi Alıcılar olarak ekledikten sonra

Gerekli:SQL ambarı sürüm 2022.30 veya üzeri. Bu sürüm Önizleme kanalında kullanılabilir.

Örnekler

-- 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 cdc.vaccinedata;

-- Use the data.
> USE CATALOG cdcdata;
> SELECT COUNT(*) FROM information_schema.tables;
  10

Paylaşımlar

Paylaşım, CREATE SHARE komutuyla örnek olarak sunulan bir kapsayıcıdır. Oluşturulduktan sonra ALTER SHARE komutunu kullanarak meta veri deposu içinde tanımlanan mevcut tablolardan oluşan bir koleksiyonu yinelemeli olarak kaydedebilirsiniz. Tabloları özgün adları altında kaydedebilir, özgün şemalarına göre niteleyebilir veya alternatif kullanıma sunulan adlar sağlayabilirsiniz.

Paylaşımları oluşturmak, değiştirmek ve bırakmak için meta veri deposu yöneticisi veya hesap yöneticisi olmanız gerekir.

Örnekler

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

Alıcılar

Alıcı, erişim paylaşımlarına izin vermek istediğiniz bir kuruluşu temsil etmek için CREATE RECIPIENT kullanarak oluşturduğunuz bir nesnedir. Alıcı oluşturduğunuzda Databricks SQL kuruluşa gönderebileceğiniz bir etkinleştirme bağlantısı oluşturur. Oluşturma işleminden sonra etkinleştirme bağlantısını almak için DESCRIBE RECIPIENT komutunu kullanırsınız.

Alıcı oluşturulduktan sonra, PAYLAŞIMDA VER'i kullanarak seçtiğiniz paylaşımlarda ona SELECT ayrıcalıklar verebilirsiniz.

Alıcı oluşturmak, alıcıları bırakmak ve paylaşımlara erişim vermek için meta veri deposu yöneticisi olmanız gerekir.

Örnekler

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