Sdílet prostřednictvím


Konfigurace intervalů spuštění 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šší, je nastavení Trigger.Once zastaralé. Databricks doporučuje používat Trigger.AvailableNow pro všechny úlohy přírůstkového dávkového zpracování.

Možnost spuštění 'dostupná nyní' využívá všechny dostupné záznamy jako přírůstkovou dávku s možností konfigurace velikosti dávky, například maxBytesPerTrigger (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ý nahrávač 10.4 LTS
Apache Kafka 10.4 LTS
Kineze 13.1

Jaký je výchozí interval spouštěče?

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 hodnotu trigger, která minimalizuje náklady spojené s kontrolou, zda dorazila nová data, a zpracováním příliš malých dávek.

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 může to vést k zpracování v mikrodávkách před tím, než dojde ke zpracování 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 ze selhání dotazu přidruženého k inkrementální dávce, změna intervalu spouště tento problém nevyřeší, protože dávka musí být ještě 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 DLT.