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 opensourcový software , který rozšiřuje datové soubory Parquet o souborový transakční protokol pro transakce ACID 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 delta transakčního protokolu.
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 datových rámců 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 kurzu: Delta Lake.
Databricks nabízí řadu doporučení pro osvědčené postupy pro Delta Lake.
Převod a ingestování dat na Delta Lake
Azure Databricks poskytuje řadu produktů, které urychlují a zjednodušují načítání dat do jezera.
- Delta Live Tables:
- COPY INTO
- Automatický zavaděč
- Přidání uživatelského rozhraní pro data
- Přírůstkový převod dat Parquet nebo Iceberg na Delta Lake
- Jednorázový převod dat Parquet nebo Iceberg na Delta Lake
- Partneři třetích stran
Úplný seznam možností zpracování dat najdete v tématu () Zpracování dat v Lakehouse Databricks ().
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í. Podívejte se na Upsert v tabulce Delta Lake použitím slučování.
- Delta Lake nabízí řadu možností selektivního přepsání na základě filtrů a oddílů. Zobrazení selektivního 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. Vizte Přejmenování a vyřazení sloupců pomocí 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. Delta Live Tables rozšiřují nativní možnosti díky zjednodušenému nasazení infrastruktury, zlepšenému škálování a spravovaným závislostem dat.
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. Viz Práce 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 Delta Live Tables
Azure Databricks podporuje uživatele, aby využili architekturu medailiónu ke zpracování dat prostřednictvím řady tabulek, protože data se čistí a rozšiřuje. Delta Live Tables zjednodušuje úlohy ETL optimalizovaným vykonáváním a automatizovaným nasazováním a škálováním 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.