Importar um fornecedor e ler dados partilhados no Azure Databricks

Como destinatário do Azure Databricks, pode importar um ficheiro de credencial de um fornecedor aberto e ler os ativos de dados partilhados. Pode consultar os dados partilhados no Explorador de Catálogos ou usar um caderno Python.

Observação

Se os dados foram partilhados consigo através do OpenSharing Databricks-to-Databricks, não precisa de um ficheiro de credencial para aceder aos dados, e esta página não se aplica a si. Em vez disso, consulte Ler dados partilhados através de Databricks-to-Databricks OpenSharing (para destinatários).

Requirements

Um membro da sua equipa deve descarregar o ficheiro de credencial partilhado pelo fornecedor de dados e usar um canal seguro para partilhar esse ficheiro ou localização do ficheiro consigo. Consulte Obter acesso no modelo Open-to-Databricks.

Observação

O balde de armazenamento e as capacidades de credenciais (âmbito, expiração, leitura vs. leitura/escrita) são determinados pelo fornecedor. Se o fornecedor for um fornecedor do Azure Databricks, montar uma partilha aberta num espaço de trabalho Secure Egress Gateway (SEG) adiciona automaticamente o bucket do fornecedor à lista de permissões para acesso de saída à rede. Para fornecedores de código aberto que não sejam Databricks, o bucket não é automaticamente incluído na lista de permissões. Verifique o provedor antes da montagem.

Verifique que, quando um fornecedor aberto partilha tabelas usando venda automática de credenciais (acesso baseado em diretório), essas tabelas são suportadas por armazenamento em nuvem que utiliza um dos seguintes esquemas suportados: s3, s3a, s3n, abfss, wasbs, gs, ou r2. Tabelas com armazenamento subjacente que utiliza um esquema não suportado (por exemplo, o esquema não encriptado wasb) não podem ser lidas através do fornecimento automático de credenciais.

Importar um fornecedor e consultar dados partilhados

Esta secção descreve como importar um fornecedor e como consultar os dados partilhados no Explorador de Catálogos ou num caderno Python:

  • Se o seu espaço de trabalho do Azure Databricks estiver ativado para o Unity Catalog, use a interface do Import provider no Catalog Explorer. 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 os controles de acesso do Catálogo Unity para conceder acesso a tabelas compartilhadas.
    • Consulte dados compartilhados usando a sintaxe padrão do Catálogo Unity.
    • Aplique uma credencial rotativa ao objeto fornecedor existente sem recriar o catálogo. Ver Rotação de credenciais para destinatários abertos.
  • Se o seu espaço de trabalho do Azure Databricks não estiver ativado para o Unity Catalog, siga as instruções do notebook em Python em vez disso.

Explorador de Catálogos

Permissões necessárias: Um administrador da metastore ou um utilizador com o privilégio CREATE PROVIDER da sua metastore do Unity Catalog. Para criar catálogos a partir da partilha, precisas desse CREATE CATALOG privilégio.

  1. No seu espaço de trabalho do Azure Databricks, clique no ícone Dados.Catálogo para abrir o Catalog Explorer.

  2. No topo do painel de Catálogo , clique no ícone Engrenagem e selecione OpenSharing. Alternativamente, no canto superior direito, clique em Partilhar > OpenSharing.

  3. No separador Partilhado comigo, clique em Instalar partilha.

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

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

  6. (Opcional) Insira um comentário.

    Importar o arquivo de credenciais de um provedor diretamente de um provedor

  7. Clique em Importar.

  8. No separador Partilhas , clique em Criar catálogo na linha de partilha para criar catálogos a partir de dados partilhados.

    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 posso disponibilizar dados partilhados à minha equipa? e Gerir permissões para os esquemas, tabelas e volumes num catálogo OpenSharing.

  10. Leia os objetos de dados compartilhados como faria com qualquer objeto de dados registrado no Unity Catalog.

    Para obter detalhes e exemplos, consulte aceder a dados em uma tabela ou volume partilhado.

Python

Leia dados partilhados usando um caderno no seu espaço de trabalho Azure Databricks se o seu espaço de trabalho não estiver ativado para o Unity Catalog. Armazene o ficheiro de credenciais no Azure Databricks, depois use-o para autenticar junto do fornecedor de dados e ler os dados partilhados.

Observação

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

Primeiro, armazene o arquivo de credenciais como um arquivo de espaço de trabalho do Azure Databricks para que os usuários da sua equipe possam acessar dados compartilhados.

  1. Para importar o arquivo de credenciais em seu espaço de trabalho do Azure Databricks, consulte Importar um arquivo.
  2. Pode conceder permissão a outros utilizadores para aceder ao ficheiro clicando no ícone do menu Kebab. ao lado do ficheiro, depois em Partilhar (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 ficheiro de credencial está armazenado, crie um caderno para listar e ler tabelas partilhadas.

  1. No espaço de trabalho do Azure Databricks, clique em Novo > Bloco de Anotações. Para mais informações sobre os notebooks do Azure Databricks, veja Databricks notebooks.

  2. Instala o delta-sharing conector e usa Python, pandasou Apache Spark para listar e ler as tabelas partilhadas. Use o caminho do espaço de trabalho para o seu ficheiro de credenciais (por exemplo, /Workspace/Users/user.name@email.com/config.share) como caminho do perfil. Para exemplos de código, veja Pandas: Read shared data e Apache Spark: Read shared data.

  3. Além dos comandos Python e Apache Spark, pode consultar dados partilhados usando SQL. Cria uma tabela local no espaço de trabalho a partir da tabela partilhada e depois consulta a tabela local. Os dados partilhados não são armazenados nem armazenados em cache na tabela local. Cada vez que você consulta a tabela local, você vê 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= para a tabela.
    • <schema-name>: o valor de schema= para a tabela.
    • <table-name>: o valor de name= para a 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 teste, a tabela é consultada e os primeiros 10 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.

Aplicam-se limitações dos conectores Python do OpenSharing. Veja limitações do conector OpenSharing Python.

Limitations

A partilha Open-to-Databricks baseia-se no protocolo OpenSharing. O seguinte suporte aplica-se quando importa um fornecedor aberto para o Azure Databricks:

  • Apenas as tabelas Delta que suportam o protocolo Delta Sharing. As tabelas apenas de Iceberg não são suportadas.
  • São suportados tanto URLs pré-assinados como acesso por token de cloud (baseado em diretório). O Azure Databricks prefere o acesso a tokens cloud quando o fornecedor o disponibiliza.
  • Apenas os seguintes esquemas de armazenamento de tokens na nuvem são suportados: s3, s3a, s3n, abfss, wasbs, gs, , e r2.

Para ler dados não-Delta como Iceberg, CSV, Parquet ou JSON de uma fonte externa, use antes o Lakehouse Federation. Ver Ligar a bases de dados e catálogos externos.