O que é Delta Sharing?

Este artigo apresenta Delta Sharing em Databricks, a plataforma segura de compartilhamento de dados que permite que o senhor compartilhe dados e IA ativo em Databricks com usuários fora de sua organização, independentemente de esses usuários usarem Databricks ou não.

Importante

Os Delta Sharing artigos deste site enfocam o compartilhamento Databricks de dados, o Notebook e os modelos de IA. O Delta Sharing também está disponível como um projeto de código aberto que o senhor pode usar para compartilhar tabelas Delta de outras plataformas. Delta Sharing também fornece o backbone para o Databricks Marketplaceum fórum aberto para a troca de dados de produtos.

Observação

Se o senhor é um destinatário de dados que recebeu acesso a dados compartilhados por meio do Delta Sharing e deseja apenas saber como acessar esses dados, consulte Acessar dados compartilhados com o senhor usando o Delta Sharing (para destinatários).

Como funciona o Delta Sharing?

O 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 o uso de dados Delta Sharing:

  1. O protocolo de compartilhamento Databricks-to-Databricks , que permite que o senhor compartilhe dados e IA ativo do seu Unity Catalog habilitado workspace com usuários que também tenham acesso a um Unity Catalog habilitado Databricks workspace.

    Essa abordagem usa o servidor Delta Sharing incorporado ao Databricks. Ele suporta alguns Delta Sharing recursos que não são suportados nos outros protocolos, incluindo compartilhamento de Notebook, Unity Catalog compartilhamento de volume, Unity Catalog compartilhamento de modelo IA, Unity Catalog governança de dados, auditoria e acompanhamento 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.

    Veja em Compartilhamento de uso de dados o protocolo Delta Sharing Databricks-to-Databricks (para provedores).

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

    Essa abordagem usa o servidor Delta Sharing incorporado ao Databricks e é útil quando o senhor gerenciar o uso de dados Unity Catalog e deseja compartilhá-lo com usuários que não usam o Databricks ou não têm acesso a um Unity Catalog-enabled Databricks workspace. A integração com o Unity Catalog no lado do provedor simplifica a configuração e a governança para os provedores.

    Veja em Compartilhar uso de dados o protocolo de compartilhamento aberto Delta Sharing (para provedores).

  3. Uma implementação para gerenciar o cliente do servidor de código aberto Delta Sharing , que permite que o senhor compartilhe de qualquer plataforma para qualquer plataforma, seja ela Databricks ou não.

    A documentação da Databricks não abrange instruções para configurar seu próprio servidor Delta Sharing. Consulte github.com/delta-io/delta-sharing.

Ações, provedores e destinatários

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

O que é uma ação?

No Delta Sharing, um compartilhamento é uma coleção de tabelas e partições de tabela somente para leitura que um provedor deseja compartilhar com um ou mais destinatários. Se o destinatário usar um Unity Catalog-enabled Databricks workspace, o senhor também poderá incluir arquivos de Notebook, visualização (incluindo visualização dinâmica que restringe o acesso no nível de linha e coluna), volumes Unity Catalog e modelos Unity Catalog em um compartilhamento.

O senhor pode adicionar ou remover tabelas, visualizações, volumes, modelos e arquivos do Notebook 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 Unity Catalog-enabled Databricks workspace, uma ação é um objeto seguro registrado em Unity Catalog. Se o senhor 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 Delta Sharing.

O que é um provedor?

Um provedor é uma entidade que compartilha dados com um destinatário. Se o senhor for um provedor e quiser aproveitar as vantagens do servidor de compartilhamento integrado Databricks Delta e gerenciar compartilhamentos e destinatários usando Unity Catalog, precisará de pelo menos um Databricks workspace que esteja habilitado para Unity Catalog. O senhor não precisa migrar todo o seu espaço de trabalho existente para Unity Catalog. O senhor pode simplesmente criar um novo workspace habilitado para o Unity Catalog para suas necessidades de Delta Sharing.

Se um destinatário estiver em um Unity Catalog-enabled Databricks workspace, o provedor também é um objeto securizável 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 seguro 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 Unity Catalog, mas se quiser compartilhar dados de vários metastore com um determinado usuário ou grupo de usuários, você deve definir o destinatário em separado 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 podia acessar anteriormente.

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

Compartilhamento aberto versus compartilhamento Databricks-para-Databricks

Esta seção descreve os dois protocolos para compartilhamento de um Databricks workspace que está habilitado para Unity Catalog.

Observação

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

A forma como um provedor usa Delta Sharing em Databricks depende de com quem ele está compartilhando dados:

  • O compartilhamento aberto permite que você compartilhe dados com qualquer usuário, tenham ou não acesso ao Databricks.

  • Databricks-to-Databricks O compartilhamento permite que o senhor compartilhe dados com usuários do Databricks cujo workspace está anexado a um metastore Unity Catalog diferente do seu. Databricks-to-Databricks também oferece suporte ao compartilhamento de notebooks, volumes e modelos, o que não está disponível no compartilhamento aberto.

O que é Delta Sharing aberto?

Se você deseja compartilhar dados com usuários fora do seu Databricks workspace, independentemente de usar o Databricks, pode usar o Delta Sharing 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 deu acesso a eles.

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

  • 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 uso de dados, o protocolo de compartilhamento aberto Delta Sharing (para provedores).

O que é Delta Sharing Databricks-para-Databricks?

Se quiser compartilhar dados com usuários que tenham um Databricks workspace habilitado para Unity Catalog, o senhor pode usar Databricks-to-Databricks Delta Sharing. Databricks-to-Databricks O compartilhamento permite que o senhor compartilhe dados com usuários de outras contas Databricks, estejam elas em AWS, Azure, ou GCP. Também é uma ótima maneira de compartilhar dados com segurança em diferentes Unity Catalog metastores em seu próprio Databricks account. Observe que não há necessidade de usar Delta Sharing para compartilhar dados entre espaços de trabalho anexados ao mesmo metastore Unity Catalog, pois nesse cenário o senhor pode usar o próprio Unity Catalog para gerenciar o acesso aos dados entre espaços de trabalho.

Uma vantagem do Databricks-to-Databricks compartilhamento é que o destinatário do compartilhamento não precisa de tokens para acessar o compartilhamento, e o provedor não precisa gerenciar o destinatário tokens. A segurança da conexão de compartilhamento, incluindo toda a verificação de identidade, autenticação e auditoria, é gerenciada inteiramente pelo site Delta Sharing e pela plataforma Databricks. Outra vantagem é a capacidade de compartilhar arquivos do Databricks Notebook, visualizar, Unity Catalog volumes e Unity Catalog modelos.

Consulte também Compartilhar uso de dados no protocolo Delta Sharing Databricks-to-Databricks (para provedores).

Como os administradores de provedores configuram o Delta Sharing?

Esta seção apresenta uma visão geral de como os provedores podem habilitar o Delta Sharing e iniciar o compartilhamento a partir de um Unity Catalog habilitado Databricks workspace. Para obter o Delta Sharing de código aberto, consulte github.com/delta-io/delta-sharing.

Databricks-to-Databricks O compartilhamento entre Unity Catalog metastores no mesmo account está sempre ativado. Se o senhor for um provedor que deseja habilitar o Delta Sharing para compartilhar dados com o espaço de trabalho Databricks em outra conta ou em clientes que não sejamDatabricks, um administrador do Databricks account ou do metastore executará os seguintes passos de configuração (em alto nível):

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

    Observação

    Você não precisa habilitar Delta Sharing em seu metastore se pretende usar Delta Sharing para compartilhar dados apenas com usuários em outros metastores do Unity Catalog em sua conta. O compartilhamento de metastore para metastore em uma única conta do Databricks é habilitado por padrão.

    Consulte Ativar Delta Sharing em um metastore.

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

    Se o senhor estiver compartilhando com um destinatário que não sejaDatabricks (conhecido como compartilhamento aberto), poderá incluir tabelas no formato Delta ou Parquet. Se o senhor planeja usar o Databricks-to-Databricks compartilhamento, também pode adicionar visualização, Unity Catalog volumes, Unity Catalog modelos e arquivos de Notebook a um compartilhamento.

    Consulte Criar e gerenciar compartilhamentos para Delta Sharing.

  3. Crie um destinatário.

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

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

    Se o seu destinatário tiver acesso a um Databricks workspace habilitado para Unity Catalog, você poderá usar o compartilhamento Databricks-to-Databrickse nenhuma credencial baseada em token será necessária. Você solicita um identificador de compartilhamento do destinatário e o utiliza para estabelecer a conexão segura.

    Dica

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

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

    Consulte gerenciar o acesso a Delta Sharing data shares (para provedores).

    Observação

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

  5. Envie ao destinatário as informações de que ele precisa para se conectar ao compartilhamento (somente compartilhamento aberto).

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

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

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

O acesso seguro depende do modelo de compartilhamento:

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

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

Os provedores de dados no espaço de trabalho Databricks habilitado para o Unity Catalog podem usar o registro de auditoria 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 nos compartilhamentos. Consulte Auditar e monitorar o compartilhamento de dados.

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

compartilhamento de volumes

O senhor pode compartilhar volumes usando o fluxo de compartilhamento Databricks-to-Databricks. Consulte Adicionar volumes a um compartilhamento (para provedores) e Ler dados compartilhados usando Databricks-to-Databricks Delta Sharing (para destinatários) (para destinatários).

modelos de compartilhamento

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

Compartilhamento de blocos de anotações

Você pode usar 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 compartilhamento (para provedores) e Ler blocos de anotações compartilhados (para destinatários).

Restringir o acesso em nível de linha e coluna

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

Delta Sharing e streaming

Delta Sharing oferece suporte ao Spark Structured Streaming. 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 de forma incremental com baixa latência. Os destinatários também podem realizar consultas de viagem do tempo do Delta Lake em tabelas compartilhadas com o histórico.

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

Consulte também Streaming em Databricks.

Delta Lake matriz de suporte de recurso

Delta Sharing suporta a maioria dos Delta Lake recursos quando o senhor compartilha uma mesa. Essa matriz de suporte lista:

  • Delta recurso que exige versões específicas de Databricks Runtime, o conector código aberto Delta Sharing Spark ou o conector código aberto Delta Sharing Python .

  • Recurso parcialmente suportado.

Recurso

fornecedor

Destinatário da Databricks

Receptor de código aberto

Vetores de deleção

O compartilhamento de tabelas com esse recurso está em Public Preview.

  • Databricks Runtime 14.1+ para consultas de lotes

  • Databricks Runtime 14.2+ para consultas de CDF e transmissão

  • Conector Delta Sharing Spark 3.1+

  • Conector Python do Delta Sharing 1.1.0+

  • Power BI v2.132.908.0+

Mapeamento de coluna

O compartilhamento de tabelas com esse recurso está em Public Preview.

  • Databricks Runtime 14.1+ para consultas de lotes

  • Databricks Runtime 14.2+ para consultas de CDF e transmissão

  • Conector Delta Sharing Spark 3.1+

  • Conector Python do Delta Sharing 1.1.0+

  • Power BI v2.132.908.0+

Formato uniforme

O compartilhamento de tabelas com esse recurso está em Public Preview.

  • Databricks Runtime 14.1+ para consultas de lotes

  • Databricks Runtime 14.2+ para consultas de CDF e transmissão

  • Conector Delta Sharing Spark 3.1+

  • Conector Python do Delta Sharing 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

TimestampNTZ

Suportado

Databricks Runtime 14.1+

Conector Delta Sharing Spark 3.3+

Clusters líquidos

Suportado com limitações

Suportado com limitações

Suportado com limitações

Perguntas frequentes sobre o Delta Sharing

Veja a seguir as perguntas frequentes sobre o Delta Sharing.

Preciso do Unity Catalog para usar o Delta Sharing?

Não, o senhor não precisa do Unity Catalog para compartilhar (como provedor) ou consumir dados compartilhados (como destinatário). No entanto, o site Unity Catalog oferece benefícios como suporte para compartilhamento não tabular e IA ativo, governança pronta para uso, simplicidade e desempenho de consultas.

Os provedores podem compartilhar dados de duas maneiras:

  • Coloque o ativo para compartilhar no gerenciamento Unity Catalog e compartilhe-o usando o servidor de compartilhamento integrado Databricks Delta.

    O senhor não precisa migrar todo o ativo para Unity Catalog. O senhor precisa apenas de um Databricks workspace que esteja habilitado para Unity Catalog para gerenciar ativo que deseja compartilhar. Em algumas contas, o novo espaço de trabalho é ativado automaticamente para Unity Catalog. Consulte Ativação automática do Unity Catalog.

  • Implemente o servidor aberto Delta Sharing para compartilhar dados, sem necessariamente usar seu Databricks account.

Os destinatários podem consumir dados de duas maneiras:

  • Sem um Databricks workspace. Use os conectores código aberto Delta Sharing que estão disponíveis para muitas plataformas de dados, incluindo Power BI, Pandas e código aberto Apache Spark. Consulte Ler dados compartilhados usando o compartilhamento aberto Delta Sharing (para destinatários) e o projeto de código aberto Delta Sharing.

  • Em um Databricks workspace. O espaço de trabalho do destinatário não precisa estar habilitado para Unity Catalog, mas há vantagens de governança, simplicidade e desempenho se estiver.

    As organizações beneficiárias que desejam essas vantagens não precisam migrar todo o ativo para Unity Catalog. O senhor precisa apenas de um Databricks workspace que esteja habilitado para Unity Catalog para gerenciar ativos que são compartilhados com o senhor. Em algumas contas, o novo espaço de trabalho é ativado automaticamente para Unity Catalog. Consulte Ativação automática do Unity Catalog.

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

Preciso ser um cliente da Databricks para usar o Delta Sharing?

Não, o Delta Sharing é um protocolo aberto. O senhor pode compartilhar dados que não sejam da Databricks com destinatários em qualquer plataforma de dados. Os provedores podem configurar um servidor Delta Sharing aberto para compartilhar a partir de qualquer plataforma de computação. Os destinatários podem consumir conectores de uso compartilhado de dados código aberto Delta Sharing para muitos produtos de dados, incluindo Power BI, Pandas e código aberto Spark.

No entanto, o uso do Delta Sharing no Databricks, especialmente o compartilhamento de um workspace habilitado para o Unity Catalog, tem muitas vantagens.

Para obter detalhes, consulte a primeira pergunta desta FAQ.

A Delta Sharing incorre em custos de egresso?

O Delta Sharing em uma região não tem custo de saída. Diferentemente de outras plataformas de compartilhamento de dados, o Delta Sharing não requer replicação de dados. Esse modelo tem muitas vantagens, mas significa que o fornecedor de cloud pode cobrar taxas de saída de dados quando o senhor compartilha dados em clouds ou regiões. A Databricks oferece 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 do destinatário pode ser revogado sob demanda e em níveis específicos de granularidade. O senhor pode negar o acesso do destinatário a compartilhamentos específicos e endereços IP específicos, filtrar dados tabulares de um destinatário, revogar tokens de destinatário e excluir destinatários completamente. Consulte Revogar o acesso do destinatário a um compartilhamento e Criar e gerenciar destinatários de dados para o Delta Sharing.

Não é inseguro usar URLs pré-assinados?

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

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

Como o Delta Sharing permite o compartilhamento entre plataformas, diferentemente de outras plataformas de compartilhamento de dados disponíveis, o protocolo de compartilhamento requer tokens abertos. Os provedores podem garantir a segurança dos tokens configurando o tempo de vida dos tokens, definindo controles de rede e revogando o acesso sob demanda. Além disso, os tokens não expandem o nível de acesso além do que já foi concedido aos destinatários. Consulte Considerações de segurança para tokens.

Se preferir não usar tokens para gerenciar o acesso aos compartilhamentos do destinatário, use Databricks-to-Databricks compartilhamento ou entre em contato com sua equipe Databricks account para obter alternativas.

O Delta Sharing suporta o compartilhamento de visualizações?

Sim, o site Delta Sharing é compatível com o view compartilhamento. Consulte Adicionar visualização a um compartilhamento.

Para saber mais sobre os aprimoramentos planejados para a visualização do compartilhamento, entre em contato com a equipe Databricks account .

Limitações

Consulte também Delta Lake recurso support matrix.

cotas de recursos

Databricks impõe cotas de recurso em todos os objetos protegíveis do site Delta Sharing. Essas cotas são listadas em limites de recurso. Se o senhor espera exceder esses limites de recurso, entre em contato com a equipe do Databricks account .

O senhor pode monitorar o uso da cota usando o recurso Unity Catalog quotas APIs. Consulte Monitorar o uso das cotas de recurso do Unity Catalog .