Lesen von Delta Lakes-Tabellen (Synapse oder externer Speicherort)
Wichtig
Diese Funktion steht derzeit als Vorschau zur Verfügung. Die ergänzenden Nutzungsbedingungen für Microsoft Azure-Vorschauversionen enthalten weitere rechtliche Bedingungen, die für Azure-Funktionen in Betaversionen, Vorschauversionen oder anderen Versionen gelten, die noch nicht allgemein verfügbar gemacht wurden. Informationen zu dieser spezifischen Vorschau finden Sie unter Informationen zur Vorschauversion 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.
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 Pfadsynapse/workspaces/.../warehouse/
, wird nach der Tabelle benannt und enthält ein_delta_log
-Verzeichnis. Wählen SieCopy 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/
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/');
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/');
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
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Tickets als Feedbackmechanismus für Inhalte auslaufen lassen und es durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unter:Einreichen und Feedback anzeigen für