Compartilhe dados e ativos de IA com segurança usando o Compartilhamento Delta

Este artigo apresenta o Compartilhamento Delta no Azure Databricks, a plataforma segura de compartilhamento de dados que lhe permite compartilhar dados e ativos de IA no Azure Databricks com usuários fora da sua organização, independentemente de esses usuários usarem ou não o Databricks.

Importante

Os artigos sobre Compartilhamento Delta nesse site se concentram no compartilhamento de dados, notebooks e modelos de IA do Azure Databricks. O Compartilhamento Delta também está disponível como um projeto de código aberto que você pode usar para compartilhar tabelas Delta de outras plataformas. O Delta Sharing também constitui a base do Databricks Marketplace, um fórum aberto para troca de produtos de dados.

Observação

Se você for um destinatário de dados a quem foi concedido acesso a dados compartilhados por meio do Compartilhamento Delta e quiser apenas saber como acessar esses dados, consulte Acessar dados compartilhados com você utilizando o Compartilhamento Delta (para destinatários).

O que é o Compartilhamento Delta?

O Compartilhamento Delta é um protocolo em aberto desenvolvido pela Databricks para proteger o compartilhamento de dados com outras organizações, independente das plataformas de computação usadas por elas.

Existem três maneiras de compartilhar dados usando o Compartilhamento Delta:

  1. O protocolo de compartilhamento de Databricks para Databricks, que permite que você compartilhe dados e ativos de IA do seu workspace habilitado para o Catálogo do Unity com usuários que também tenham acesso a um workspace do Databricks habilitado para o Catálogo do Unity.

    Essa abordagem usa o servidor Delta Sharing, que é integrado ao Azure Databricks. Oferece suporte a alguns recursos do Compartilhamento Delta que não são compatíveis com outros protocolos, incluindo compartilhamento de notebooks, compartilhamento de volumes do Catálogo do Unity, compartilhamento de modelos de IA do Catálogo do Unity, governança de dados do Catálogo do Unity, auditoria e rastreamento de uso, tanto para provedores quanto para 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.

    Consulte Compartilhar dados utilizando o protocolo de Compartilhamento Delta do Databricks para o Databricks (para provedores).

  2. O protocolo de compartilhamento aberto do Databricks, que permite compartilhar dados tabulares que você gerencia em um workspace do Databricks habilitado para o Catálogo do Unity com usuários em qualquer plataforma de computação.

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

    Consulte Compartilhar dados utilizando o protocolo de compartilhamento aberto do Compartilhamento Delta (para provedores).

  3. Uma implementação gerenciada pelo cliente do servidor de compartilhamento Delta de software livre, que permite compartilhar de qualquer plataforma para qualquer plataforma, independentemente do Databricks ou não.

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

Ações, provedores e destinatários

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

O que é um compartilhamento?

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

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

Em um workspace do Azure Databricks habilitado para catálogo do Unity, um compartilhamento é um objeto protegível registrado no Catálogo do Unity. Se você remover um compartilhamento do metastore do Catálogo do Unity, todos os destinatários desse compartilhamento perderão a capacidade de acessá-lo.

Confira Criar e gerenciar compartilhamentos para o Compartilhamento Delta.

O que é um provedor?

Um provedor é uma entidade que compartilha dados com um destinatário. Se você for um provedor e quiser aproveitar o servidor interno do Compartilhamento Delta do Databricks e gerenciar compartilhamentos e destinatários usando o Catálogo do Unity, precisará de pelo menos um workspace do Azure Databricks habilitado para o Catálogo do Unity. Você não precisa necessariamente migrar os espaços de trabalho existentes para o Catálogo do Unity. Você pode simplesmente criar um novo workspace habilitado para Catálogo do Unity para suas necessidades de compartilhamento Delta.

Se um destinatário estiver em um workspace do Databricks habilitado para Catálogo do Unity, o provedor também será um objeto protegível do Catálogo do Unity 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 compartilhamentos de um provedor. No Catálogo do Unity, um compartilhamento é um objeto protegível que representa uma organização e o 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 (compartilhamento), você pode definir vários destinatários para uma determinada metastore do Catálogo do Unity, mas se desejar compartilhar dados de vários metastores com um usuário ou grupo de usuários único, você deve 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 do seu metastore do Catálogo do Unity, esse destinatário perderá o acesso a todos os compartilhamentos que poderia acessar previamente.

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

Compartilhamento aberto versus compartilhamento do Databricks para Databricks

Essa seção descreve os dois protocolos para compartilhamento de um workspace do Databricks habilitado para o Catálogo do Unity.

Observação

Essa seção pressupõe que o provedor esteja em um workspace do Azure Databricks habilitado para Catálogo do Unity. Para saber mais sobre como configurar um servidor delta de compartilhamento de software livre para compartilhar de uma plataforma não Databricks ou de um workspace de Catálogo não Unity, consulte github.com/delta-io/delta-sharing.

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

  • O compartilhamento aberto permite compartilhar dados com qualquer usuário, independentemente de ele ter ou não acesso ao Azure Databricks.
  • O compartilhamento do Databricks para o Databricks permite compartilhar dados com usuários do Azure Databricks cujo workspace do Azure Databricks está anexado a um metastore do Catálogo do Unity diferente do seu. Databricks-to-Databricks também dá 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ê deseja compartilhar dados com usuários fora do workspace do Azure Databricks, independentemente de eles usarem o Databricks, você poder usar o Compartilhamento Delta aberto para compartilhar seus dados com segurança. Como um provedor de dados, você gera um token e o compartilha com segurança com o destinatário. Ele usa o token para autenticar e obter acesso de leitura às tabelas que você incluiu nos compartilhamentos aos quais você forneceu acesso.

Os destinatários podem acessar os dados compartilhados usando várias ferramentas e plataformas de computação, incluindo:

  • Azure Databricks
  • Apache Spark
  • Pandas
  • Power BI

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

Consulte também Compartilhar dados utilizando o protocolo de compartilhamento aberto do Compartilhamento Delta (para provedores).

O que é o Compartilhamento Delta do Databricks para o Databricks?

Se quiser compartilhar dados com usuários que tenham um workspace do Databricks habilitado para o Catálogo do Unity, você pode usar o Compartilhamento Delta do Databricks para o Databricks. O compartilhamento do Databricks para Databricks permite compartilhar dados com usuários em outras contas do Databricks, independentemente de estarem na AWS, no Azure ou no GCP. Também é uma ótima maneira de compartilhar dados com segurança em diferentes metastores do Catálogo do Unity em sua própria conta do 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 Catálogo do Unity, pois nesse cenário você pode utilizar o próprio Catálogo do Unity para gerenciar o acesso aos dados entre os espaços de trabalho.

Uma vantagem do compartilhamento do Databricks para o Databricks é que o destinatário do compartilhamento não precisa de um token para acessar o compartilhamento e o provedor não precisa gerenciar os tokens do 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 da plataforma do Compartilhamento Delta e do Databricks. Outra vantagem é a capacidade de compartilhar arquivos de notebook do Databricks, exibições, volumes do Catálogo do Unity e modelos do Catálogo do Unity.

Consulte também Compartilhar dados utilizando o protocolo de Compartilhamento Delta do Databricks para o Databricks (para provedores).

Como os administradores de provedores configuram o Compartilhamento Delta?

Essa seção fornece uma visão geral de como os provedores podem habilitar o Compartilhamento Delta e iniciar o compartilhamento de um workspace do Azure Databricks habilitado para Catálogo do Unity. Para o compartilhamento Delta de software livre, consulte github.com/delta-io/delta-sharing.

O compartilhamento do Databricks para o Databricks entre metastores do Catálogo do Unity na mesma conta sempre está habilitado. Se você for um provedor que deseja habilitar o Compartilhamento Delta para compartilhar dados com workspaces do Azure Databricks em outras contas ou clientes que não sejam do Databricks, um administrador da conta do Azure Databricks ou administrador do metastore executará as seguintes etapas de configuração (em um nível alto):

  1. Habilita o Compartilhamento Delta para o metastore do Catálogo do Unity que gerencia os dados que você deseja compartilhar.

    Observação

    Não é necessário habilitar o Compartilhamento Delta em seu metastore se você pretende utilizar o Compartilhamento Delta para compartilhar dados apenas com usuários de outros metastores do Catálogo do Unity na sua conta. O compartilhamento de metastore para metastore em uma única conta do Azure Databricks é habilitado por padrão.

    Confira Habilitar o Compartilhamento Delta em um metastore.

  2. Crie um compartilhamento que inclua ativos de dados registrados no metastore do Catálogo do Unity.

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

    Confira Criar e gerenciar compartilhamentos para o Compartilhamento Delta.

  3. Criar 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 workspace do Databricks habilitado para o Catálogo do Unity, você deve usar o compartilhamento aberto. Um conjunto de credenciais baseadas em token é gerado para esse destinatário.

    Se o destinatário tiver acesso a um workspace do Databricks habilitado para o Catálogo do Unity, você pode usar o compartilhamento do Databricks para o Databricks e não será necessário nenhuma credencial baseada em token. Você solicita um identificador de compartilhamento do destinatário e o usa para estabelecer a conexão segura.

    Dica

    Use a si mesmo como um destinatário de teste para experimentar o processo de instalação.

  4. Conceda o acesso de destinatário em um ou mais compartilhamentos.

    Consulte Conceder e gerenciar o acesso aos compartilhamentos de dados do Compartilhamento Delta (para provedores).

    Observação

    Essa etapa também pode ser executada por um usuário não administrador com os privilégios USE SHARE, USE RECIPIENT e SET SHARE PERMISSION . Confira Privilégios e objetos protegíveis do Catálogo do Unity.

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

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

    No compartilhamento aberto, use um canal seguro para enviar ao destinatário um link de ativação que permite baixar as credenciais baseadas em token dele.

    No compartilhamento do Databricks para o Databricks, os dados incluídos no compartilhamento ficam disponíveis no workspace do 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 no formato somente leitura. Os arquivos de notebook compartilhados são somente leitura, mas podem ser clonados e depois modificados e executados no workspace do destinatário, assim como qualquer outro notebook.

O acesso seguro depende do modelo de compartilhamento:

Sempre que o provedor de dados atualiza tabelas de dados ou volumes na própria conta do 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 podem utilizar o registro em log de auditoria do Azure Databricks e as tabelas do sistema para monitorar a criação e a modificação de compartilhamentos e destinatários, e podem monitorar a atividade do destinatário em compartilhamentos. Veja Auditar e monitorar o compartilhamento de dados.

Os destinatários de dados que utilizam dados compartilhados em uma conta do Databricks podem usar o registro em log de auditoria do Databricks e as tabelas do sistema para entender quem está acessando quais dados. Veja Auditar e monitorar o compartilhamento de dados.

Compartilhamento de volumes

Você pode compartilhar volumes usando o fluxo de compartilhamento Databricks para Databricks. Veja Adicionar volumes a um compartilhamento (para provedores) e Ler dados compartilhados usando o Delta Sharing do Databricks para Databricks (para destinatários).

Compartilhamento de modelos

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

Compartilhar notebooks

Você pode usar o Compartilhamento Delta para compartilhar arquivos de notebook usando o fluxo de compartilhamento do Databricks para Databricks. Consulte Adicionar arquivos de notebook a um compartilhamento (para provedores) e Ler notebooks compartilhados (para destinatários).

Restringindo o acesso no nível de linha e coluna

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

Compartilhamento Delta e streaming

O Compartilhamento Delta dá suporte ao Streaming Estruturado do Spark. Um provedor pode compartilhar uma tabela com 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 executar consultas de viagem no tempo do Delta Lake em tabelas compartilhadas com o histórico.

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

Confira também Streaming no Azure Databricks.

Perguntas frequentes sobre o Compartilhamento Delta

A seguir estão as perguntas frequentes sobre o Compartilhamento Delta

É preciso ter o Catálogo do Unity para utilizar o Compartilhamento Delta?

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

Os provedores podem compartilhar dados de duas maneiras:

  • Coloque os ativos a serem compartilhados no gerenciamento do Catálogo do Unity e compartilhe-os usando o servidor interno do Compartilhamento Delta do Azure Databricks.

    Você não precisa migrar todos os ativos para o Catálogo do Unity. Você precisa apenas de um workspace do Azure Databricks habilitado para que o Catálogo do Unity gerencie ativos que você deseja compartilhar. Em algumas contas, novos workspaces são habilitados automaticamente para o Catálogo do Unity. Confira Habilitação automática do Catálogo do Unity.

  • 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 um workspace do Databricks. Use conectores de Compartilhamento Delta de software livre disponíveis para muitas plataformas de dados, incluindo Power BI, pandas e Apache Spark de software livre. Consulte Ler dados compartilhados usando o Compartilhamento Delta aberto (para destinatários) e o Projeto de software livre do Compartilhamento Delta.

  • Em um Workspace do Databricks. Os workspaces de destinatário não precisam ser habilitados para o Catálogo do Unity, mas há vantagens de governança, simplicidade e desempenho se estiverem.

    As organizações de destinatários que desejam essas vantagens não precisam migrar todos os ativos para o Catálogo do Unity. Você precisa apenas de um workspace do Azure Databricks habilitado para o Catálogo do Unity gerenciar ativos compartilhados com você. Em algumas contas, novos workspaces são habilitados automaticamente para o Catálogo do Unity. Confira Habilitação automática do Catálogo do Unity.

Consulte Ler dados compartilhados usando o Compartilhamento Delta aberto (para destinatários) e Ler dados compartilhados usando o Compartilhamento Delta do Databricks para Databricks (para destinatários).

Preciso ser um cliente do Databricks para usar o Compartilhamento Delta?

Não, o Compartilhamento Delta é 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 do Compartilhamento Delta aberto para compartilhar de qualquer plataforma de computação. Os destinatários podem consumir dados compartilhados usando conectores do Compartilhamento Delta de software livre para muitos produtos de dados, incluindo Power BI, pandas e Spark de software livre.

No entanto, o uso do Compartilhamento Delta no Azure Databricks, especialmente o compartilhamento de um workspace habilitado para Catálogo do Unity, tem muitas vantagens.

Para obter detalhes, consulte a primeira pergunta nessas perguntas frequentes.

O Compartilhamento Delta incorre em custos de saída?

O Compartilhamento Delta dentro de uma região não gera nenhum custo de saída. Diferentemente de outras plataformas de compartilhamento de dados, o Compartilhamento Delta não requer replicação de dados. Esse modelo tem muitas vantagens, mas significa que seu fornecedor de nuvem pode cobrar valores de saída de dados quando você compartilhar dados entre nuvens ou regiões. O Azure Databricks dá suporte ao compartilhamento do Cloudflare R2 (Visualização Pública), que não incorre em valores de saída, e fornece outras ferramentas e recomendações para monitorar e evitar valores de saída. Consulte Monitorar e gerenciar os custos de saída do Compartilhamento Delta (para provedores).

Os provedores podem revogar o acesso ao destinatário?

Sim, o acesso ao destinatário pode ser revogado sob demanda e em níveis especificados de granularidade. Você pode negar o acesso do 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 inteiramente. Consulte Revogar o acesso de destinatário a um compartilhamento e Criar e gerenciar destinatários de dados para o Compartilhamento Delta.

Não é perigoso usar URLs pré-assinadas?

O Compartilhamento Delta usa URLs pré-assinadas para fornecer acesso temporário a um arquivo no armazenamento de objetos. Elas são fornecidas somente aos destinatários que já têm acesso aos dados compartilhados. Elas são seguras porque são de curta duração e não expandem o nível de acesso além do que os destinatários já foram concedidos.

Os tokens usados no protocolo de Compartilhamento Delta aberto são seguros?

Como o Compartilhamento Delta permite o compartilhamento entre plataformas, ao contrário de outras plataformas de compartilhamento de dados disponíveis, o protocolo de compartilhamento 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á foram concedidos. Consulte Considerações de segurança para tokens.

Se preferir não usar tokens para gerenciar o acesso a compartilhamentos de destinatários, use o compartilhamento de Databricks para Databricks ou entre em contato com sua equipe de conta do Databricks para obter alternativas.

O Compartilhamento Delta dá suporte ao compartilhamento de exibição?

Sim, o Compartilhamento Delta dá suporte ao compartilhamento de exibição. Consulte Adicionar modos de exibição a um compartilhamento.

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

Limitações

Cotas de recursos

Os valores abaixo indicam as cotas para recursos do Compartilhamento Delta. Os valores de cotas abaixo são expressos com relação ao objeto pai no Catálogo do Unity.

Objeto Pai Valor
provider metastore 1000
recipients metastore 5.000
compartilhamentos metastore 1000
tabelas compartilhamento 1000
volumes compartilhamento 1000
modelos compartilhar 1000
esquemas compartilhamento 500
Notebooks compartilhamento 100

Se você espera exceder esses limites de recursos, entre em contato com sua equipe de conta do Azure Databricks.

Próximas etapas