Używanie usługi Delta Lake w puli SQL

Ukończone

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;