Sdílet prostřednictvím


Konfigurace intervalů triggeru strukturovaného streamování

Apache Spark Structured Streaming zpracovává data přírůstkově; řízení intervalu aktivační události pro dávkové zpracování umožňuje používat strukturované streamování pro úlohy včetně zpracování téměř v reálném čase, aktualizace databází každých 5 minut nebo jednou za hodinu nebo dávkové zpracování všech nových dat za den nebo týden.

Vzhledem k tomu, že Auto Loader Databricks používá strukturované streamování k načtení dat, pochopení toho, jak triggery fungují, nabízí největší flexibilitu pro řízení nákladů při příjmu dat s požadovanou frekvencí.

Určení časových intervalů aktivačních událostí

Strukturované streamování označuje intervaly aktivačních událostí na základě času jako "mikrodávky s pevným intervalem". Pomocí klíčového processingTime slova zadejte dobu trvání jako řetězec, například .trigger(processingTime='10 seconds').

Když zadáte trigger interval, který je příliš malý (méně než desítky sekund), systém může provádět zbytečné kontroly, aby zjistil, jestli dorazí nová data. Nakonfigurujte dobu zpracování tak, aby vyvažovaly požadavky na latenci a rychlost, kterou data přicházejí do zdroje.

Konfigurace přírůstkového dávkového zpracování

Důležité

Ve službě Databricks Runtime 11.3 LTS a vyšší Trigger.Once je nastavení zastaralé. Databricks doporučuje používat Trigger.AvailableNow pro všechny úlohy přírůstkového dávkového zpracování.

Dostupná možnost triggeru teď využívá všechny dostupné záznamy jako přírůstkovou dávku s možností konfigurace velikosti dávky s možnostmi, jako maxBytesPerTrigger jsou (možnosti velikosti se liší podle zdroje dat).

Azure Databricks podporuje použití Trigger.AvailableNow pro přírůstkové dávkové zpracování z mnoha zdrojů strukturovaného streamování. Následující tabulka obsahuje minimální podporovanou verzi databricks Runtime požadovanou pro každý zdroj dat:

Zdroj Minimální verze databricks Runtime
Zdroje souborů (JSON, Parquet atd.) 9.1 LTS
Delta Lake 10.4 LTS
Automatický zavaděč 10.4 LTS
Apache Kafka 10.4 LTS
Kineze 13.1

Jaký je výchozí interval triggeru?

Strukturované streamování ve výchozím nastavení je nastavené na mikrodály s pevným intervalem 500 ms. Databricks doporučuje vždy zadat přizpůsobenou míru trigger , která minimalizuje náklady spojené s kontrolou, jestli nová data dorazí a zpracovávají podsazené dávky.

Změna intervalů aktivačních událostí mezi spuštěními

Můžete změnit interval aktivační události mezi spuštěními při použití stejného kontrolního bodu.

Pokud se úloha strukturovaného streamování zastaví při zpracování mikrodávkové dávky, musí se tato mikrodávka dokončit, než se použije nový interval triggeru. V takovém případě můžete po změně intervalu aktivační události sledovat mikrodávkové zpracování s dříve zadanými nastaveními.

Při přechodu z časového intervalu na použití AvailableNowto může vést k mikrodávkovému zpracování před zpracováním všech dostupných záznamů jako přírůstkové dávky.

Při přechodu z AvailableNow do časového intervalu to může vést k pokračování zpracování všech záznamů, které byly k dispozici při aktivaci poslední AvailableNow úlohy. Toto je očekávané chování.

Poznámka:

Pokud se pokoušíte zotavit z selhání dotazu přidruženého k přírůstkové dávce, změna intervalu triggeru tento problém nevyřeší, protože dávka musí být stále dokončena. Databricks doporučuje vertikálně navýšit kapacitu výpočetní kapacity používanou ke zpracování dávky a pokusit se problém vyřešit. Ve výjimečných případech možná budete muset stream restartovat pomocí nového kontrolního bodu.

Co je režim průběžného zpracování?

Apache Spark podporuje další interval triggeru označovaný jako průběžné zpracování. Tento režim byl klasifikován jako experimentální od Sparku 2.3; obraťte se na svůj tým účtů Azure Databricks a ujistěte se, že rozumíte kompromisům tohoto modelu zpracování.

Všimněte si, že tento režim průběžného zpracování nesouvisí vůbec s průběžným zpracováním, jak je použito v rozdílových živých tabulkách.