Condividi tramite


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.

  1. 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 percorso synapse/workspaces/.../warehouse/ e che prenda il nome dalla tabella e contenga una directory _delta_log. Selezionare Copy 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/

  2. 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/');
    
  3. 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/');
    
  4. 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")

Passaggi successivi

Come configurare la memorizzazione nella cache in Trino