Partilhar via


Ler tabelas do Delta Lake (Synapse ou localização externa)

Importante

O Azure HDInsight no AKS foi desativado em 31 de janeiro de 2025. Saiba mais com este anúncio.

Você precisa migrar suas cargas de trabalho para Microsoft Fabric ou um produto equivalente do Azure para evitar o encerramento abrupto de suas cargas de trabalho.

Importante

Esta funcionalidade está atualmente em pré-visualização. Os Termos de Utilização Suplementares para Pré-visualizações do Microsoft Azure incluem mais termos legais que se aplicam a funcionalidades do Azure que estão em versão beta, em pré-visualização ou ainda não disponibilizadas para o público em geral. Para obter informações sobre essa visualização específica, consulte Azure HDInsight no AKS informações de visualização. Para perguntas ou sugestões de funcionalidades, envie um pedido no AskHDInsight com os detalhes e siga-nos para mais atualizações sobre a Comunidade Azure HDInsight .

Este artigo fornece uma visão geral de como ler uma tabela Delta Lake sem ter qualquer acesso ao metastore (Synapse ou outros metastores sem acesso público).

Você pode executar as seguintes operações nas tabelas usando Trino com HDInsight no AKS.

  • SUPRIMIR
  • ATUALIZAÇÃO
  • INSERIR
  • MESCLAR

Pré-requisitos

Criar esquemas e tabelas Delta Lake

Esta seção mostra como criar uma tabela Delta em um local pré-existente, uma vez que você já tem um catálogo Delta Lake configurado.

  1. Navegue pela conta de armazenamento usando o Storage browser no portal do Azure até onde está o diretório base da sua tabela. Se esta tabela se originar no Synapse, é provável que esteja num caminho synapse/workspaces/.../warehouse/, terá o nome da sua tabela e conterá um diretório _delta_log. Selecione Copy URL dos três pontos localizados ao lado da pasta.

    Você precisa converter esse caminho http em um caminho ABFS (Azure Blob File System):

    O caminho http de armazenamento é estruturado assim: https://{{AZURE_STORAGE_ACCOUNT}}.blob.core.windows.net/{{AZURE_STORAGE_CONTAINER}}/synapse/workspaces/my_workspace/warehouse/{{TABLE_NAME}}/

    Os caminhos ABFS precisam ser assim: abfss://{{AZURE_STORAGE_CONTAINER}}@{{AZURE_STORAGE_ACCOUNT}}.dfs.core.windows.net/synapse/workspaces/my_workspace/warehouse/{{TABLE_NAME}}/

    Exemplo: abfss://container@storageaccount.dfs.core.windows.net/synapse/workspaces/workspace_name/warehouse/table_name/

  2. Crie um esquema Delta Lake no Trino.

    CREATE SCHEMA delta.default;
    

    Como alternativa, você também pode criar um esquema em uma conta de armazenamento específica:

    CREATE SCHEMA delta.default WITH (location = 'abfss://container@storageaccount.dfs.core.windows.net/trino/');
    
  3. Use o procedimento register_table para criar a tabela.

    CALL delta.system.register_table(schema_name => 'default', table_name => 'table_name', table_location => 'abfss://container@storageaccount.dfs.core.windows.net/synapse/workspaces/workspace_name/warehouse/table_name/');
    
  4. Consulte a tabela para verificar.

    SELECT * FROM delta.default.table_name
    

Escrever tabelas Delta Lake no Synapse Spark

Use format("delta") para salvar um dataframe como uma tabela Delta e, em seguida, você pode usar o caminho onde salvou o dataframe como formato delta para registrar a tabela no Trino.

my_dataframe.write.format("delta").save("abfss://container@storageaccount.dfs.core.windows.net/synapse/workspaces/workspace_name/warehouse/table_name")

Próximos passos

Como configurar o cache no Trino