Condividi tramite


Leggere le tabelle Delta Lake (Synapse o posizione esterna)

Importante

Questa funzionalità è attualmente disponibile solo in anteprima. Le condizioni per l'utilizzo supplementari per le anteprime di Microsoft Azure includono termini legali più validi applicabili alle funzionalità di Azure disponibili in versione beta, in anteprima o non ancora rilasciate nella disponibilità 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 usando Trino con HDInsight nel servizio Azure Kubernetes.

  • 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 nella portale di Azure in cui si trova la directory di base della tabella. Se la tabella ha origine in Synapse, è probabile che si tratti di un synapse/workspaces/.../warehouse/ percorso e che sia denominata dopo la tabella e contenga una _delta_log directory. Selezionare Copy URL tra i 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 register_table procedura 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 differenziale 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