Co je Delta Lake?
Delta Lake je optimalizovaná vrstva úložiště, která poskytuje základ pro tabulky v lakehouse v 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í tabulkami Delta. 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 je vytváření tabulek, čtení, zápis a aktualizace dat, najdete v tématu Kurz: 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í příjmu dat najdete v tématu Ingestování dat do datového jezera Databricks Lakehouse.
Aktualizace a úprava 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í sloučení.
- 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. Viz Přejmenování a vyřazení sloupců s mapováním 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řuje nativní funkce díky zjednodušenému nasazení infrastruktury, rozšířenému škálování a závislostem spravovaných dat.
- Čtení a zápisy streamovaných tabulek Delta
- Použití datového kanálu změn Delta Lake v Azure Databricks
Dotazování na předchozí verze tabulky
Každý zápis do tabulky Delta vytvoří novou verzi tabulky. Transakční protokol můžete použít ke kontrole úprav tabulky a dotazování jejích předchozích verzí. Přečtěte si: Práce s historií tabulky 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.
- Vynucení schématu
- Omezení v Azure Databricks
- Vygenerované sloupce Delta Lake
- Obohacení tabulek Delta Lake o vlastní metadata
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í clusteringu liquid pro tabulky Delta
- Přeskočení dat pro Delta Lake
- Optimalizace rozložení datového souboru
- Odebrání nepoužívaných datových souborů s automatickým úklidem
- 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 živé tabulky Delta
Azure Databricks doporučuje uživatelům využít architekturu medailonu 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 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
Pro většinu operací čtení a zápisu v tabulkách Delta můžete použít rozhraní API Spark SQL nebo Apache Spark DataFrame .
Příkazy SQL Delta Lake-spefic 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.