Použití Delta Lake ve fondu SQL
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.