Sdílet prostřednictvím


Latence v aktivátoru

Aktivátor prostředí spouští pravidla pro data v reálném čase. Výsledky jsou téměř okamžité, ale existují faktory, které mohou zavádět latenci. Ve většině případů je tato latence nesrozumitelná, ale v jiných případech může být latence až 10 minut. Při vytváření a přijímání pravidel je důležité vzít v úvahu přesné a včasné informace. Tento článek se zabývá procesy a nastavením, které určují rovnováhu mezi zahrnutím událostí a strukturou pravidla a tím, jak rychle se aktivuje aktivátor. Měl by například aktivátor umožnit doručení a zahrnutí dalších dat nebo by měl Aktivátor zajistit, aby příjemci dostávali upozornění v nastavený čas? A jak způsob, jakým je pravidlo strukturované, má vliv na rychlost odesílání aktivace příjemcům?

Existují tři důležité faktory, které mají vliv na latenci aktivace pravidla:

  • Nastavení uživatele pro tolerance pozdního příjezdu.
  • Zpoždění až jednu minutu, které může být zavedeno backendovým zpracováním Aktivátoru.
  • Agregace na pravidle.

Tolerance pozdního příjezdu

Tolerance pozdního příjezdu je nastavena na obrazovce Definice pravidla aktivace a použita pro čas příjezdu události. Informace o nastavení tolerance pozdního příjezdu najdete v tématu Nastavení tolerance pozdního příjezdu.

Latence zpracování back-endu

Pravidla můžou před aktivací pravidla potřebovat zpracování. Pokud je například pravidlo porovnáním s předchozí sadou událostí, je potřeba zpracování na pozadí k načtení předchozích dat, provedení porovnání a výpočet výsledku. Dalším příkladem je, že pravidlo běží na 10 milionů řádků dat, latence je zavedena back-endovým zpracováním těchto dat.

Latence agregace

Pokud se v definici pravidla použije agregace, pravidlo se aktivuje jenom po dokončení zadaných časových intervalů. Řekněme například, že pravidlo je vytvořené pro průměr dat za čtyři hodiny. Pokud se událost splňující podmínky pravidla ingestuje v 12:00, pravidlo se aktivuje v 14:00. Latence je výsledkem nastavení agregace. I když pravidlo obsahuje jednoduchou agregaci, jako průměr, Activator nemůže odeslat aktivaci, dokud aktivátor nespustí agregaci nad příchozími daty událostí.

Základní koncepty času

Abychom mohli diskuzi lépe zarámovat, pojďme definovat některé koncepty na pozadí.

  • Čas události: Čas, kdy došlo k původní události. Je součástí datového obsahu události. Například když jedoucí auto na dálnici se přiblíží k mýtné bráně a je zaznamenáno senzorem.
  • Doba zpracování: Čas, kdy událost dosáhne systému zpracování a je pozorována. Například když senzor v mýtné bráně zaznamená auto a počítačovému systému chvíli trvá zpracování dat.
  • Čas příjezdu (vodoznak nebo čas příjmu): Značka, která označuje, kdy data události dosáhnou aktivátoru. Vzhledem k povaze datových proudů se příchozí data událostí nikdy nezastaví, takže časy příjezdu ukazují pokrok, kterého Aktivátor dosáhl, k určitému bodu v datovém proudu. V tomto okamžiku může aktivátor vytvořit úplné, správné a opakovatelné výsledky, které není nutné odvolat. A v tuto chvíli může aktivátor začít zpracovávat data. Zpracování lze provést předvídatelným a opakovatelným způsobem. Pokud je například třeba provést přepočet pro určitou podmínku zpracování chyby, časy příjezdu jsou bezpečné výchozí a koncové body.

Pozdní příjezd nastane, když pravidlo má parametr času a čas události je v daném parametru času, ale čas příjezdu spadá mimo tento parametr. Pokud znovu použijeme příklad mýtné brány, auto je rozpoznáno senzorem mýtné brány a Čas události je v časovém parametru. Aktivátor vidí, že pravidlo má agregaci, a provádí tuto agregaci nad daty. Čas potřebný k provedení této agregace umístí čas příjezdu mimo parametr času. Tato událost je nyní považována za opožděnou. Pokud chcete zahrnout pozdní příjezdy, nastavte hodnotu tolerance pozdního příjezdu.

Další zdroje informací o tomto tématu najdete v blogových příspěvcích Tyler Akidau Streaming 101 a Streaming 102.

Nastavení tolerance pozdního příjezdu

Tolerance pozdního příjezdu je nastavení uživatele. Tolerance pozdního příjezdu se vztahuje k tomu, jak dlouho Activator čeká na příchod události, její potvrzení a zpracování. Výchozí hodnota je dvě minuty. Tolerance pozdního příjezdu přispívá k latenci. Pravidla vytvořená s tolerancem pozdního příjezdu mají latenci, která je alespoň doba, po kterou je nastavená tolerance pozdního příjezdu. Při vytváření pravidla se rozhodněte, jestli chcete použít výchozí toleranci, nebo ji změnit. Tolerance zajišťuje, že pozdní události a události, které přicházejí mimo pořadí, mají příležitost být zahrnuty do vyhodnocení pravidla. Pokud událost spadá mimo toleranci pozdního příjezdu, aktivátor ji nebere v úvahu. Všechny události s časem příjezdu po uplynutí této tolerance se neberou v úvahu.

Snímek obrazovky podokna Podmínky posunutého na možnosti Upřesnit nastavení.

Celkově je důležité zvážit, jestli je důležitější:

  • Počkejte na pozdní datové body nebo
  • spusťte pravidlo na potenciálně neúplných datech, aby se pravidlo aktivovalo dříve. 

V tomto příkladu se datové body měří v 15minutových intervalech. První tři tečky, které jsou modré, se dostanou do časového intervalu. Čtvrtá tečka, která je oranžová, ne. Čas události je v 15-minutovém intervalu, ale událost není zpracována Activatorem během 15-minutového intervalu. Aktivátor vyhodnocuje pravidlo pouze u dat s dobou příjezdu v 15minutovém intervalu. Pokud uživatel nenaznačí, že chce povolit toleranci pozdního příjezdu a počkat, než zjistí, jestli dorazí jiné datové body. 

Snímek obrazovky spojnicového grafu zobrazující časové intervaly

Aktivátor nemůže zohlednit zpoždění dat uživatele. Uživatel může mít například senzory IoT, které jsou offline po dobu 1 hodiny. Jakmile se vrátí zpátky do online režimu, může Aktivátor přijímat data, ale data byla zpožděna o 1 hodinu od tohoto offline stavu, což nastalo mimo Aktivátor.

Tady je další příklad.

Uživatel vytvoří pravidlo, které vypočítá průměrnou teplotu v minutových intervalech. Tolerance pozdního příjezdu je nastavená na Výchozí. Výchozí nastavení je dvě minuty. Hodnoty teploty 20 a 30 jsou zahrnuty a průměrná teplota je 25. Nicméně, opožděná událost týkající se teploty 40 stupňů není zahrnuta do té doby, než dojde k další aktivaci pravidla. 

Čas události Čas příjezdu Teplota
09:00 09:02 20
09:01 09:03 30
09:02 09:07 40

Důležité

V současné době nemůžete přepsat výchozí toleranci pozdního příjezdu. Toto nastavení se také nevztahuje na pravidla Power BI.

Pravidla založená na vizuálech Power BI

Integrovaná latence se liší podle služby. Latence pro eventstreamy se liší od latence vizuálů Power BI. Existují dvě části, které tvoří latenci pro pravidla založená na vizuálech Power BI: frekvence dotazování vizuálů Power BI, které jsou integrované v systému, a zpoždění, které může zavést back-end aktivátoru.

Pravidla Power BI se vyhodnocují při každém příchodu nových dat do aktivátoru. Aktivátor ingestuje nová data z Power BI každou hodinu. To znamená, že události, které splňují podmínku pravidla, aktivují aktivaci maximálně jednu hodinu po události. Další informace najdete v tématu Získání dat pro aktivaci z Power BI.