Verwenden von Delta Lake in einem SQL-Pool

Abgeschlossen

Delta Lake ist als transaktionsbezogene, relationale Speicherebene für Apache Spark konzipiert; einschließlich Spark-Pools in Azure Synapse Analytics. Azure Synapse Analytics umfasst jedoch auch eine serverlose SQL-Poollaufzeit, mit der Datenanalysten und Techniker SQL-Abfragen für Daten in einem Data Lake oder einer relationalen Datenbank ausführen können.

Hinweis

Sie können nur Daten aus Delta Lake-Tabellen in einem serverlosen SQL-Pool abfragen . Daten können nicht aktualisiert, eingefügt oder gelöscht werden .

Abfragen von delta formatierten Dateien mit OPENROWSET

Der serverlose SQL-Pool in Azure Synapse Analytics umfasst Unterstützung für das Lesen von Delta-Formatdateien; Sie können den SQL-Pool verwenden, um Delta Lake-Tabellen abzufragen. Dieser Ansatz kann in Szenarien hilfreich sein, in denen Sie Spark- und Delta-Tabellen verwenden möchten, um große Datenmengen zu verarbeiten, aber verwenden Sie den SQL-Pool, um Abfragen zur Berichterstellung und Analyse der verarbeiteten Daten auszuführen.

Im folgenden Beispiel liest eine SQL-SELECT-Abfrage Delta-Formatdaten mithilfe der OPENROWSET-Funktion.

SELECT *
FROM
    OPENROWSET(
        BULK 'https://mystore.dfs.core.windows.net/files/delta/mytable/',
        FORMAT = 'DELTA'
    ) AS deltadata

Sie können diese Abfrage in einem serverlosen SQL-Pool ausführen, um die neuesten Daten aus der Delta Lake-Tabelle abzurufen, die im angegebenen Dateispeicherort gespeichert ist.

Sie können auch eine Datenbank erstellen und eine Datenquelle hinzufügen, die den Speicherort Ihrer Delta Lake-Datendateien kapselt, wie in diesem Beispiel gezeigt:

CREATE DATABASE MyDB
      COLLATE Latin1_General_100_BIN2_UTF8;
GO;

USE MyDB;
GO

CREATE EXTERNAL DATA SOURCE DeltaLakeStore
WITH
(
    LOCATION = 'https://mystore.dfs.core.windows.net/files/delta/'
);
GO

SELECT TOP 10 *
FROM OPENROWSET(
        BULK 'mytable',
        DATA_SOURCE = 'DeltaLakeStore',
        FORMAT = 'DELTA'
    ) as deltadata;

Hinweis

Beim Arbeiten mit Delta Lake-Daten, die im Parkettformat gespeichert sind, empfiehlt es sich im Allgemeinen, eine Datenbank mit einer UTF-8-basierten Sortierung zu erstellen, um die Zeichenfolgenkompatibilität sicherzustellen.

Abfragen von Katalogtabellen

Der serverlose SQL-Pool in Azure Synapse Analytics hat gemeinsamen Zugriff auf Datenbanken im Spark-Metastore, sodass Sie Katalogtabellen abfragen können, die mit Spark SQL erstellt wurden. Im folgenden Beispiel fragt eine SQL-Abfrage in einem serverlosen SQL-Pool eine Katalogtabelle ab, die Delta Lake-Daten enthält:

-- By default, Spark catalog tables are created in a database named "default"
-- If you created another database using Spark SQL, you can use it here
USE default;

SELECT * FROM MyDeltaTable;

Tipp

Weitere Informationen zur Verwendung von Delta-Tabellen aus einem serverlosen SQL-Pool finden Sie unter Query Delta Lake-Dateien mit serverlosen SQL-Pool in Azure Synapse Analytics in der Dokumentation zu Azure Synapse Analytics.