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 do Databricks Marketplace, um fórum aberto para troca de produtos de dados, e do Clean Rooms, um ambiente seguro e que protege a 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 compartilhamento Databricks-to-Databricks, que permite compartilhar dados e ativos de IA do seu espaço de trabalho habilitado para Unity Catalog, com usuários que também têm acesso a um espaço de trabalho Databricks habilitado para Unity Catalog.

    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 Compartilhar dados usando o protocolo Delta Sharing Databricks-to-Databricks (para provedores).

  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.

Compartilhamentos, provedores e destinatários

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

O que é uma ação?

No Compartilhamento Delta, um compartilhamento é 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, um compartilhamento é um objeto protegível registrado no Unity Catalog. Se remover uma partilha do metastore do Unity Catalog, todos os destinatários dessa partilha perderão a capacidade de a aceder.

Consulte Criar e gerenciar compartilhamentos para o Delta Sharing.

O que é um fornecedor?

Um provedor é 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 habilitado para Unity Catalog para suas necessidades de Compartilhamento Delta.

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 ações 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 fornecedor de dados (partilhador), pode definir vários destinatários para qualquer metastore do Unity Catalog, mas se pretender partilhar dados de vários metastores com um utilizador ou grupo de utilizadores específico, deverá definir o destinatário separadamente para cada metastore. Um destinatário pode ter acesso a várias partilhas.

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 Compartilhamento Delta.

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 compartilhamento delta de código aberto para compartilhar de uma plataforma que não seja Databricks ou espaço de trabalho nã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 de Databricks para Databricks permite compartilhar dados com usuários 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 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 seção fornece uma visão geral de como os provedores podem habilitar o Compartilhamento Delta e iniciar o compartilhamento a partir de um espaço de trabalho do Azure Databricks habilitado para Catálogo Unity. Para compartilhamento delta de código aberto, consulte github.com/delta-io/delta-sharing.

O compartilhamento de Databricks para Databricks entre metastores do Unity Catalog na mesma conta está sempre habilitado. 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 o 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 Compartilhamento Delta.

    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 o 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 Unity Catalog, você poderá usar o compartilhamento de Databricks para Databricks e nenhuma credencial baseada em token será necessária. Você solicita um identificador de compartilhamento do destinatário e o usa 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 RECIPIENT SET SHARE PERMISSION , . Consulte Privilégios do catálogo Unity e objetos protegí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 Catálogo Unity podem usar o log de auditoria e as tabelas do sistema do Azure Databricks para monitorar a criação e a modificação de compartilhamentos e destinatários e podem monitorar a atividade do destinatário em compartilhamentos. 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 um compartilhamento (para provedores) e Ler dados compartilhados usando o compartilhamento delta de Databricks para Databricks (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 ficheiros do bloco de notas a uma partilha (para fornecedores) e Ler blocos de notas partilhados (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 Adicionar 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 do 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á 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+
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, não precisa do Unity Catalog para partilhar (como fornecedor) ou consumir dados partilhados (como destinatário). No entanto, o Unity Catalog oferece benefícios como suporte para partilha de recursos não tabulares e de IA, governação pronta a usar, simplicidade e desempenho de consulta.

Os fornecedores podem partilhar dados de duas formas:

  • Coloque os recursos a partilhar na gestão do Unity Catalog e partilhe-os através do servidor do Delta Sharing incorporado no Azure Databricks.

    Não é necessário migrar todos os recursos para o Unity Catalog. Precisa apenas de uma área de trabalho do Azure Databricks ativada no Unity Catalog para gerir os recursos que pretende partilhar. Em algumas contas, as novas áreas de trabalho são ativadas automaticamente no Unity Catalog. Veja 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 formas:

  • 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. Veja Ler dados partilhados com a partilha aberta do Delta Sharing (para destinatários) e o Projeto open source do Delta Sharing.

  • Numa área de trabalho do Databricks. As áreas de trabalho de destinatários não precisam de ser ativadas no Unity Catalog, mas há vantagens de governação, simplicidade e desempenho.

    As organizações de destinatários que pretendam estas vantagens não têm de migrar todos os recursos para o Unity Catalog. Precisa apenas de uma área de trabalho do Azure Databricks ativada no Unity Catalog para gerir os recursos partilhados consigo. Em algumas contas, as novas áreas de trabalho são ativadas automaticamente no Unity Catalog. Veja Ativação automática do Unity Catalog.

Veja Ler dados partilhados com a partilha aberta do Delta Sharing (para destinatários) e Ler dados partilhados com o Delta Sharing entre Databricks (para destinatários).

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

Não, o Delta Sharing é um protocolo aberto. Pode partilhar dados que não sejam do Databricks com destinatários em qualquer plataforma de dados. Os fornecedores podem configurar um servidor do Delta Sharing aberto para partilhar a partir de qualquer plataforma de computação. Os destinatários podem consumir dados partilhados com conectores do Delta Sharing open source para inúmeros produtos de dados, incluindo Power BI, pandas e Spark open source.

No entanto, utilizar o Delta Sharing no Azure Databricks, especialmente a partilha a partir de uma área de trabalho ativada no Unity Catalog, 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. Veja Monitorizar e gerir os custos de saída do Delta Sharing (para fornecedores).

Os fornecedores podem revogar o acesso dos destinatários?

Sim, o acesso dos destinatários pode ser revogado a pedido e em níveis especificados de granularidade. Pode negar o acesso dos destinatários a partilhas e endereços IP específicos, filtrar dados tabulares para um destinatário, revogar tokens de destinatário e eliminar destinatários. Veja Revogar o acesso dos destinatários 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. Só são fornecidos a destinatários que já têm acesso aos dados partilhados. São seguros porque são de curta duração e não expandem o nível de acesso além do 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 fornecedores podem garantir a segurança do token ao configurar a duração do token, definir controlos de rede e revogar o acesso a pedido. Além disso, o token não expande o nível de acesso além do concedido aos destinatários. Veja Considerações de segurança para tokens.

Se preferir não utilizar tokens para gerir o acesso a partilhas de destinatários, utilize a partilha entre Databricks ou contacte a equipa da sua conta do 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 Monitorar o uso das cotas de recursos do Unity Catalog.

Próximos passos