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.
Tento článek vysvětluje, jak nakonfigurovat intervaly triggerů pro strukturované streamování v Azure Databricks.
Apache Spark Structured Streaming zpracovává data přírůstkově. Intervaly aktivačních událostí určují, jak často strukturované streamování kontroluje nová data. Intervaly aktivačních událostí můžete nakonfigurovat pro zpracování téměř v reálném čase, pro plánované aktualizace databáze nebo dávkové zpracování všech nových dat za den nebo týden.
Vzhledem k tomu, že Auto Loader používá strukturované streamování k načítání dat, pochopení, jak triggery fungují, nabízí největší flexibilitu pro řízení nákladů při ingestování dat s požadovanou frekvencí.
Přehled režimů spouštění
Následující tabulka shrnuje režimy aktivačních událostí dostupné ve strukturovaném streamování:
| Režim triggeru | Příklad syntaxe (Python) | Nejlepší pro |
|---|---|---|
| Neurčené (výchozí) | N/A | Streamování pro obecné účely s latencí 3 až 5 sekund Ekvivalent spouštěče processingTime s intervalem 0 ms. Zpracování datových proudů běží nepřetržitě, dokud dorazí nová data. |
| Doba zpracování | .trigger(processingTime='10 seconds') |
Vyrovnávání nákladů a výkonu Snižuje režijní náklady tím, že brání systému v příliš častém kontrolování dat. |
| Nyní k dispozici | .trigger(availableNow=True) |
Plánované přírůstkové dávkové zpracování. Zpracovává tolik dat, kolik je k dispozici v době, kdy se úloha streamování aktivuje. |
| Režim v reálném čase | .trigger(realTime='5 minutes') |
Provozní úlohy s ultra nízkou latencí vyžadující zpracování podsekundy, jako je detekce podvodů nebo přizpůsobení v reálném čase. Veřejná ukázka. 5 minut označuje délku mikrodávkové dávky. Využijte pět minut k minimalizaci režijních nákladů na jednotlivé dávky, jako je kompilace dotazů. |
| Nepřetržité | .trigger(continuous='1 second') |
Není podporováno. Jedná se o experimentální funkci, která je součástí operačního systému Spark. Místo toho použijte režim v reálném čase. |
processingTime: Intervaly triggeru založené na čase
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').
Konfigurace tohoto intervalu určuje, jak často systém provádí kontroly a zjišťuje, 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.
AvailableNow: Přírůstkové dávkové zpracování
Důležité
V Databricks Runtime 11.3 LTS a novějších verzích je Trigger.Once zastaralé. Používá se Trigger.AvailableNow pro všechny úlohy přírůstkového dávkového zpracování.
Možnost spouště AvailableNow zpracovává všechny dostupné záznamy jako přírůstkovou dávku s možností konfigurace její velikosti pomocí možností, jako je maxBytesPerTrigger. Možnosti velikosti se liší podle zdroje dat.
Podporované 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 |
realTime: Provozní úlohy s nízkou latencí
Důležité
Tato funkce je ve verzi Public Preview.
Režim strukturovaného streamování v reálném čase dosahuje celkové latence pod 1 sekundou na konci a v běžných případech přibližně 300 ms. Další podrobnosti o tom, jak efektivně nakonfigurovat a používat režim v reálném čase, najdete v tématu Režim v reálném čase ve strukturovaném streamování.
Apache Spark má další interval aktivační události označovaný jako průběžné zpracování. Tento režim byl od Sparku 2.3 klasifikován jako experimentální. Azure Databricks tento režim nepodporuje ani nedoporučuje. Režim v reálném čase použijte místo toho pro případy použití s nízkou latencí.
Poznámka:
Režim průběžného zpracování na této stránce nesouvisí s průběžným zpracováním v deklarativních kanálech Sparku Lakeflow.
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.
Chování při změně intervalů
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 důsledku toho můžete po změně intervalu aktivační události sledovat mikrodávkové zpracování s dříve zadanými nastaveními. Toto popisuje očekávané chování při přechodu:
Přechod z časového intervalu na
AvailableNow: Mikrodávka může být zpracována dříve, než jsou všechny dostupné záznamy zpracovány jako přírůstková dávka.Přechod na časový interval z
AvailableNow: Zpracování může pokračovat pro všechny záznamy, které byly k dispozici, když byla spuštěna posledníAvailableNowúloha. Toto chování je očekávané.
Řešení chyb dotazů
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 pořád dokončená. Navyšte výpočetní kapacitu používanou ke zpracování dávky, abyste se pokusili problém vyřešit. Ve výjimečných případech možná budete muset stream restartovat pomocí nového kontrolního bodu.