Compartilhar via


Compartilhamento Delta

Aplica-se a: verificação marcada como sim SQL do Databricks verificação marcada como sim Databricks Runtime 10.4 LTS e superior caixa de seleção marcada sim Somente Catálogo do Unity

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

Há três componentes no Compartilhamento Delta:

  • Provedores

    Um provedor é uma entidade que disponibilizou dados para compartilhamento.

  • Compartilhamentos

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

  • Destinatários

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

Para obter um guia detalhado sobre como usar o Compartilhamento Delta, consulte O que é Compartilhamento Delta?.

Provedores

Aplica-se a: verificação marcada como sim SQL do Databricks marca de seleção positiva 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 tiver adicionado você como Destinatário, 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 SHARE cdc.vaccinedata;

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

Compartilhamentos

Um compartilhamento é um contêiner instanciado com o comando CRIAR COMPARTILHAMENTO. Depois de criado, você pode registrar iterativamente uma coleção de tabelas existentes definidas dentro do metastore usando o comando ALTERAR COMPARTILHAMENTO. Você pode registrar tabelas com o nome original, qualificado pelo esquema original ou fornecer nomes expostos alternativos.

Você deve ser um administrador de metastore ou de conta para criar, alterar e remover 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 CRIAR RECIPIENTE para representar uma organização para a qual você deseja permitir compartilhamentos de acesso. Ao criar 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 DESCREVER DESTINATÁRIO.

Depois que um destinatário for criado, você poderá conceder a ele privilégios SELECT em compartilhamentos de sua escolha usando CONCEDER EM COMPARTILHAR.

Você deve ser um administrador de metastore para criar e remover 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;