Freigeben über


Lesen von Delta Lakes-Tabellen (Synapse oder externer Speicherort)

Hinweis

Azure HDInsight on AKS wird am 31. Januar 2025 eingestellt. Vor dem 31. Januar 2025 müssen Sie Ihre Workloads zu Microsoft Fabric oder einem gleichwertigen Azure-Produkt migrieren, um eine abruptes Beendigung Ihrer Workloads zu vermeiden. Die verbleibenden Cluster in Ihrem Abonnement werden beendet und vom Host entfernt.

Bis zum Einstellungsdatum ist nur grundlegende Unterstützung verfügbar.

Wichtig

Diese Funktion steht derzeit als Vorschau zur Verfügung. Die zusätzlichen Nutzungsbedingungen für Microsoft Azure-Vorschauen enthalten weitere rechtliche Bestimmungen, die für Azure-Features in Betaversionen, in Vorschauversionen oder anderen Versionen gelten, die noch nicht allgemein verfügbar gemacht wurden. Informationen zu dieser spezifischen Vorschau finden Sie unter Informationen zur Vorschau von Azure HDInsight on AKS. Bei Fragen oder Funktionsvorschlägen senden Sie eine Anfrage an AskHDInsight mit den entsprechenden Details, und folgen Sie uns für weitere Updates in der Azure HDInsight-Community.

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 on AKS ausführen.

  • ENTF
  • UPDATE
  • INSERT
  • MERGE

Voraussetzungen

Erstellen von Delta Lake-Schemas und -Tabellen

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

  1. Browsen Sie im Speicherkonto mithilfe von Storage browser im Azure-Portal zu dem Speicherort, in dem sich das Basisverzeichnis Ihrer Tabelle befindet. Wenn diese Tabelle aus Synapse stammt, befindet sie sich wahrscheinlich im Pfad synapse/workspaces/.../warehouse/, wird nach der Tabelle benannt und enthält ein _delta_log-Verzeichnis. Wählen Sie Copy URL unter 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 Tabelle zu 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. Fragen Sie die Tabelle zur Bestätigung ab:

    SELECT * FROM delta.default.table_name
    

Schreiben von Delta Lake-Tabellen in Synapse Spark

Verwenden Sie format("delta"), um einen Datenrahmen als Delta-Tabelle zu speichern. Anschließend können Sie den Pfad verwenden, in dem Sie den Datenrahmen im 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

Gewusst wie: Konfigurieren der Zwischenspeicherung in Trino