Compartilhar dados utilizando o protocolo de Compartilhamento Delta do Databricks para o Databricks (para provedores)
Este artigo fornece uma visão geral de como usar o Delta Sharing de Databricks para Databricks para compartilhar dados com segurança com qualquer usuário do Databricks, independentemente da conta ou do host de nuvem, desde que esse usuário tenha acesso a um workspace habilitado para o Unity Catalog.
Observação
Se você for um destinatário de dados (um usuário ou grupo de usuários com quem os dados do Databricks estão sendo compartilhados), consulte Acessar os dados compartilhados com você utilizando o Compartilhamento Delta (para destinatários).
Quem deve usar o Compartilhamento Delta do Databricks para o Databricks?
Existem três maneiras de compartilhar dados utilizando o Compartilhamento Delta.
O protocolo de compartilhamento Databricks para Databricks, abordado neste artigo, permite compartilhar dados de seu workspace habilitado para Unity Catalog com usuários que também têm acesso a um workspace do Databricks habilitado para Unity Catalog.
Essa abordagem usa o servidor Delta Sharing que é integrado ao Azure Databricks e fornece suporte para compartilhamento de notebooks, governança de dados do Catálogo do Unity, auditoria e acompanhamento de uso para provedores e destinatários. A integração com o Catálogo do Unity simplifica a configuração e a governança para provedores e destinatários e melhora o desempenho.
O protocolo de compartilhamento aberto do Databricks permite compartilhar dados gerenciados em um workspace do Databricks habilitado para o Unity Catalog com usuários em qualquer plataforma de computação.
Uma implementação gerenciada pelo cliente do servidor de Compartilhamento Delta de código aberto permite que você compartilhe de qualquer plataforma para qualquer plataforma, seja do Databricks ou não.
Consulte github.com/delta-io/delta-sharing.
Para obter uma introdução ao Compartilhamento Delta e mais informações sobre essas três abordagens, consulte O que é Compartilhamento Delta?.
Fluxo de trabalho do Delta Sharing de Databricks para Databricks
Esta seção fornece uma visão geral de alto nível do fluxo de trabalho de compartilhamento de Databricks para Databricks, com links para a documentação detalhada de cada etapa.
No modelo do Delta Sharing de Databricks para Databricks:
Um destinatário de dados fornece a um provedor de dados o identificador de compartilhamento exclusivo para o metastore do Unity Catalog do Databricks anexado ao workspace do Databricks que o destinatário (que representa um usuário ou grupo de usuários) usará para acessar os dados que o provedor de dados está compartilhando.
Para conhecer os detalhes, consulte Etapa 1: Solicitar o identificador de compartilhamento do destinatário.
O provedor de dados cria um compartilhamento no metastore do Unity Catalog do provedor. Esse objeto nomeado contém uma coleção de tabelas, exibições, volumes e notebooks registrados no metastore.
Para obter detalhes, confira Criar e gerenciar compartilhamentos para o Delta Sharing.
O provedor de dados cria um objeto destinatário no metastore do Unity Catalog do provedor. Esse objeto nomeado representa o usuário ou grupo de usuários que acessarão os dados incluídos no compartilhamento, juntamente com o identificador de compartilhamento do metastore do Unity Catalog anexado ao workspace que o usuário ou grupo de usuários usará para acessar o compartilhamento. O identificador de compartilhamento é o identificador de chave que habilita a conexão segura.
Para obter detalhes, consulte Etapa 2: criar o destinatário.
O provedor de dados concede ao destinatário o acesso ao compartilhamento.
Para obter mais detalhes, confira Gerenciar o acesso aos compartilhamentos de dados do Compartilhamento Delta (para provedores).
O compartilhamento fica disponível no workspace do Databricks do destinatário e os usuários podem acessá-lo usando o Explorador de Catálogos, a CLI do Databricks ou comandos SQL em um notebook do Azure Databricks ou no editor de consultas SQL do Databricks.
Para acessar as tabelas, exibições, volumes e notebooks em um compartilhamento, um administrador do metastore ou um usuário privilegiado deve criar um catálogo com base no compartilhamento. Em seguida, esse usuário ou outro usuário que recebe o privilégio apropriado pode conceder a outros usuários acesso ao catálogo e aos objetos no catálogo. A concessão de permissões em catálogos compartilhados e ativos de dados funciona da mesma forma que acontece com outros ativos registrados no Catálogo do Unity, com a distinção importante sendo que os usuários só podem receber acesso de leitura em objetos em catálogos criados com base em compartilhamentos Delta Sharing.
Os notebooks compartilhados residem no nível do catálogo e qualquer usuário com o privilégio
USE CATALOG
no catálogo pode acessá-los.Para obter detalhes, consulte Leitura de dados compartilhados utilizando o Compartilhamento Delta do Databricks para o Databricks (para destinatários).
Melhorar o desempenho de leitura da tabela com o compartilhamento de histórico
Importante
Esse recurso está em uma versão prévia.
Os compartilhamentos de tabela do Databricks para o Databricks podem melhorar o desempenho habilitando o compartilhamento de histórico. O histórico de compartilhamento melhora o desempenho aproveitando as credenciais de segurança temporárias do armazenamento em nuvem, com escopo reduzido para o diretório raiz da tabela Delta compartilhada do provedor, resultando em um desempenho comparável ao acesso direto às tabelas de origem.
- Para novos compartilhamentos de tabela, especifique
WITH HISTORY
ao criar o compartilhamento de tabela. Confira Adicionar tabelas a um compartilhamento. Quando você compartilha uma tabela usando a computação no Databricks Runtime 16.2 e superior,WITH HISTORY
é o padrão. - Para compartilhamentos de tabela existentes, você deve alterar o compartilhamento para compartilhar o histórico da tabela. Confira Atualizar compartilhamentos. Quando você compartilha uma tabela usando a computação no Databricks Runtime 16.2 e superior,
WITH HISTORY
é o padrão.
Quando você compartilha um esquema inteiro, todas as tabelas no esquema são compartilhadas com o histórico por padrão.
Observação
Tabelas com particionamento habilitado não recebem os benefícios de desempenho do compartilhamento de histórico. Confira Especificar partições de tabela para compartilhar
Privacidade de dados ao compartilhar histórico
Os fornecedores devem estar cientes de que o compartilhamento de histórico entre Databricks concede aos participantes do Delta Sharing acesso temporário de leitura aos arquivos de dados e ao log Delta. O log de confirmações Delta contém o histórico de confirmação para cada versão da tabela, informações sobre o committer (semelhante ao histórico de confirmação do GitHub) e dados excluídos que não foram removidos.