Co je Delta Lake v Azure Databricks?

Delta Lake je optimalizovaná vrstva úložiště, která poskytuje základ pro tabulky v lakehouse na platformě Databricks. Delta Lake je open-sourceový software, který rozšiřuje datové soubory Parquet o souborový transakční protokol pro ACID transakce a škálovatelné zpracování metadat. Delta Lake je plně kompatibilní s rozhraními Apache Spark API a byl vyvinut pro úzkou integraci se strukturovaným streamováním, takže můžete snadno použít jednu kopii dat pro dávkové i streamovací operace a poskytovat přírůstkové zpracování ve velkém měřítku.

Delta Lake je výchozí formát pro všechny operace v Azure Databricks. Pokud není uvedeno jinak, všechny tabulky v Azure Databricks jsou tabulky Delta Lake. Databricks původně vyvinul protokol Delta Lake a nadále aktivně přispívá do opensourcového projektu. Mnoho optimalizací a produktů na platformě Databricks vychází ze záruk poskytovaných Apache Sparkem a Delta Lake. Informace o optimalizacích v Azure Databricks najdete v doporučeních pro optimalizaci v Azure Databricks.

Referenční informace o příkazech Delta Lake SQL najdete v tématu Příkazy Delta Lake.

Transakční protokol Delta Lake má dobře definovaný otevřený protokol, který může jakýkoli systém použít ke čtení protokolu. Viz protokol transakčního protokolu Delta.

Začínáme s Delta Lake

Všechny tabulky na Azure Databricks jsou ve výchozím nastavení tabulky Delta Lake. Bez ohledu na to, jestli používáte datové rámce Apache Spark nebo SQL, získáte všechny výhody Delta Lake tím, že data uložíte do jezera s výchozím nastavením.

Příklady základních operací Delta Lake, jako jsou vytváření tabulek, čtení, zápis a aktualizace dat, najdete v tématu Kurz: Vytváření a správa tabulek Delta Lake.

Doporučení a osvědčené postupy pro používání Služby Delta Lake pro Databricks najdete v tématu Osvědčené postupy: Delta Lake.

Převod a zpracování dat na Delta Lake

Azure Databricks nabízí řadu funkcí, které urychlují a zjednodušují načítání dat do vašeho lakehouse.

Method Description
Kurz: Sestavení kanálu ETL pomocí deklarativních kanálů Sparku Lakeflow Vytvořte ucelený kanál ETL pomocí deklarativních kanálů Sparku Lakeflow.
Nastavení přírůstkového příjmu dat ze služby Azure Data Lake Storage Nastavte inkrementální ingesti dat z cloudového úložiště pomocí Auto Loaderu a Lakeflow Spark Declarative Pipelines.
tabulky streamování Použijte streamovací tabulky pro příjem dat pouze přidáváním a streamování s nízkou latencí v Lakeflow Spark Declarative Pipelines.
Začínáme používat COPY INTO k načtení dat Načtěte data přírůstkově a idempotentně z cloudového úložiště pomocí SQL.
Co je Auto Loader? Načítání souborů z cloudového úložiště postupně podle toho, jak přicházejí.
Vytvoření nebo úprava tabulky pomocí nahrání souboru Nahrajte soubory a vytvořte tabulky z uživatelského rozhraní Azure Databricks.
Inkrementálně klonovat tabulky Parquet a Apache Iceberg do Delta Lake Inkrementálně klonujte tabulky Parquet nebo Apache Iceberg do Delta Lake.
Převést na Delta Lake Jednorázový převod tabulek Parquet nebo Apache Iceberg do formátu Delta Lake.
Technologickí partneři Připojte partnery a nástroje třetích stran k Azure Databricks lakehouse.

Úplný seznam možností příjmu dat najdete v tématu Standardní konektory v Lakeflow Connect.

Aktualizace a úpravy tabulek Delta Lake

Atomické transakce s Delta Lake umožňují použít mnoho možností pro aktualizaci dat a metadat. Aby se zabránilo poškození tabulek, databricks doporučuje vyhnout se přímé interakci se soubory dat a transakčních protokolů v adresářích souborů Delta Lake.

Operation Description
Přenesení do tabulky Delta Lake pomocí sloučení Přenesení dat do tabulky Delta Lake pomocí operace sloučení
Selektivní přepsání dat pomocí Delta Lake Přepište podmnožiny dat na základě filtrů a partitionů.
Aktualizace schémat tabulek s využitím vývoje schématu Ručně nebo automaticky aktualizujte schéma tabulky bez přepsání dat.
Přejmenujte a vyřaďte sloupce pomocí mapování sloupců Delta Lake Přejmenujte nebo odstraňte sloupce bez přepsání dat.

Přírůstkové a streamované úlohy v Delta Lake

Delta Lake je optimalizovaná pro strukturované streamování v Azure Databricks. Deklarativní kanály Sparku Lakeflow rozšiřují integrované funkce se zjednodušeným nasazením infrastruktury, vylepšeným škálováním a závislostmi spravovaných dat.

Feature Description
Streamované čtení a zápisy tabulek Delta Lake Tabulky Delta Lake použijte jako zdroje a jímky pro strukturované streamování s readStream a writeStream.
Použití zdroje změn dat v Azure Databricks Sledování změn na úrovni řádků mezi verzemi tabulky Delta Lake nebo Apache Iceberg v3

Provádění dotazů na předchozí verze tabulky

Každý zápis do tabulky Delta Lake vytvoří novou verzi tabulky. Pomocí transakčního protokolu můžete zkontrolovat úpravy tabulky a dotazovat se na předchozí verze tabulek. Viz Práce s historií tabulek.

Vylepšení schématu Delta Lake

Delta Lake ověřuje schéma při zápisu a zajišťuje, aby všechna data zapsaná do tabulky odpovídala požadavkům, které jste nastavili.

Feature Description
vynucování schématu Ověřte kvalitu dat vynucením schématu při zápisu.
Omezení v Azure Databricks Použijte vynucená omezení integrity a informativní omezení primárního klíče, cizího klíče a jedinečnosti.
sloupce generované službou Delta Lake Automaticky generovat hodnoty sloupců pomocí uživatelem zadaných funkcí.
Obohacení tabulek vlastními metadaty Přidáním komentářů a vlastních metadat do tabulek a sloupců můžete rozšířit zjišťování dat.

Správa souborů a indexování dat pomocí Delta Lake

Azure Databricks nastavuje mnoho výchozích parametrů pro Delta Lake, které mají vliv na velikost datových souborů a počet verzí tabulek, které se uchovávají v historii. Delta Lake používá kombinaci analýzy metadat a rozložení fyzických dat ke snížení počtu naskenovaných souborů pro splnění jakéhokoli dotazu.

Feature Description
Použijte kapalinové shlukování pro tabulky Zjednodušte rozložení dat a optimalizujte výkon dotazů bez dělení pomocí clusteringu liquid.
Přeskočení dat Přeskakujte nerelevantní soubory během zpracování dotazu pomocí statistik sloupců, řazení Z-order a optimalizovaného rozložení dat.
Optimalizace rozložení datového souboru Komprimovat malé datové soubory za účelem zlepšení výkonu dotazů
Odeberte nepoužívané datové soubory pomocí vacuum Odebrání zastaralých datových souborů za účelem snížení nákladů na úložiště
Automatické odstraňování řádků s automatickou dobou životnosti Automaticky odstranit řádky ze spravovaných tabulek po konfigurovatelném časovém období
Řízení velikosti datového souboru Velikost cílového souboru můžete řídit ručně nebo povolit automatické ladění velikosti souboru.

Konfigurace a kontrola nastavení Delta Lake

Azure Databricks ukládá všechna data a metadata pro tabulky Delta Lake v cloudovém úložišti objektů. Mnoho konfigurací je možné nastavit na úrovni tabulky nebo v rámci relace Sparku. Podrobnosti tabulky Delta Lake si můžete projít a zjistit, jaké možnosti jsou nakonfigurované.

Feature Description
Zkontrolujte podrobnosti tabulky pomocí příkazu describe detail Pomocí příkazu DESCRIBE DETAIL můžete zobrazit konfigurace tabulek a metadata.
Referenční informace k vlastnostem tabulky Referenční seznam vlastností tabulek dostupných pro tabulky Delta Lake

Datové kanály využívající deklarativní kanály Delta Lake a Lakeflow Spark

Azure Databricks podporuje uživatele k využití architektury medallion ke zpracování dat prostřednictvím řady tabulek v rámci čištění a obohacování. Deklarativní kanály Sparku Lakeflow zjednodušuje úlohy ETL prostřednictvím optimalizovaného spouštění a automatizovaného nasazení a škálování infrastruktury.

Kompatibilita funkcí Delta Lake

Ne všechny funkce Delta Lake jsou ve všech verzích Databricks Runtime. Informace o správě verzí Delta Lake najdete v tématu Kompatibilita a protokoly funkcí Delta Lake.

Dokumentace k rozhraní Delta Lake API

U většiny operací čtení a zápisu v tabulkách Delta Lake můžete použít rozhraní API Spark SQL nebo Apache Spark DataFrame .

Příkazy SQL specifické pro Delta Lake najdete v tématu Příkazy Delta Lake.

Azure Databricks zajišťuje binární kompatibilitu s rozhraními Delta Lake API v Databricks Runtime. Pokud chcete zobrazit verzi rozhraní Delta Lake API zabalenou v každé verzi databricks Runtime, přečtěte si část Systémové prostředí v příslušném článku v poznámkách k verzi databricks Runtime. Dokumentaci k rozhraním Delta Lake API pro Python, Scala a Javu najdete v dokumentaci k OSS Delta Lake.