Co je Delta Lake?
Delta Lake je optimalizovaná vrstva úložiště, která poskytuje základ pro tables 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 tables v Azure Databricks jsou delta tables. 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 tables v Azure Databricks jsou ve výchozím nastavení Delta tables. Bez ohledu na to, jestli používáte Apache Spark datových rámců nebo SQL, get 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í tables, č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:
- Kurz: Spuštění první úlohy ETL v Databricks
- Načítání dat pomocí streamování tables (poznámkový blok Python/SQL)
- Načtení dat pomocí streamingu tables v Databricks SQL
- 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
Pro kompletní list možností příjmu dat se podívejte na Příjem dat do datového jezera Databricks.
Aktualizace a úpravy Delta Lake tables
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, aby nedošlo k poškození vašeho tables.
- Delta Lake podporuje upserty pomocí operace sloučení. Podívejte se na Upsert do Delta Lake table 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
- Můžete ručně nebo automaticky update svůj tableschema, aniž byste přepsali data. Podívejte se na Update Delta Lake tableschema.
- Povolením mapování columns přejmenujte nebo odstraňte columns bez přepsání dat. Viz Přejmenování a vyřazení columns s mapováním Delta Lakecolumn.
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í možnosti díky zjednodušenému nasazení infrastruktury, rozšířenému škálování a závislostem spravovaných dat.
Dotaz na předchozí verze table
Každý zápis do Delta table vytváří novou verzi table. Pomocí transakčního protokolu můžete zkontrolovat úpravy table a dotazovat se na předchozí verze table. Vizte práci s historií table Delta Lake.
Vylepšení Delta Lake schema
Delta Lake ověřuje schema při zápisu a zajišťuje, aby všechna data zapsaná do table odpovídala požadavkům, které jste set.
- Schema vynucení
- Omezení v Azure Databricks
- Delta Lake vygeneroval columns
- Obohaťte tables Delta Lake vlastními metadaty
Správa souborů a indexování dat pomocí Delta Lake
Azure Databricks nastavuje mnoho výchozích parameters pro Delta Lake, které mají vliv na velikost datových souborů a počet table verzí, 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žijte shlukování tekutin pro Delta tables
- Přeskočení dat pro Delta Lake
- Optimize rozložení datového souboru
- Remove nepoužívané datové soubory s 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 Delta Lake tables v cloudovém úložišti objektů. Mnoho konfigurací může být set na úrovni table nebo v rámci relace Spark. Můžete zkontrolovat podrobnosti Delta table a zjistit, jaké možnosti jsou nakonfigurovány.
- Projděte si podrobnosti table Delta Lake pomocí příkazu přehledu detailu
- Delta table odkazy na vlastnosti
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 tables, jak se data vyčistí a obohacují. 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
U většiny operací čtení a zápisu v
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.