Co jsou kanály Lakeflow?

Kanály Lakeflow poskytují deklarativní architekturu pro vytváření dávkových a streamovaných datových kanálů v SQL a Python. Jejich základními koncepty jsou kanály, toky, streamované tabulky, materializovaná zobrazení a jímky, které spolupracují na zpracování dat pomocí automatické orchestrace a přírůstkových aktualizací.

Kanály Lakeflow rozšiřují deklarativní kanály Apache Sparku™ (SDP). Další informace o SDP a jeho porovnání s kanály Lakeflow najdete v tématu deklarativní kanály Apache Sparku.

Tip

Jste noví v pipeline? Začněte s Jak používat Lakeflow pipeline, abyste pochopili, jak pipeline používáte během jejich životního cyklu a proč, s odkazy na úkoly v každé fázi.

Note

Kanály Lakeflow vyžadují plán Premium. Další informace získáte od týmu účtu Databricks.

Jaké jsou výhody kanálů?

Na rozdíl od vývoje procesů datového inženýrství pomocí rozhraní Apache Spark a Spark Structured Streaming API v Databricks Runtime s ruční orchestrací prostřednictvím Lakeflow Jobs poskytuje deklarativní povaha pipeline následující výhody:

  • Automatická orchestrace: Kanály spouští kroky zpracování (označované jako "toky") ve správném pořadí s maximálním paralelismu a postupně opakují přechodné selhání – od úlohy Sparku až po celý kanál.
  • Deklarativní zpracování: Deklarativní funkce snižují stovky řádků ručního kódu Sparku a strukturovaného streamování na několik. Rozhraní API AUTO CDC zpracovává události Change Data Capture (CDC), včetně SCD Type 1 a Type 2, bez ručního kódu pro události mimo pořadí nebo koncepty streamování, jako jsou vodoznaky.
  • Přírůstkové zpracování: Modulpřírůstkového zpracování uchovává materializovaná zobrazení aktuální: logiku transformace zapisujete pomocí dávkové sémantiky a modul znovu zpracuje pouze nová nebo změněná zdrojová data, pokud je to možné.

Klíčové koncepty

Následující diagram znázorňuje nejdůležitější koncepty kanálů.

Diagram znázorňující, jak spolu základní koncepty kanálů vzájemně souvisejí na velmi vysoké úrovni

Datové sady

Kanál vytváří tři typy datových sad, z nichž každý má jinou sémantiku zpracování:

Typ datové sady Způsob zpracování záznamů
Tabulka pro streamování Každý záznam je zpracován přesně jednou za předpokladu, že jde o zdroj, do kterého lze pouze přidávat. Tabulky streamování jsou vhodné pro příjem dat a přírůstkové zpracování nepřetržitě rostoucích dat.
Materializované zobrazení Výsledky se přepočítají podle potřeby, aby odrážely aktuální stav dat. Materializovaná zobrazení jsou vhodná pro transformace, agregace nebo předpočítané výsledky využívané více navazujícími datovými sadami.
View Vyhodnoceno na vyžádání, není trvalé. Zobrazení slouží k přechodným transformacím a kontrolám, které není nutné publikovat do katalogu.

Streamovací tabulka je typ spravované tabulky v Unity Catalog, která je zároveň cílem datového proudu. Streamovací tabulka může obsahovat jeden nebo více toků streamování (Append, AUTO CDC), které jsou do ní zapisovány. Toky streamování můžete definovat explicitně a odděleně od jejich cílové tabulky streamování nebo implicitně jako součást definice tabulky streamování.

Materializovaný pohled je také formou tabulky spravované v Unity Catalog a slouží jako cíl dávkového zpracování. Materializované zobrazení může obsahovat jeden nebo více toků dat materializovaného pohledu, které jsou do něho zapsány. Materializovaná zobrazení se liší od streamovaných tabulek, ve které vždy definujete toky implicitně jako součást definice materializovaného zobrazení.

Podrobnosti najdete v tématech Streamované tabulky a Materializovaná zobrazení.

Kdy použít zobrazení, materializovaná zobrazení a streamované tabulky

Při implementaci dotazů v kanálu zvolte typ datové sady, který nejlépe vyhovuje vašemu scénáři použití.

Zvažte použití zobrazení pro:

  • Rozdělte velký nebo složitý dotaz na jednodušší správu dotazů.
  • Ověřte průběžné výsledky pomocí očekávání.
  • Snižte náklady na úložiště a výpočetní prostředky pro výsledky, které nemusíte uchovávat. Vzhledem k tomu, že tabulky jsou materializované, vyžadují další výpočetní prostředky a prostředky úložiště.

Zvažte použití materializovaného zobrazení v následujících případech:

  • Tabulku spotřebovávají více podřízených dotazů. Vzhledem k tomu, že materializované zobrazení ukládá výsledky do mezipaměti, podřízené dotazy čtou předpočítané výsledky místo opětovného výpočtu dotazu na každý přístup.
  • Tabulku spotřebovávají jiné kanály, úlohy nebo dotazy. Protože se materializované zobrazení ukládá jako tabulka v Unity Catalogu, mohou se na ně dotazovat uživatelé mimo kanál, který ho definuje. Zobrazení nejsou materializována, takže je můžete použít pouze v rámci stejné pipeline.
  • Chcete zkontrolovat výsledky dotazu během vývoje. Vzhledem k tomu, že materializované zobrazení je fyzicky uloženo a lze se na něj dotazovat i mimo pipeline, můžete během vývoje ověřit správnost výpočtů. Po ověření převeďte dotazy, které nevyžadují materializaci do zobrazení.
  • Dotaz provádí agregace nebo spojení, případně se zdrojová data můžou měnit v důsledku aktualizací a mazání, namísto toho, aby pouze přibývala. Materializované zobrazení udržuje své výsledky v souladu s aktuálním stavem zdrojových dat, zatímco streamovací tabulka je určená pro zdroje, do kterých se data pouze přidávají, a každý záznam zpracovává právě jednou.

Zvažte použití streamované tabulky v následujících případech:

  • Dotaz je definován proti zdroji dat, který se nepřetržitě nebo přírůstkově zvětšuje.
  • Výsledky dotazu by se měly vypočítat přírůstkově.
  • Kanál potřebuje vysokou propustnost a nízkou latenci.

Note

Streamované tabulky jsou vždy definovány vzhledem ke zdrojům streamování. K aplikaci aktualizací z informačních kanálů CDC můžete také použít streamovací zdroje s AUTO CDC ... INTO. Viz rozhraní API AUTO CDC: Zjednodušte zachytávání změn dat pomocí pipelin.

Flows

Tok je základní koncept zpracování dat v kanálech a podporuje sémantiku streamování i dávkové sémantiky. Tok čte data ze zdroje, použije uživatelsky definovanou logiku zpracování a zapíše výsledek do cíle. Kanály sdílejí stejný typ toku streamování (připojení, aktualizace, dokončení) jako strukturované streamování Sparku. (V současné době jsou zpřístupněny pouze toky připojení a aktualizace .) Další podrobnosti najdete v režimech výstupu ve strukturovaném streamování.

Kanály také poskytují další typy toků:

  • AUTO CDC je jedinečný streamovací tok v kanálech Lakeflow, který zpracovává CDC události mimo pořadí a podporuje SCD typu 1 i SCD typu 2. Auto CDC není k dispozici v SDP.
  • Materializované zobrazení je dávkový tok v pipelinech, který pokud je to možné zpracovává pouze nová data a změny ve zdrojových tabulkách.

Podrobnosti najdete v tématu Přírůstkové načítání a zpracování dat pomocí toků kanálu Lakeflow.

Sinks

Sink je cílový bod pro streamování v datovém kanálu a podporuje Delta tabulky, Apache Kafka témata, Azure EventHubs témata a Pythonové zdroje dat. Do sinku lze zapisovat jeden nebo více streamovacích toků (Append, Update).

Podrobnosti najdete v tématu Jímky v kanálech Lakeflow.

Pipelines

Kanál je jednotka vývoje a spouštění a je kontejnerem pro toky, streamované tabulky, materializovaná zobrazení a jímky, které definujete. Kanál vytvoříte definováním těchto objektů ve zdrojovém kódu kanálu a následným spuštěním kanálu. Během běhu kanálu automaticky analyzuje závislosti definovaných objektů a určuje pořadí jejich provádění i paralelní zpracování.

Podrobnosti najdete v tématu Co jsou kanály?

Můžete také definovat samostatná materializovaná zobrazení a streamované tabulky mimo kanál Lakeflow, kde Azure Databricks spravuje kanál za vás. Pokud chcete porovnat dva přístupy, podívejte se na samostatné kanály a kanály Lakeflow.

Pipeline běží buď v režimu aktivovaném triggerem, nebo v průběžném režimu, což určuje, zda obnovuje dostupná data a zastaví se, nebo s příchodem nových dat udržuje tabulky aktuální. Pro srovnání těchto dvou režimů viz Triggered vs. continuous pipeline mode.

Příjem dat

Kanály podporují všechny zdroje dat dostupné v Azure Databricks. Databricks doporučuje používat streamované tabulky pro většinu případů příjmu dat. Pro soubory v cloudovém objektovém úložišti poskytuje Auto Loader přírůstkové a idempotentní načítání dat. U streamovaných dat můžou kanály ingestovat přímo z sběrnic zpráv, jako jsou Apache Kafka, Azure Event Hubs, Amazon Kinesis a Google Pub/Sub. Viz Načtení dat v kanálech.

Kvalita dat

Očekávání jsou volitelné klauzule u datových sad, které ověřují data při procházení kanálem. Očekávání definujete jako booleovské omezení v SQL a určíte, co se stane, když záznam toto omezení nesplní: zobrazí se varování, záznam se zahodí nebo aktualizace selže. Viz Spravujte kvalitu dat pomocí požadavků na datový potrubí.

Integrace Delta

Všechny tabulky vytvořené a spravované v pipelinech jsou tabulkami Delta. Mají stejné záruky jako Delta Lake, včetně transakcí ACID, cestování v čase a vynucení schématu. Kanály pipeline přidávají další vlastnosti tabulek a provádějí automatickou údržbu pomocí prediktivní optimalizace, včetně operací OPTIMIZE a VACUUM. Viz Co je Delta Lake v Azure Databricks?.

Dodatečné zdroje