Tabelle Delta Lake in lettura (Synapse o posizione esterna)
Nota
Azure HDInsight su AKS verrà ritirato il 31 gennaio 2025. Prima del 31 gennaio 2025, sarà necessario eseguire la migrazione dei carichi di lavoro a Microsoft Fabric o a un prodotto Azure equivalente per evitare interruzioni improvvise dei carichi di lavoro. I cluster rimanenti nella sottoscrizione verranno arrestati e rimossi dall’host.
Solo il supporto di base sarà disponibile fino alla data di ritiro.
Importante
Questa funzionalità è attualmente disponibile solo in anteprima. Le Condizioni per l'utilizzo supplementari per le anteprime di Microsoft Azure includono termini legali aggiuntivi che si applicano a funzionalità di Azure in versione beta, in anteprima o in altro modo non ancora disponibili a livello generale. Per informazioni su questa anteprima specifica, vedere Informazioni sull'anteprima di Azure HDInsight nel servizio Azure Kubernetes. Per domande o suggerimenti sulle funzionalità, inviare una richiesta in AskHDInsight con i dettagli e seguire Microsoft per altri aggiornamenti nella Community di Azure HDInsight.
Questo articolo offre una panoramica di come leggere una tabella Delta Lake senza avere accesso al metastore (Synapse o altri metastore senza accesso pubblico).
È possibile eseguire le operazioni seguenti sulle tabelle utilizzando Trino con Microsoft Azure HDInsight su AKS.
- DELETE
- UPDATE
- INSERT …
- MERGE
Prerequisiti
Creare schemi e tabelle Delta Lake
In questa sezione viene illustrato come creare una tabella Delta in una posizione preesistente, dato che è già stato configurato un catalogo Delta Lake.
Esplorare l'account di archiviazione usando
Storage browser
nel portale di Azure in cui si trova la directory di base della tabella. Se la tabella ha origine in Synapse, è probabile che si trovi in un percorsosynapse/workspaces/.../warehouse/
e che prenda il nome dalla tabella e contenga una directory_delta_log
. SelezionareCopy URL
dai tre puntini che si trovano accanto alla cartella.È necessario convertire questo percorso HTTP in un percorso ABFS (Azure Blob File System):
Il percorso HTTP di archiviazione è strutturato come segue:
https://{{AZURE_STORAGE_ACCOUNT}}.blob.core.windows.net/{{AZURE_STORAGE_CONTAINER}}/synapse/workspaces/my_workspace/warehouse/{{TABLE_NAME}}/
I percorsi ABFS devono avere un aspetto simile al seguente:
abfss://{{AZURE_STORAGE_CONTAINER}}@{{AZURE_STORAGE_ACCOUNT}}.dfs.core.windows.net/synapse/workspaces/my_workspace/warehouse/{{TABLE_NAME}}/
Esempio:
abfss://container@storageaccount.dfs.core.windows.net/synapse/workspaces/workspace_name/warehouse/table_name/
Creare uno schema Delta Lake in Trino.
CREATE SCHEMA delta.default;
In alternativa, è anche possibile creare uno schema in un account di archiviazione specifico:
CREATE SCHEMA delta.default WITH (location = 'abfss://container@storageaccount.dfs.core.windows.net/trino/');
Utilizzare la procedura
register_table
per creare la tabella.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/');
Eseguire una query sulla tabella per verificare.
SELECT * FROM delta.default.table_name
Scrivere tabelle Delta Lake in Synapse Spark
Usare format("delta")
per salvare un dataframe come tabella Delta, quindi è possibile usare il percorso in cui è stato salvato il dataframe come formato delta per registrare la tabella in Trino.
my_dataframe.write.format("delta").save("abfss://container@storageaccount.dfs.core.windows.net/synapse/workspaces/workspace_name/warehouse/table_name")