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.
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 caminhosynapse/workspaces/.../warehouse/
, terá o nome da sua tabela e conterá um diretório_delta_log
. SelecioneCopy 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/
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/');
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/');
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")