Použití Delta Lake ve fondu SQL

Dokončeno

Delta Lake je navržena jako transakční a relační vrstva úložiště pro Apache Spark; včetně fondů Spark ve službě Azure Synapse Analytics. Azure Synapse Analytics ale obsahuje také modul runtime bezserverového fondu SQL, který datovým analytikům a technikům umožňuje spouštět dotazy SQL na data v datovém jezeře nebo relační databázi.

Poznámka:

Můžete dotazovat pouze data z tabulek Delta Lake v bezserverovém fondu SQL. Data nemůžete aktualizovat, vkládat ani odstraňovat.

Dotazování rozdílových formátovaných souborů pomocí OPENROWSET

Bezserverový fond SQL ve službě Azure Synapse Analytics zahrnuje podporu čtení souborů delta formátu; umožňuje použít fond SQL k dotazování tabulek Delta Lake. Tento přístup může být užitečný ve scénářích, kdy chcete ke zpracování velkých objemů dat použít tabulky Spark a Delta, ale pomocí fondu SQL můžete spouštět dotazy pro vytváření sestav a analýzu zpracovaných dat.

V následujícím příkladu dotaz SQL SELECT načte rozdílová formátová data pomocí OPENROWSET funkce.

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

Tento dotaz můžete spustit v bezserverovém fondu SQL a načíst nejnovější data z tabulky Delta Lake uložené v zadaném umístění souboru.

Můžete také vytvořit databázi a přidat zdroj dat, který zapouzdřuje umístění datových souborů Delta Lake, jak je znázorněno v tomto příkladu:

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;

Poznámka:

Při práci s daty Delta Lake, která jsou uložena ve formátu Parquet, je obecně nejlepší vytvořit databázi s kolací založenou na UTF-8, aby se zajistila kompatibilita řetězců.

Dotazování tabulek katalogu

Bezserverový fond SQL ve službě Azure Synapse Analytics má sdílený přístup k databázím v metastoru Sparku, takže můžete dotazovat tabulky katalogu vytvořené pomocí Spark SQL. V následujícím příkladu dotaz SQL v bezserverovém fondu SQL dotazuje tabulku katalogu, která obsahuje data 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;

Tip

Další informace o používání tabulek Delta z bezserverového fondu SQL najdete v tématu Dotazování souborů Delta Lake pomocí bezserverového fondu SQL ve službě Azure Synapse Analytics v dokumentaci k Azure Synapse Analytics.