Condividi tramite


Leggi le tabelle Delta Lake (Synapse o posizione esterna)

Importante

Azure HDInsight su AKS è stato ritirato il 31 gennaio 2025. Scopri di più con questo annuncio.

È necessario eseguire la migrazione dei carichi di lavoro a Microsoft Fabric o a un prodotto Azure equivalente per evitare la chiusura brusca dei carichi di lavoro.

Importante

Questa funzionalità è attualmente in anteprima. Le condizioni supplementari per l'utilizzo per le anteprime di Microsoft Azure includono termini legali più validi applicabili alle funzionalità di Azure in versione beta, in anteprima o altrimenti non ancora rilasciate nella disponibilità generale. Per informazioni su questa anteprima specifica, vedere informazioni sull'anteprima di Azure HDInsight su AKS. Per domande o suggerimenti sulle funzionalità, inviare una richiesta in AskHDInsight con i dettagli e seguireci per altri aggiornamenti su 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 usando Trino con HDInsight nel servizio Azure Kubernetes.

  • CANCELLARE
  • AGGIORNARE
  • INSERIRE
  • UNIRE

Prerequisiti

Creare gli schemi e le 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. Esplora l'account di archiviazione nel portale di Azure utilizzando il Storage browser per accedere alla directory di base della tua tabella. Se questa tabella ha origine in Synapse, è probabile che si trovi in un percorso synapse/workspaces/.../warehouse/, che sia denominata con il nome della tua tabella e che contenga una directory _delta_log. Selezionare Copy URL dai tre puntini posizionati 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 in 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