Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Lakeflow Spark Declarative Pipelines (SDP) je deklarativní rámec pro vytváření dávkových a streamovacích datových kanálů v jazycích SQL a Python. Jeho 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í.
Note
Deklarativní kanály Sparku Lakeflow vyžadují plán Premium. Další informace získáte od týmu účtu Databricks.
Co je SDP?
Deklarativní kanály Sparku Lakeflow jsou deklarativní rozhraní pro vývoj a spouštění dávkových a streamovaných datových kanálů v SQL a Pythonu. Lakeflow SDP se rozšiřuje a je kompatibilní s deklarativními kanály Apache Spark, přičemž běží na modulu Runtime optimalizovaném pro výkon. API Lakeflow Spark deklarativních kanálů flows využívá stejné rozhraní API DataFrame jako Apache Spark a strukturované streamování.
Mezi běžné případy použití SDP patří:
- Přírůstkové příjem dat ze zdrojů, jako je cloudové úložiště (Amazon S3, Azure ADLS Gen2 a Google Cloud Storage) a sběrnice zpráv (Apache Kafka, Amazon Kinesis, Google Pub/Sub, Azure EventHub a Apache Pulsear).
- Inkrementální dávkové a streamové transformace s bezstavovými a stavovými operátory.
- Zpracování datových proudů v reálném čase mezi transakčními úložišti, jako jsou sběrnice zpráv a databáze.
Další podrobnosti o deklarativním zpracování dat najdete v tématu Procedurální a deklarativní zpracování dat v Databricks.
Jaké jsou výhody SDP?
Deklarativní povaha protokolu SDP poskytuje následující výhody v porovnání s vývojem datových procesů pomocí rozhraní Apache Spark a rozhraní API strukturovaného streamování Sparku a jejich spouštění pomocí modulu Databricks Runtime pomocí ruční orchestrace prostřednictvím úloh Lakeflow.
- Automatická orchestrace: SDP orchestruje kroky zpracování (označované jako "toky") automaticky, aby se zajistilo správné pořadí provádění a maximální úroveň paralelismu pro optimální výkon. Kanály navíc automaticky a efektivně opakují přechodné selhání. Proces opakování začíná nejpodrobnější a nákladově efektivní jednotkou: úlohou Sparku. Pokud opakování na úrovni úlohy selže, protokol SDP pokračuje opakováním toku a nakonec opakuje celý tok, pokud je to nutné.
- Deklarativní zpracování: SDP poskytuje deklarativní funkce, které můžou snížit stovky nebo dokonce tisíce řádků ručního kódu Sparku a strukturovaného streamování na několik řádků. Rozhraní API SDP AUTO CDC zjednodušuje zpracování událostí cdc (Change Data Capture) s podporou SCD Type 1 i SCD Type 2. Eliminuje potřebu ručního kódu pro zpracování událostí mimo pořadí a nevyžaduje pochopení sémantiky streamování ani konceptů, jako jsou vodoznaky.
- Přírůstkové zpracování: SDP poskytuje modul pro přírůstkové zpracování pro materializovaná zobrazení. Pokud ji chcete použít, napíšete logiku transformace pomocí dávkové sémantiky a modul zpracovává pouze nová data a změny ve zdrojích dat, kdykoli je to možné. Přírůstkové zpracování snižuje neefektivní opětovné zpracování při výskytu nových dat nebo změn ve zdrojích a eliminuje potřebu ručního kódu pro zpracování přírůstkového zpracování.
Klíčové koncepty
Následující diagram znázorňuje nejdůležitější koncepty deklarativních kanálů Lakeflow Sparku.
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 protokolu SDP, který podporuje sémantiku streamování i dávkového zpracování. Tok čte data ze zdroje, použije uživatelsky definovanou logiku zpracování a zapíše výsledek do cíle. SDP sdílí 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í.
Deklarativní kanály Sparku pro Lakeflow také poskytují další typy toků:
- AUTO CDC je jedinečný tok streamování v Lakeflow SDP, který zpracovává neuspořádané události CDC a podporuje SCD Type 1 i SCD Type 2. Automatické CDC není k dispozici v deklarativních kanálech Apache Sparku.
- Materializované zobrazení je dávkové tok v SDP, který zpracovává pouze nová data a změny ve zdrojových tabulkách, kdykoli je to možné.
Podrobnosti najdete v tématu Přírůstkové načítání a zpracování dat pomocí deklarativních kanálů Lakeflow Sparku.
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 naleznete v části Cíle v deklarativních kanálech Lakeflow Spark.
Pipelines
Kanál je jednotka vývoje a spouštění v deklarativních kanálech Sparku Lakeflow a je kontejnerem pro toky, streamované tabulky, materializovaná zobrazení a jímky, které definujete. Protokol SDP použijete 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 streamingové tabulky mimo pipeline, přičemž Azure Databricks za vás spravuje pipeline. Pokud chcete porovnat dva přístupy, podívejte se na samostatné kanály vs. Deklarativní kanály Sparku Lakeflow.
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?.