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í AvailableNow
to 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.