Używanie usługi Delta Lake w puli SQL
Usługa Delta Lake jest zaprojektowana jako transakcyjna, relacyjna warstwa magazynu dla platformy Apache Spark; w tym pule platformy Spark w usłudze Azure Synapse Analytics. Jednak usługa Azure Synapse Analytics obejmuje również bezserwerowe środowisko uruchomieniowe puli SQL, które umożliwia analitykom danych i inżynierom uruchamianie zapytań SQL względem danych w usłudze Data Lake lub relacyjnej bazie danych.
Uwaga
Dane z tabel usługi Delta Lake można wykonywać tylko w bezserwerowej puli SQL. Nie można aktualizować, wstawiać ani usuwać danych.
Wykonywanie zapytań dotyczących plików sformatowanych w formacie różnicowym za pomocą zestawu OPENROWSET
Bezserwerowa pula SQL w usłudze Azure Synapse Analytics obejmuje obsługę odczytywania plików w formacie różnicowym; umożliwia używanie puli SQL do wykonywania zapytań dotyczących tabel usługi Delta Lake. Takie podejście może być przydatne w scenariuszach, w których chcesz używać tabel Spark i Delta do przetwarzania dużych ilości danych, ale użyj puli SQL do uruchamiania zapytań dotyczących raportowania i analizy przetworzonych danych.
W poniższym przykładzie zapytanie SQL SELECT
odczytuje dane formatu różnicowego OPENROWSET
przy użyciu funkcji .
SELECT *
FROM
OPENROWSET(
BULK 'https://mystore.dfs.core.windows.net/files/delta/mytable/',
FORMAT = 'DELTA'
) AS deltadata
To zapytanie można uruchomić w bezserwerowej puli SQL, aby pobrać najnowsze dane z tabeli usługi Delta Lake przechowywanej w określonej lokalizacji pliku.
Możesz również utworzyć bazę danych i dodać źródło danych, które hermetyzuje lokalizację plików danych usługi Delta Lake, jak pokazano w tym przykładzie:
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;
Uwaga
Podczas pracy z danymi usługi Delta Lake, które są przechowywane w formacie Parquet, najlepiej jest utworzyć bazę danych z sortowaniem opartym na protokole UTF-8 w celu zapewnienia zgodności ciągów.
Wykonywanie zapytań względem tabel wykazu
Bezserwerowa pula SQL w usłudze Azure Synapse Analytics ma współużytkowany dostęp do baz danych w magazynie metadanych Spark, dzięki czemu można wykonywać zapytania dotyczące tabel wykazu utworzonych przy użyciu usługi Spark SQL. W poniższym przykładzie zapytanie SQL w bezserwerowej puli SQL wysyła zapytanie do tabeli wykazu zawierającej dane usługi Delta Lake:
-- 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;
Napiwek
Aby uzyskać więcej informacji na temat używania tabel delty z bezserwerowej puli SQL, zobacz Query Delta Lake files using serverless SQL pool in Azure Synapse Analytics (Wykonywanie zapytań o pliki usługi Delta Lake przy użyciu bezserwerowej puli SQL w usłudze Azure Synapse Analytics) w dokumentacji usługi Azure Synapse Analytics .