Řešení potíží s Azure Stream Analytics dotazy

Tento článek popisuje běžné problémy při vývoji Stream Analytics dotazů a jejich řešení.

Tento článek popisuje běžné problémy s vývojem Azure Stream Analyticsch dotazů, odstraňování potíží s dotazy a postup řešení problémů. Mnoho kroků pro řešení potíží vyžaduje, aby byly pro vaši úlohu Stream Analytics Povolené protokoly prostředků. Pokud nemáte Povolené protokoly prostředků, přečtěte si téma řešení potíží s Azure Stream Analytics pomocí protokolů prostředků.

Dotaz nevyrábí očekávaný výstup.

  1. Kontrola chyb pomocí místního testování:

    • Na Azure Portal na kartě dotaz vyberte test. K otestování dotazupoužijte stažená ukázková data. Prověřte případné chyby a pokuste se je opravit.
    • dotaz můžete také místně otestovat pomocí Azure Stream Analyticsch nástrojů pro Visual Studio nebo Visual Studio Code.
  2. Ladit dotazy krok za krokem místně pomocí diagramu úloh v Azure Stream Analytics nástrojů pro Visual Studio Code. Diagram úlohy ukazuje, jak toky dat ze vstupních zdrojů (centra událostí, IoT Hub atd.) prostřednictvím více kroků dotazů a nakonec až po výstupní jímky. Každý krok dotazu je namapován na dočasnou sadu výsledků definovanou ve skriptu pomocí příkazu WITH. Můžete zobrazit data a také metriky v každé mezilehlé sadě výsledků, abyste našli zdroj problému.

    Výsledek náhledu diagramu úlohy

  3. Pokud používáte časové razítko, ověřte, zda mají události časové razítko větší, než je čas spuštění úlohy.

  4. Odstraňte běžné nástrah, například:

    • Klauzule WHERE v dotazu vyfiltroval všechny události, což znemožňuje vygenerování všech výstupů.
    • Funkce cast selže, což způsobí selhání úlohy. Chcete-li se vyhnout chybám přetypování typů, použijte místo toho TRY_CAST .
    • Při použití funkcí okna počkejte na celou dobu trvání okna, aby se zobrazil výstup dotazu.
    • Časové razítko pro události předchází času zahájení úlohy a události jsou vyřazeny.
    • Podmínky spojení se neshodují. Pokud se žádné shody neshodují, bude nulový výstup.
  5. Zajistěte, aby byly zásady řazení událostí nakonfigurované podle očekávání. přejít na Nastavení a vybrat řazení událostí. Zásada se nepoužije, když použijete tlačítko test k otestování dotazu. Výsledkem je jeden rozdíl mezi testováním v prohlížeči a spuštění úlohy v produkčním prostředí.

  6. Ladění pomocí protokolů aktivit a prostředků:

Využití prostředků je vysoké.

Zajistěte, abyste využili výhod paralelního využívání Azure Stream Analytics. Můžete se dozvědět, jak škálovat pomocí paralelního zpracování dotazů Stream Analytics úloh, a to konfigurací vstupních oddílů a optimalizací definice analytického dotazu.

Pokud je využití prostředků konzistentně více než 80%, prodleva meze roste a počet nevyřízených událostí roste, zvažte zvýšení počtu jednotek streamování. Vysoké využití indikuje, že úloha používá blízko maximálního počtu přidělených prostředků.

Postupné ladění dotazů

Při zpracování dat v reálném čase může být užitečné, aby data vypadala uprostřed dotazu. To můžete zobrazit pomocí diagramu úloh v Visual Studio. pokud nemáte Visual Studio, můžete pro výstup zprostředkujících dat provést další kroky.

Vzhledem k tomu, že vstupy nebo kroky Azure Stream Analytics úlohy je možné přečíst vícekrát, můžete napsat nadbytečné příkazy SELECT INTO. Tím dojde k výstupování mezilehlých dat do úložiště a umožní vám zkontrolovat správnost dat, stejně jako sledované proměnné , při ladění programu.

Následující příklad dotazu v úloze Azure Stream Analytics má jeden vstup streamu, dva vstupy referenčních dat a výstup do Azure Table Storage. Dotaz spojuje data z centra událostí a dva objekty blob odkazů, aby získal informace o názvu a kategorii:

Příklad Stream Analytics výběru do dotazu

Všimněte si, že úloha je spuštěná, ale ve výstupu nejsou vytvářeny žádné události. Na dlaždici monitorování můžete vidět, že vstup vyrábí data, ale nevíte, který krok spojení způsobil, že všechny události mají být vyřazeny.

Dlaždice monitorování Stream Analytics

V této situaci můžete přidat několik příkazů SELECT INTO do log (protokol). výsledky mezilehlého spojení a data, která jsou čtena ze vstupu.

V tomto příkladu jsme přidali dva nové "dočasné výstupy". Může to být jakákoli jímka, kterou si přejete. tady používáme Azure Storage jako příklad:

Přidání dalších příkazů SELECT INTO do Stream Analytics dotazů

Pak můžete tento dotaz přepsat tímto způsobem:

Přepsaný výběr do Stream Analyticsho dotazu

Nyní spusťte úlohu znovu a nechte ji běžet po dobu několika minut. pak proveďte dotazování na temp1 a temp2 pomocí Visual Studio průzkumníku cloudu a vytvořte následující tabulky:

tabulka temp1  VYBRAT do tabulky temp1 Stream Analytics dotaz

tabulka Temp2  VYBRAT do tabulky Temp2 Stream Analytics dotaz

Jak vidíte, temp1 a Temp2 obojí mají data a sloupec Name se v Temp2 vyplní správně. Protože však ve výstupu stále nejsou žádná data, je něco špatného:

VYBRAT do tabulky output1 bez dotazu na data Stream Analytics

Vzorkováním dat můžete být skoro jisti, že se jedná o problém s druhým připojením. Můžete si stáhnout referenční data z objektu BLOB a prohlédnout si je:

VYBRAT do referenční tabulky Stream Analytics dotaz

Jak vidíte, formát identifikátoru GUID v těchto referenčních datech se liší od formátu sloupce [from] v Temp2. To je důvod, proč se data nedostala do output1 podle očekávání.

Můžete opravit formát dat, odeslat ho do referenčního objektu BLOB a zkusit to znovu:

VYBRAT do dočasné tabulky Stream Analytics dotaz

Tentokrát se data ve výstupu naformátují a vyplní podle očekávání.

VYBRAT do konečné tabulky Stream Analytics dotaz

Získání pomoci

Pokud chcete získat další pomoc, vyzkoušejte si naši stránku Microsoft Q&Azure Stream Analytics.

Další kroky