Partilhar via


O que é o Delta Sharing?

Este artigo apresenta o Compartilhamento Delta no Azure Databricks, a plataforma segura de compartilhamento de dados que permite compartilhar dados e ativos de IA no Azure Databricks com usuários fora da sua organização, quer esses usuários usem Databricks ou não. O Delta Sharing também é a base para Databricks Marketplace, um fórum aberto para troca de produtos de dados, e Clean Rooms, um ambiente seguro e de proteção de privacidade onde várias partes podem trabalhar juntas em dados corporativos confidenciais.

O Delta Sharing também está disponível como um projeto de código aberto que você pode usar para compartilhar tabelas Delta de outras plataformas.

Nota

Para saber como acessar dados que foram compartilhados com você usando o Compartilhamento Delta, consulte Acessar dados compartilhados com você usando o Compartilhamento Delta (para destinatários).

Como funciona o Delta Sharing?

Delta Sharing é um protocolo aberto desenvolvido pela Databricks para compartilhamento seguro de dados com outras organizações, independentemente das plataformas de computação que usam.

Há três maneiras de compartilhar dados usando o Delta Sharing:

  1. O protocolo de partilha Databricks-to-Databricks, que permite partilhar dados e recursos de IA do seu espaço de trabalho ativado para o Catálogo Unity, com utilizadores que também têm acesso a um espaço de trabalho Databricks ativado para o Catálogo Unity.

    Esta abordagem utiliza o servidor de Partilha Delta incorporado no Azure Databricks. Ele suporta alguns recursos do Delta Sharing que não são suportados nos outros protocolos, incluindo compartilhamento de notebook, compartilhamento de volume do Unity Catalog, compartilhamento de modelo Unity Catalog AI, governança de dados do Unity Catalog, auditoria e rastreamento de uso para provedores e destinatários. A integração com o Unity Catalog simplifica a configuração e a governança para provedores e destinatários e melhora o desempenho.

    Consulte Partilhe dados usando o protocolo Delta Sharing Databricks-to-Databricks (para fornecedores).

  2. O protocolo de compartilhamento aberto Databricks, que permite compartilhar dados tabulares gerenciados em um espaço de trabalho Databricks habilitado para Unity Catalog com usuários em qualquer plataforma de computação.

    Essa abordagem usa o servidor de Compartilhamento Delta que é incorporado ao Azure Databricks e é útil quando você gerencia dados usando o Catálogo Unity e deseja compartilhá-los com usuários que não usam Databricks ou não têm acesso a um espaço de trabalho Databricks habilitado para Catálogo Unity. A integração com o Unity Catalog no lado do provedor simplifica a configuração e a governança para provedores.

    Consulte Compartilhar dados usando o protocolo de compartilhamento aberto Delta Sharing (para provedores).

  3. Uma implementação gerenciada pelo cliente do servidor de código aberto Delta Sharing, que permite compartilhar de qualquer plataforma para qualquer plataforma, seja Databricks ou não.

    A documentação do Azure Databricks não abrange instruções para configurar seu próprio servidor de Compartilhamento Delta. Ver github.com/delta-io/delta-sharing.

arquitetura de acesso a dados Delta Sharing.

Ações, fornecedores e destinatários

Os principais conceitos subjacentes ao Compartilhamento Delta no Azure Databricks são as partilhas , os provedores e os destinatários .

O que é uma ação?

No Compartilhamento Delta, uma de compartilhamento de é uma coleção somente leitura de tabelas e partições de tabela que um provedor deseja compartilhar com um ou mais destinatários. Se o destinatário usar um espaço de trabalho Databricks habilitado para Catálogo Unity, você também poderá incluir arquivos de bloco de anotações, exibições (incluindo exibições dinâmicas que restringem o acesso no nível de linha e coluna), volumes do Catálogo Unity e modelos do Catálogo Unity em um compartilhamento.

Você pode adicionar ou remover tabelas, exibições, volumes, modelos e arquivos de bloco de anotações de um compartilhamento a qualquer momento e pode atribuir ou revogar o acesso do destinatário de dados a um compartilhamento a qualquer momento.

Em um espaço de trabalho do Azure Databricks habilitado para Unity Catalog, uma partilha é um objeto seguro registrado no Unity Catalog. Se você remover um compartilhamento do metastore do Unity Catalog, todos os destinatários desse compartilhamento perderão a capacidade de acessá-lo.

Consulte Criar e gerenciar compartilhamentos para o Delta Sharing.

O que é um fornecedor?

Um provedor de é uma entidade que compartilha dados com um destinatário. Se você for um provedor e quiser aproveitar o servidor interno do Databricks Delta Sharing e gerenciar compartilhamentos e destinatários usando o Unity Catalog, precisará de pelo menos um espaço de trabalho do Azure Databricks habilitado para o Unity Catalog. Não é necessário migrar todos os espaços de trabalho existentes para o Unity Catalog. Você pode simplesmente criar um novo espaço de trabalho com suporte de Unity Catalog para as suas necessidades de Delta Sharing.

Se um destinatário estiver em um espaço de trabalho Databricks habilitado para Unity Catalog, o provedor também será um objeto protegível do Unity Catalog que representa a organização do provedor e associa essa organização a um conjunto de compartilhamentos.

O que é um destinatário?

Um destinatário é uma entidade que recebe partilhas de um provedor. No Unity Catalog, um compartilhamento é um objeto protegível que representa uma organização e a associa a uma credencial ou identificador de compartilhamento seguro que permite que essa organização acesse um ou mais compartilhamentos.

Como um provedor de dados (compartilhador), você pode definir vários destinatários para qualquer metastore do Unity Catalog, mas se quiser compartilhar dados de vários metastores com um usuário ou grupo de usuários específico, deverá definir o destinatário separadamente para cada metastore. Um destinatário pode ter acesso a vários compartilhamentos.

Se um provedor excluir um destinatário de seu metastore do Unity Catalog, esse destinatário perderá o acesso a todos os compartilhamentos que poderia acessar anteriormente.

Consulte Criar e gerenciar destinatários de dados para o Delta Sharing.

Compartilhamento aberto versus compartilhamento Databricks-to-Databricks

Esta seção descreve os dois protocolos para compartilhamento de um espaço de trabalho Databricks habilitado para o Unity Catalog.

Nota

Esta seção pressupõe que o provedor esteja em um espaço de trabalho do Azure Databricks habilitado para Unity Catalog. Para saber mais sobre como configurar um servidor de Delta Sharing de código aberto para compartilhar de uma plataforma que não seja do Databricks ou de um espaço de trabalho que não utiliza o Unity Catalog, consulte github.com/delta-io/delta-sharing.

A maneira como um provedor usa o Compartilhamento Delta no Azure Databricks depende de com quem ele está compartilhando dados:

  • A Partilha aberta permite-lhe partilhar dados com qualquer utilizador, quer tenha ou não acesso ao Azure Databricks.
  • O compartilhamento Databricks-para-Databricks permite que você compartilhe dados com utilizadores do Azure Databricks cujo espaço de trabalho está anexado a um metastore do Unity Catalog diferente do seu. O Databricks-to-Databricks também oferece suporte ao compartilhamento de notebook, volume e modelo, que não está disponível no compartilhamento aberto.

O que é o compartilhamento delta aberto?

Se você quiser compartilhar dados com usuários fora do seu espaço de trabalho do Azure Databricks, independentemente de eles usarem Databricks, você pode usar o Compartilhamento Delta aberto para compartilhar seus dados com segurança. Como provedor de dados, você gera um token e o compartilha com segurança com o destinatário. Eles usam o token para autenticar e obter acesso de leitura às tabelas que você incluiu nos compartilhamentos aos quais você lhes deu acesso.

Os destinatários podem aceder aos dados partilhados utilizando muitas ferramentas e plataformas informáticas, incluindo:

  • Azure Databricks
  • Apache Spark
  • Pandas
  • Power BI

Para obter uma lista completa de conectores Delta Sharing e informações sobre como usá-los, consulte a documentação Delta Sharing.

Consulte também Compartilhar dados usando o protocolo de compartilhamento aberto Delta Sharing (para provedores).

O que é Databricks-to-Databricks Delta Sharing?

Se você quiser compartilhar dados com usuários que têm um espaço de trabalho Databricks que está habilitado para o Unity Catalog, você pode usar o Compartilhamento Delta de Databricks para Databricks. O compartilhamento de Databricks para Databricks permite compartilhar dados com usuários em outras contas Databricks, estejam eles na AWS, Azure ou GCP. Também é uma ótima maneira de compartilhar dados com segurança em diferentes metastores do Unity Catalog em sua própria conta Databricks. Observe que não há necessidade de usar o Compartilhamento Delta para compartilhar dados entre espaços de trabalho anexados ao mesmo metastore do Unity Catalog, porque nesse cenário você pode usar o próprio Unity Catalog para gerenciar o acesso aos dados entre espaços de trabalho.

Uma vantagem do compartilhamento de Databricks para Databricks é que o destinatário do compartilhamento não precisa de um token para acessar o compartilhamento e o provedor não precisa gerenciar tokens de destinatário. A segurança da conexão de compartilhamento, incluindo toda a verificação de identidade, autenticação e auditoria, é gerenciada inteiramente por meio do Delta Sharing e da plataforma Databricks. Outra vantagem é a capacidade de compartilhar arquivos de notebook Databricks, visualizações, volumes do Catálogo Unity e modelos do Catálogo Unity.

Consulte também Compartilhar dados usando o protocolo Delta Sharing Databricks-to-Databricks (para provedores).

Como os administradores do provedor configuram o Delta Sharing?

Esta secção oferece uma visão geral sobre como os fornecedores podem ativar o Delta Sharing e iniciar o compartilhamento a partir de um espaço de trabalho do Azure Databricks com o Catálogo Unity habilitado. Para compartilhamento delta de código aberto, consulte github.com/delta-io/delta-sharing.

A partilha de Databricks para Databricks entre metastores do Unity Catalog na mesma conta está sempre ativada. Se você for um provedor que deseja habilitar o Compartilhamento Delta para compartilhar dados com espaços de trabalho Databricks em outras contas ou clientes que não sejam Databricks, um administrador de conta ou administrador de metastore do Azure Databricks executa as seguintes etapas de configuração (em alto nível):

  1. Habilite o Compartilhamento Delta para o metastore do Unity Catalog que gerencia os dados que você deseja compartilhar.

    Nota

    Você não precisa habilitar o Compartilhamento Delta em seu metastore se pretende usar o Compartilhamento Delta para compartilhar dados somente com usuários em outros metastores do Catálogo Unity em sua conta. A partilha entre metastores numa única conta do Azure Databricks está ativada por predefinição.

    Veja Ativar o Delta Sharing numa metastore.

  2. Crie um compartilhamento que inclua ativos de dados registrados no metastore do Unity Catalog.

    Se você estiver compartilhando com um destinatário que não seja Databricks (conhecido como compartilhamento aberto), poderá incluir tabelas no formato Delta ou Parquet. Se você planeja usar compartilhamento de Databricks para Databricks, também pode adicionar exibições, volumes do Catálogo Unity, modelos do Catálogo Unity e arquivos de bloco de anotações a um compartilhamento.

    Consulte Criar e gerenciar compartilhamentos para o Delta Sharing.

  3. Crie um destinatário.

    Consulte Criar e gerenciar destinatários de dados para o Delta Sharing.

    Se o destinatário não for um usuário do Databricks ou não tiver acesso a um espaço de trabalho do Databricks habilitado para o Unity Catalog, você deverá usar de compartilhamento aberto. Um conjunto de credenciais baseadas em token é gerado para esse destinatário.

    Se o destinatário tiver acesso a um espaço de trabalho Databricks habilitado para o Catálogo Unity, você poderá usar compartilhamento Databricks para Databrickse nenhuma credencial baseada em token será necessária. Você solicita um identificador de compartilhamento do destinatário e utilizá-lo para estabelecer a conexão segura.

    Gorjeta

    Use-se como um destinatário de teste para experimentar o processo de configuração.

  4. Conceda ao destinatário acesso a um ou mais compartilhamentos.

    Consulte Gerenciar o acesso a compartilhamentos de dados do Delta Sharing (para provedores).

    Nota

    Esta etapa também pode ser executada por um usuário não administrador com os USE SHAREprivilégios e USE RECIPIENTSET SHARE PERMISSION , . Consulte privilégios do Catálogo Unity e objetos securitizáveis.

  5. Envie ao destinatário as informações necessárias para se conectar ao compartilhamento (somente compartilhamento aberto).

    Consulte Enviar informações de conexão ao destinatário.

    Para compartilhamento aberto, use um canal seguro para enviar ao destinatário um link de ativação que permita baixar suas credenciais baseadas em token.

    Para compartilhamento de Databricks para Databricks, os dados incluídos no compartilhamento ficam disponíveis no espaço de trabalho Databricks do destinatário assim que você concede acesso ao compartilhamento.

O destinatário agora pode acessar os dados compartilhados.

Como os destinatários acessam os dados compartilhados?

Os destinatários acessam ativos de dados compartilhados em formato somente leitura. Os arquivos de bloco de anotações compartilhados são somente leitura, mas podem ser clonados e, em seguida, modificados e executados no espaço de trabalho do destinatário como qualquer outro bloco de anotações.

O acesso seguro depende do modelo de partilha:

Sempre que o provedor de dados atualiza tabelas ou volumes de dados em sua própria conta Databricks, as atualizações aparecem quase em tempo real no sistema do destinatário.

Como você controla quem está compartilhando e acessando dados compartilhados?

Os provedores de dados nos espaços de trabalho do Azure Databricks habilitados para o Catálogo Unity podem usar o registro de auditoria e as tabelas do sistema do Azure Databricks para monitorizar a criação e a modificação de partilhas e destinatários, e a atividade dos destinatários nas partilhas. Consulte Auditar e monitorar o compartilhamento de dados.

Os destinatários de dados que usam dados compartilhados em um espaço de trabalho do Databricks podem usar o log de auditoria do Databricks e as tabelas do sistema para entender quem está acessando quais dados. Consulte Auditar e monitorar o compartilhamento de dados.

Partilha de volumes

Você pode compartilhar volumes usando o fluxo de compartilhamento Databricks-to-Databricks. Consulte Adicionar volumes a uma partilha (para provedores) e Ler dados partilhados usando o Databricks-to-Databricks Delta Sharing (para destinatários) (para destinatários).

Modelos de partilha

Você pode compartilhar modelos usando o fluxo de compartilhamento Databricks-to-Databricks. Consulte Adicionar modelos a um compartilhamento (para provedores) e Ler dados compartilhados usando o Compartilhamento Delta de Databricks para Databricks (para destinatários) (para destinatários).

Partilhar blocos de notas

Você pode usar o Delta Sharing para compartilhar arquivos de bloco de anotações usando o fluxo de compartilhamento Databricks para Databricks. Consulte Adicionar arquivos de bloco de anotações a um de compartilhamento (para provedores) e Ler blocos de anotações compartilhados (para destinatários).

Restringir o acesso ao nível da linha e da coluna

Você pode compartilhar exibições dinâmicas que restringem o acesso a determinados dados da tabela com base nas propriedades do destinatário. O compartilhamento de exibição dinâmica requer o fluxo de compartilhamento Databricks-to-Databricks. Consulte Adicione vistas dinâmicas a uma partilha para filtrar linhas e colunas.

Delta Sharing e streaming

O Delta Sharing suporta o Spark Structured Streaming. Um provedor pode compartilhar uma tabela com o histórico para que um destinatário possa usá-la como uma fonte de Streaming Estruturado, processando dados compartilhados incrementalmente com baixa latência. Os destinatários também podem realizar consultas de viagem no tempo Delta Lake em tabelas compartilhadas com o histórico.

Para saber como partilhar tabelas com o histórico, consulte Adicionar tabelas a uma partilha. Para saber como usar tabelas compartilhadas como fontes de streaming, consulte Consultar uma tabela usando o Apache Spark Structured Streaming (para destinatários de compartilhamento de Databricks para Databricks) ou Acessar uma tabela compartilhada usando o Spark Structured Streaming (para destinatários de dados de compartilhamento aberto).

Consulte também Streaming no Azure Databricks.

Matriz de suporte de recursos Delta Lake

O Delta Sharing suporta a maioria dos recursos do Delta Lake quando você compartilha uma tabela. Esta matriz de suporte lista:

  • Recursos Delta que exigem versões específicas do Databricks Runtime, o conector Delta Sharing Spark de código aberto ou o conector Python Delta Sharing de código aberto.
  • Recursos parcialmente suportados.
Caraterística Provider Destinatário do Databricks Destinatário de código aberto
Vetores de exclusão A partilha de tabelas com esta funcionalidade está na Pré-visualização Pública. - Databricks Runtime 14.1+ para consultas em lote
- Databricks Runtime 14.2+ para CDF e consultas de streaming
- Conector Delta Sharing Spark 3.1+
- Delta Sharing Python conector 1.1.0+
- Power BI v2.132.908.0+
Mapeamento de colunas A partilha de tabelas com esta funcionalidade está na Pré-visualização Pública. - Databricks Runtime 14.1+ para consultas em lote
- Databricks Runtime 14.2+ para CDF e consultas de streaming
- Conector Delta Sharing Spark 3.1+
- Delta Sharing Python conector 1.1.0+
- Power BI v2.132.908.0+
Modelo uniforme A partilha de tabelas com esta funcionalidade está em fase de Pré-visualização Pública. - Databricks Runtime 14.1+ para consultas em lote
- Databricks Runtime 14.2+ para CDF e consultas de streaming
- Conector Delta Sharing Spark 3.1+
- Delta Sharing Python conector 1.1.0+
- Power BI v2.132.908.0+
Ponto de verificação V2 Suportado com limitações Suportado com limitações Suportado com limitações
Carimbo de data/horaNTZ Suportado Tempo de execução do Databricks 14.1+ Conector Delta Sharing Spark 3.3+
Agrupamento de líquidos Suportado com limitações Suportado com limitações Suportado com limitações

FAQs sobre o Delta Sharing

A seguir estão as perguntas frequentes sobre o Delta Sharing.

Preciso do Unity Catalog para usar o Delta Sharing?

Não, você não precisa do Unity Catalog para compartilhar (como um provedor) ou consumir dados compartilhados (como um destinatário). No entanto, o Unity Catalog oferece benefícios como suporte para compartilhamento de ativos não tabulares e de IA, governança pronta para uso, simplicidade e desempenho de consulta.

Os fornecedores podem partilhar dados de duas formas:

  • Coloque os ativos para compartilhar no gerenciamento do Catálogo Unity e compartilhe-os usando o servidor interno do Azure Databricks Delta Sharing.

    Não é necessário migrar todos os ativos para o Unity Catalog. Você precisa apenas de um espaço de trabalho do Azure Databricks habilitado para o Unity Catalog para gerenciar os ativos que deseja compartilhar. Em algumas contas, novos espaços de trabalho são habilitados para o Unity Catalog automaticamente. Consulte Ativação automática do Unity Catalog.

  • Implemente o servidor de Compartilhamento Delta aberto para compartilhar dados, sem necessariamente usar sua conta do Azure Databricks.

Os destinatários podem consumir dados de duas maneiras:

  • Sem uma área de trabalho do Databricks. Utilize os conectores do Delta Sharing open source disponíveis para inúmeras plataformas de dados, incluindo Power BI, pandas e Apache Spark open source. Consulte Ler dados partilhados através do Delta Sharing de partilha aberta (para destinatários) e o projeto de código aberto do Delta Sharing .

  • Numa área de trabalho do Databricks. Os espaços de trabalho de destinatários não precisam ser habilitados para o Unity Catalog, mas há vantagens de governança, simplicidade e desempenho.

    As organizações beneficiárias que desejam essas vantagens não precisam migrar todos os ativos para o Unity Catalog. Você precisa apenas de um espaço de trabalho do Azure Databricks habilitado para o Catálogo Unity para gerenciar ativos compartilhados com você. Em algumas contas, novos espaços de trabalho são habilitados para o Unity Catalog automaticamente. Consulte Ativação automática do Unity Catalog.

Consulte Ler dados compartilhados usando o compartilhamento aberto do Delta Sharing (para destinatários) e Ler dados compartilhados usando o Databricks-to-Databricks Delta Sharing (para destinatários).

Preciso de ser um cliente do Databricks para utilizar o Delta Sharing?

Não, o Delta Sharing é um protocolo aberto. Você pode compartilhar dados que não sejam do Databricks com destinatários em qualquer plataforma de dados. Os provedores podem configurar um servidor de compartilhamento delta aberto para compartilhar de qualquer plataforma de computação. Os destinatários podem consumir dados compartilhados usando conectores de compartilhamento delta de código aberto para muitos produtos de dados, incluindo Power BI, pandas e Spark de código aberto.

No entanto, usar o Delta Sharing no Azure Databricks, especialmente o compartilhamento de um espaço de trabalho habilitado por Catálogo Unity, tem muitas vantagens.

Para mais detalhes, consulte a primeira pergunta neste FAQ.

O Delta Sharing tem custos de saída?

O Delta Sharing numa região não tem custos de saída. Ao contrário de outras plataformas de partilha de dados, o Delta Sharing não requer replicação de dados. Este modelo tem muitas vantagens, mas significa que o fornecedor da cloud pode cobrar taxas de saída de dados quando partilha dados entre clouds ou regiões. O Azure Databricks dá suporte ao compartilhamento do Cloudflare R2, que não incorre em taxas de saída, e fornece outras ferramentas e recomendações para monitorar e evitar taxas de saída. Consulte Monitorar e gerenciar os custos de saída do Delta Sharing (para provedores).

Os provedores podem revogar o acesso do destinatário?

Sim, o acesso dos destinatários pode ser revogado a pedido e em níveis especificados de granularidade. Você pode negar acesso de destinatário a compartilhamentos específicos e endereços IP específicos, filtrar dados tabulares para um destinatário, revogar tokens de destinatário e excluir destinatários completamente. Consulte Revogar o acesso do destinatário a uma partilha e Criar e gerir destinatários de dados para o Delta Sharing.

É seguro utilizar URLs pré-assinados?

O Delta Sharing utiliza URLs pré-assinados para fornecer acesso temporário a um ficheiro no armazenamento de objetos. Eles só são dados a destinatários que já têm acesso aos dados compartilhados. Eles são seguros porque são de curto prazo e não expandem o nível de acesso além do que já foi concedido aos destinatários.

Os tokens utilizados no protocolo de partilha aberta do Delta Sharing são seguros?

Como o Delta Sharing permite a partilha entre plataformas, ao contrário de outras plataformas de partilha de dados disponíveis, o protocolo de partilha requer um token aberto. Os provedores podem garantir a segurança do token configurando o tempo de vida do token, definindo controles de rede e revogando o acesso sob demanda. Além disso, o token não expande o nível de acesso além do que os destinatários já concederam. Veja Considerações de segurança para tokens.

Se preferir não usar tokens para gerir o acesso a partilhas de destinatários, use partilha de Databricks para Databricks ou entre em contato com a sua equipa de conta Databricks para obter alternativas.

O Delta Sharing suporta compartilhamento de visualização?

Sim, o Delta Sharing suporta o compartilhamento de visualização. Consulte Adicionar vistas a uma partilha.

Para saber mais sobre os aprimoramentos planejados para visualizar o compartilhamento, entre em contato com sua equipe de conta do Databricks.

Limitações

Consulte também a matriz de suporte de recursos Delta Lake.

Quotas de recursos

O Azure Databricks impõe cotas de recursos em todos os objetos protegíveis do Compartilhamento Delta. Essas cotas estão listadas em Limites de recursos. Se você espera exceder esses limites de recursos, entre em contato com sua equipe de conta do Azure Databricks.

Você pode monitorar o uso da cota usando as APIs de cotas de recursos do Unity Catalog. Consulte Monitorize o seu uso das quotas de recursos do Catálogo Unity.

Próximos passos