Co je Delta Lake?
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. 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 v Azure Databricks jsou ve výchozím nastavení tabulky Delta. Bez ohledu na to, jestli používáte Apache Spark DataFrame nebo SQL, získáte všechny výhody Delta Lake tím, že data uložíte do lakehouse 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 kurzu: Delta Lake.
Databricks nabízí řadu doporučení pro osvědčené postupy pro Delta Lake.
Převod a zpracování dat na Delta Lake
Azure Databricks poskytuje řadu produktů, které urychlují a zjednodušují načítání dat do Lakehouse.
DLT:
Jednorázový převod dat z Parquet, nebo Iceberg na Delta Lake
Úplný seznam možností nahrání dat najdete v tématu Nahrání dat do Azure Databricks Lakehouse.
Aktualizace a úpravy tabulek Delta Lake
Atomické transakce s Delta Lake poskytují mnoho možností pro aktualizaci dat a metadat. Databricks doporučuje vyhnout se přímé interakci se soubory dat a transakčních protokolů v adresářích souborů Delta Lake, abyste se vyhnuli poškození tabulek.
- Delta Lake podporuje upserty pomocí operace sloučení. Viz Upsert do tabulky Delta Lake pomocí slučování.
- Delta Lake nabízí řadu možností selektivního přepsání na základě filtrů a partic. Viz selektivní přepsání dat pomocí Delta Lake.
- Schéma tabulky můžete aktualizovat ručně nebo automaticky bez přepsání dat. Viz Aktualizace schématu tabulky Delta Lake.
- Povolte mapování sloupců pro přejmenování nebo odstranění sloupců bez přepsání dat. Viz Přejmenování a vyřazení sloupců v rámci mapování sloupců Delta Lake.
Přírůstkové a streamované úlohy v Delta Lake
Delta Lake je optimalizovaná pro strukturované streamování v Azure Databricks. DLT rozšiřuje nativní možnosti díky zjednodušenému nasazení infrastruktury, rozšířenému škálování a závislostem spravovaných dat.
- Streamované čtení a zápis v Delta tabulkách
- Použijte kanál datových změn Delta Lake v Azure Databricks
Provádění dotazů na předchozí verze tabulky
Každý zápis do tabulky Delta vytvoří novou verzi tabulky. Pomocí transakčního protokolu můžete zkontrolovat úpravy tabulky a dotazovat se na předchozí verze tabulek. Podívejte se na Pracovat s historií tabulek Delta Lake.
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.
- vynucování schématu
- Omezení v Azure Databricks
- sloupce generované službou Delta Lake
- rozšíření tabulek Delta Lake vlastními metadaty
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.
- Použití kapalinového clusteringu pro tabulky Delta
- Přeskočení dat pro Delta Lake
- Optimalizace rozložení datového souboru
- Odeberte nepoužívané datové soubory pomocí vacuum
- Konfigurace Delta Lake pro řízení velikosti datového 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 můžete zkontrolovat a zjistit, jaké možnosti jsou nakonfigurované.
Datové kanály využívající Delta Lake a DLT
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í. DLT 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 Jak Azure Databricks spravuje kompatibilitu funkcí Delta Lake?.
Dokumentace k rozhraní Delta Lake API
U většiny operací čtení a zápisu v tabulkách Delta můžete použít Spark SQL nebo rozhraní API DataFrame Apache Spark.
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.