Importar um provedor e ler dados compartilhados em Azure Databricks

Como destinatário Azure Databricks, você pode importar um arquivo de credencial de um provedor aberto e ler os ativos de dados compartilhados. Você pode consultar os dados compartilhados no Gerenciador de Catálogos ou usar um bloco de anotações Python.

Observação

Se os dados tiverem sido compartilhados com você usando o Databricks-to-Databricks OpenSharing, você não precisará de um arquivo de credencial para acessar dados e essa página não se aplicará a você. Em vez disso, consulte Ler dados compartilhados usando o Databricks-to-Databricks OpenSharing (para destinatários).

Requirements

Um membro da sua equipe deve baixar o arquivo de credencial que o provedor de dados compartilha e usar um canal seguro para compartilhar esse arquivo ou local do arquivo com você. Consulte Como obter acesso no modelo Open-to-Databricks.

Observação

O bucket de armazenamento e os recursos de credencial (escopo, expiração, leitura vs. leitura/gravação) são determinados pelo provedor. Se o provedor for do Azure Databricks, montar um compartilhamento aberto em um espaço de trabalho do SEG (Secure Egress Gateway) adicionará automaticamente o bucket do provedor à lista de permissões para acesso de saída. Para provedores abertos que não sejam da Databricks, o bucket não é adicionado automaticamente à lista de permissões. Verifique o provedor antes de montar.

Verifique se quando um provedor aberto compartilha tabelas usando a venda automática de credenciais (acesso baseado em diretório), essas tabelas são apoiadas pelo armazenamento em nuvem que usa um dos seguintes esquemas com suporte: s3, , s3a, s3n, abfss, wasbs, , gsou r2. Tabelas apoiadas pelo armazenamento usando um esquema sem suporte (por exemplo, o esquema não criptografado wasb ) não podem ser lidas por meio de venda automática de credenciais.

Importar um provedor e consultar dados compartilhados

Esta seção descreve como importar um provedor e como consultar os dados compartilhados no Gerenciador de Catálogos ou em um bloco de anotações Python:

  • Se o workspace Azure Databricks estiver habilitado para o Unity Catalog, use a interface de importação no Gerenciador de Catálogos. Você pode fazer o seguinte sem precisar armazenar ou especificar um arquivo de credencial:

    • Crie catálogos a partir de compartilhamentos com o clique de um botão.
    • Use controles de acesso do Catálogo do Unity para conceder acesso a tabelas compartilhadas.
    • Consultar dados compartilhados usando a sintaxe padrão do Catálogo do Unity.
    • Aplique uma credencial girada ao objeto de provedor existente sem recriar o catálogo. Consulte Rodar credenciais para destinatários explícitos.
  • Se o workspace do Azure Databricks não estiver habilitado para usar o Unity Catalog, siga as instruções do notebook Python.

Gerenciador de Catálogos

Permissões necessárias: Um administrador do metastore ou um usuário com o privilégio CREATE PROVIDER para o seu metastore do Unity Catalog. Para criar catálogos a partir do compartilhamento, você precisa do CREATE CATALOG privilégio.

  1. No workspace Azure Databricks, clique em Data icon.Catalog para abrir o Catalog Explorer.

  2. Na parte superior do painel Catálogo , clique no ícone Engrenagem e selecione OpenSharing. Como alternativa, no canto superior direito, clique em Compartilhar > OpenSharing.

  3. Na guia Compartilhado comigo, clique em Instalar compartilhamento.

  4. Insira o nome do provedor. O nome não pode incluir espaços.

  5. Carregue o arquivo de credencial que o provedor compartilhou com você. Muitos provedores têm suas próprias redes opensharing das quais você pode receber compartilhamentos. Para obter mais informações, consulte Configurações específicas do provedor.

  6. (Opcional) Insira um comentário.

    Importar o arquivo de credencial de um provedor diretamente de um provedor

  7. Clique em Importar.

  8. Na guia Compartilhamentos , clique em Criar catálogo na linha de compartilhamento para criar catálogos com base em dados compartilhados.

    Para obter informações sobre como usar o SQL ou a CLI do Databricks para criar um catálogo a partir de um compartilhamento, consulte Criar um catálogo a partir de um compartilhamento.

  9. Conceda acesso aos catálogos. Veja Como disponibilizar dados compartilhados para minha equipe? e Gerenciar permissões para esquemas, tabelas e volumes em um catálogo do OpenSharing.

  10. Leia os objetos de dados compartilhados da mesma forma que você faria com qualquer objeto de dados registrado no Catálogo do Unity.

    Para obter detalhes, confira Acessar dados em uma tabela ou volume compartilhado.

Python

Leia dados compartilhados usando um notebook em seu workspace do Azure Databricks se o workspace não estiver habilitado para o Unity Catalog. Armazene o arquivo de credencial no Azure Databricks e, em seguida, use-o para autenticar no provedor de dados e ler os dados compartilhados.

Observação

Essas instruções pressupõem que o seu espaço de trabalho do Azure Databricks não está habilitado para o Unity Catalog. Se você estiver usando o Catálogo do Unity, não será necessário apontar para o arquivo de credenciais ao ler o compartilhamento. Você pode ler de tabelas compartilhadas da mesma forma que faz em qualquer tabela registrada no Catálogo do Unity. O Databricks recomenda que você use a interface do usuário do provedor de importação no Explorador de Catálogos em vez das instruções fornecidas aqui.

Primeiro armazene o arquivo de credencial como um arquivo de workspace do Azure Databricks para que os usuários em sua equipe possam acessar dados compartilhados.

  1. Para importar o arquivo de credencial no workspace do Azure Databricks, consulte Importar um arquivo.
  2. Você pode conceder a outros usuários permissão para acessar o arquivo clicando no ícone de menu Kebab. Ao lado do arquivo, compartilhe (Permissões). Insira as identidades do Azure Databricks que devem ter acesso ao arquivo. Para obter mais informações sobre permissões de arquivo, consulte ACLs de arquivo.

Agora que o arquivo de credencial está armazenado, crie um bloco de anotações para listar e ler tabelas compartilhadas.

  1. Na sua área de trabalho "Azure Databricks", clique em Novo > Caderno de Notas. Para obter mais informações sobre Azure Databricks notebooks, consulte Databricks notebooks.

  2. Instale o delta-sharing conector e use Python pandasou Apache Spark para listar e ler as tabelas compartilhadas. Use o caminho do espaço de trabalho para o arquivo de credenciais (por exemplo, /Workspace/Users/user.name@email.com/config.share) como caminho do perfil. Para obter exemplos de código, consulte Pandas: Ler dados compartilhados e Apache Spark: ler dados compartilhados.

  3. Além dos comandos Python e Apache Spark, você pode consultar dados compartilhados usando SQL. Crie uma tabela local no workspace a partir da tabela compartilhada e, em seguida, consulte a tabela local. Os dados compartilhados não são armazenados ou colocados em cache na tabela local. Sempre que você consultar a tabela local, verá o estado atual dos dados compartilhados.

    Substitua as variáveis da seguinte forma:

    • <local-table-name>: o nome da tabela local.
    • <profile-path>: o local do arquivo de credenciais.
    • <share-name>: o valor de share= na tabela.
    • <schema-name>: o valor de schema= na tabela.
    • <table-name>: o valor de name= na tabela.
    %sql
    DROP TABLE IF EXISTS <local-table-name>;
    
    CREATE TABLE <local-table-name> USING deltaSharing LOCATION "<profile-path>#<share-name>.<schema-name>.<table-name>";
    
    SELECT * FROM <local-table-name> LIMIT 10;
    
  4. Quando você executa o comando, os dados compartilhados são consultados diretamente. Como um teste, a tabela é consultada, e os dez primeiros resultados são retornados.

  5. Se a saída estiver vazia ou não contiver os dados esperados, entre em contato com o provedor de dados.

As limitações do conector de Python do OpenSharing se aplicam. Consulte as limitações do conector de Python do OpenSharing.

Limitations

O compartilhamento open-to-Databricks baseia-se no protocolo OpenSharing. O seguinte suporte se aplica quando você importa um provedor aberto para Azure Databricks:

  • Somente tabelas Delta que dão suporte ao protocolo Delta Sharing. Não há suporte para tabelas somente do tipo Iceberg.
  • Há suporte para URL pré-assinada e acesso por token de nuvem (baseado em diretório). Azure Databricks prefere o acesso ao token de nuvem quando o provedor o disponibiliza.
  • Somente os seguintes esquemas de armazenamento de token de nuvem têm suporte: s3, , s3a, s3n, abfss, , wasbs, gse r2.

Para ler dados não Delta, como Iceberg, CSV, Parquet ou JSON, de uma fonte externa, use o Lakehouse Federation. Consulte Conectar-se a bancos de dados e catálogos externos.