Teilen über


Delta Lake-Tabellen lesen (Synapse oder externer Speicherort)

Wichtig

Azure HDInsight auf AKS wurde am 31. Januar 2025 eingestellt. Erfahren Sie mit dieser Ankündigung mehr über.

Sie müssen Ihre Workloads zu Microsoft Fabric oder ein gleichwertiges Azure-Produkt migrieren, um eine abrupte Beendigung Ihrer Workloads zu vermeiden.

Wichtig

Dieses Feature befindet sich derzeit in der Vorschau. Die zusätzlichen Nutzungsbedingungen für Microsoft Azure Previews weitere rechtliche Bestimmungen enthalten, die für Azure-Features gelten, die in der Betaversion, in der Vorschau oder auf andere Weise noch nicht in die allgemeine Verfügbarkeit veröffentlicht werden. Informationen zu dieser spezifischen Vorschau finden Sie unter Azure HDInsight auf AKS-Vorschauinformationen. Für Fragen oder Funktionsvorschläge reichen Sie bitte eine Anfrage ein bei AskHDInsight und fügen Sie die Details bei. Folgen Sie uns, um weitere Updates zur Azure HDInsight Communityzu erhalten.

Dieser Artikel enthält eine Übersicht über das Lesen einer Delta Lake-Tabelle ohne Zugriff auf den Metastore (Synapse oder andere Metastores ohne öffentlichen Zugriff).

Sie können die folgenden Vorgänge für die Tabellen mithilfe von Trino mit HDInsight auf AKS ausführen.

  • LÖSCHEN
  • AKTUALISIEREN
  • EINFÜGEN
  • VERSCHMELZEN

Voraussetzungen

Erstellen von Delta Lake-Schemas und -Tabellen

In diesem Abschnitt wird gezeigt, wie Sie eine Delta-Tabelle an einem bereits vorhandenen Speicherort erstellen, vorausgesetzt, Sie haben bereits einen Delta Lake-Katalog konfiguriert.

  1. Durchsuchen Sie das Speicherkonto mithilfe der Storage browser im Azure-Portal, wo sich das Basisverzeichnis Ihrer Tabelle befindet. Wenn diese Tabelle von Synapse stammt, befindet sie sich wahrscheinlich unter einem synapse/workspaces/.../warehouse/-Pfad, wird nach Ihrer Tabelle benannt und enthält ein _delta_log-Verzeichnis. Wählen Sie Copy URL aus den drei Punkten aus, die sich neben dem Ordner befinden.

    Sie müssen diesen HTTP-Pfad in einen ABFS-Pfad (Azure Blob File System) konvertieren:

    Der Http-Speicherpfad ist wie folgt strukturiert: https://{{AZURE_STORAGE_ACCOUNT}}.blob.core.windows.net/{{AZURE_STORAGE_CONTAINER}}/synapse/workspaces/my_workspace/warehouse/{{TABLE_NAME}}/

    ABFS-Pfade müssen wie folgt aussehen: abfss://{{AZURE_STORAGE_CONTAINER}}@{{AZURE_STORAGE_ACCOUNT}}.dfs.core.windows.net/synapse/workspaces/my_workspace/warehouse/{{TABLE_NAME}}/

    Beispiel: abfss://container@storageaccount.dfs.core.windows.net/synapse/workspaces/workspace_name/warehouse/table_name/

  2. Erstellen Sie ein Delta Lake-Schema in Trino.

    CREATE SCHEMA delta.default;
    

    Alternativ können Sie auch ein Schema in einem bestimmten Speicherkonto erstellen:

    CREATE SCHEMA delta.default WITH (location = 'abfss://container@storageaccount.dfs.core.windows.net/trino/');
    
  3. Verwenden Sie die register_table Prozedur, um die Tabellezu erstellen.

    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. Führen Sie eine Abfrage der Tabelle durch, um sie zu überprüfen.

    SELECT * FROM delta.default.table_name
    

Schreiben von Delta Lake-Tabellen in Synapse Spark

Verwenden Sie format("delta"), um einen Datenframe als Delta-Tabelle zu speichern. Anschließend können Sie den Pfad verwenden, in dem Sie den Datenframe als Delta-Format gespeichert haben, um die Tabelle in Trino zu registrieren.

my_dataframe.write.format("delta").save("abfss://container@storageaccount.dfs.core.windows.net/synapse/workspaces/workspace_name/warehouse/table_name")

Nächste Schritte

Konfigurieren der Zwischenspeicherung in Trino