Compartilhamento Delta

Aplica-se a:Marque Sim Databricks SQL Marque Sim Databricks Runtime 10.4 LTS e superior Marque Sim somente Unity Catalog

O Delta Sharing é um protocolo aberto para compartilhamento seguro de dados com outras organizações, independentemente de quais plataformas de computação elas usam. Ele pode compartilhar coleções de tabelas em um metastore do Unity Catalog em tempo real sem copiá-las, para que os destinatários dos dados possam começar imediatamente a trabalhar com a versão mais recente dos dados compartilhados.

Há três componentes para o Delta Sharing:

  • Provedores

    Um fornecedor é uma entidade que disponibilizou dados para partilha.

  • Ações

    Um compartilhamento define um agrupamento lógico para as tabelas que você pretende compartilhar.

  • Destinatários

    Um destinatário identifica uma organização com a qual você deseja compartilhar qualquer número de compartilhamentos.

Para obter um guia detalhado sobre como usar o Compartilhamento Delta, consulte Compartilhar dados e ativos de IA com segurança usando o Compartilhamento Delta.

Provedores

Aplica-se a:Marque Sim Databricks SQL Marque Sim Databricks Runtime 11.3 LTS e superior

Um provedor de dados é um objeto que representa a organização no mundo real que compartilha os dados. Um provedor contém compartilhamentos que contêm os dados compartilhados. Depois que um provedor adicionar você como Destinatários , você poderá:

Exemplos

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

Partilhas

Um compartilhamento é um contêiner instanciado com o comando CREATE SHARE . Uma vez criado, você pode registrar iterativamente uma coleção de tabelas existentes definidas dentro do metastore usando o comando ALTER SHARE . Você pode registrar tabelas sob seu nome original, qualificado por seu esquema original, ou fornecer nomes expostos alternativos.

Você deve ser um administrador de metastore ou administrador de conta para criar, alterar e soltar compartilhamentos.

Exemplos

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

Destinatários

Um destinatário é um objeto que você cria usando CREATE RECIPIENT para representar uma organização que você deseja permitir compartilhamentos de acesso. Quando você cria um destinatário, o Databricks SQL gera um link de ativação que você pode enviar para a organização. Para recuperar o link de ativação após a criação, use DESCRIBE RECIPIENT.

Uma vez que um destinatário tenha sido criado, você pode dar-lhe SELECT privilégios em ações de sua escolha usando GRANT ON SHARE.

Você deve ser um administrador de metastore para criar destinatários, descartar destinatários e conceder acesso a compartilhamentos.

Exemplos

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