Zásady časové nerovnoměrné distribuce (Azure Stream Analytics)

Ve Stream Analytics mají všechny události datového streamu přidružené časové razítko . Uživatelé si můžou pomocí klíčového slova TIMESTAMP BY vybrat jednu z těchto dvou různých časů:

  • Čas aplikace, tedy čas vytvoření událostí (označený aplikací nebo zařízením, které události generuje). Při používání času aplikace můžete buď zpracovávat všechny události pomocí globální časové osy, nebo analyzovat každé zařízení nebo oddíl pomocí vlastní časové osy pomocí podstreamů.
  • Čas příjezdu, čas, kdy událost dorazila do cloudu (např. čas příjezdu do IoT Hub nebo centra událostí).

Kromě volby časového razítka může být potřeba, aby uživatelé definovali zásady pozdního příjezdu a Mimo objednávku kvůli následujícím problémům:

  • Producenti událostí mají nerovnoměrnou distribuci hodin. To je běžné, když producenti pocházejí z různých počítačů, takže mají různé hodiny.
  • Kvůli latenci sítě můžou události pocházet ze stejných hodin do centra událostí nebo IoT Hub v jiném pořadí, než kdy vznikly.
  • Mezi oddíly se skejtují hodiny. Při použití nedělených dotazů se události ze všech oddílů sloučí podle časového razítka volby uživatele. Nerovnoměrné rozdělení hodin mezi oddíly může vést ke zpoždění zpracování, protože sloučení musí počkat na nejpomalejší oddíl.

Vstupní datové proudy, které nejsou v pořadí, můžou být buď:

  • Seřazeno (a proto zpožděno).
  • Upraveno systémem podle zásad zadaných uživatelem.

Stream Analytics toleruje zpožděné a mimo pořadí událostí při zpracování podle času aplikace.

Zásady mimo pořadí

Při analýze streamování je velmi důležité mít události seřazené podle času. Vzhledem k výše uvedeným 3 problémům se však často stává, že jsou přijaty mimo pořadí, což může ovlivnit výsledky našich dotazů. Zásady mimo pořadí umožňují změnit pořadí událostí podle časového razítka, když dorazí v rámci definovaného okna tolerance. Události, které dorazí později než tolerance, se buď zahodí, nebo upraví v závislosti na zvoleném nastavení.

  • Upraveno: Upraveno tak, aby vypadalo, že dorazily v poslední přijatelný čas.
  • Vyřazeno: Zahozeno.

Toto nastavení je možné upravit v Azure Portal (na kartě Pořadí událostí úlohy). Další informace najdete na stránce s informacemi o pořadí událostí.

Když nastavíte zásadu mimo pořadí větší než 0, Stream Analytics uloží události do vyrovnávací paměti až do tohoto okna a před použitím dočasné transformace změní jejich pořadí pomocí časového razítka definovaného uživatelem. Obecně se doporučuje nejprve začít se 3sekundovým oknem a pak vylaďte hodnotu tak, aby se snížil počet událostí, které získávají časovou úpravu. Všimněte si, že kvůli ukládání do vyrovnávací paměti je vedlejším efektem, že výstup je zpožděn o stejnou dobu. V důsledku toho budete muset hodnotu vyladit, abyste snížili počet událostí mimo pořadí a zachovali nízkou latenci.

Tolerance pozdního příjezdu

Okno tolerance pozdního příchodu se používá k zohlednění zpoždění událostí, které dosáhnou vstupního zdroje z různých důvodů uvedených výše. Stručně řečeno, okno pozdního příchodu představuje maximální zpoždění mezi generováním události a přijetím události ve vstupním zdroji. Úprava na základě tolerance pozdního příchodu se provede jako první a pak se provede mimo pořadí. Sloupec System.Timestamp() bude mít k události přiřazené konečné časové razítko.

Toto nastavení lze použít pouze při zpracování podle času aplikace, jinak se ignoruje. Dá se také nastavit na Azure Portal (na kartě Pořadí událostí úlohy). Další informace najdete na stránce s informacemi o pořadí událostí.

Když se událost zpozdí, časové razítko se upraví na aktuální čas zařazení do fronty ve vstupním zdroji minus časové období tolerance pozdního příchodu (nebo vynechané v závislosti na zvolené akci). Pokud se zkombinuje více oddílů ze stejného vstupního streamu nebo více vstupních datových proudů, je tolerance pozdního příchodu maximální doba, po kterou každý oddíl čeká na nová data.

Tolerance pozdních příjezdů a řídké události

Zásady pozdního doručení umožňují Stream Analytics posunovat čas dopředu a generovat výstup v čase bez vstupních událostí. To je velmi užitečné, když jsou vstupní události řídké (nebo vůbec nepřijímají některé oddíly centra událostí).

Například vstupní události se generují jednou za minutu pro výběrový dotaz*. Bez použití této zásady nemůže Stream Analytics generovat výstupní výsledky, dokud události nedorazí na všechny oddíly centra událostí (aby se posunul čas dopředu). To může znamenat 16 minut, pokud má centrum událostí 16 oddílů a že každá událost se doručuje do jiného oddílu. Při výchozích 5sekundových zásadách se hodiny posunou dopředu o 5 sekund po první události, takže výstupní událost se vygeneruje 5 sekund po první události.

Viz také

Správa času (Azure Stream Analytics)
System.Timestamp() (Stream Analytics)
TIMESTAMP BY (Azure Stream Analytics)
Důležité informace o pořadí událostí