Sdílet prostřednictvím


Optimalizace dotazu pomocí simulace úloh

Jedním ze způsobů, jak zlepšit výkon úlohy Azure Stream Analytics (ASA), je použít v dotazu paralelismus. Tento článek ukazuje, jak pomocí simulace úloh v Azure Portal a editoru Visual Studio Code (VS Code) vyhodnotit paralelismus dotazů pro úlohu Stream Analytics. Naučíte se vizualizovat provádění dotazů s různým počtem jednotek streamování a vylepšit paralelismus dotazů na základě návrhů úprav.

Co je paralelní dotaz?

Paralelismus dotazů rozděluje úlohy dotazu vytvořením více procesů (nebo uzlů streamování) a provádí je paralelně. Výrazně se tím zkracuje celková doba provádění dotazu, a proto je potřeba méně hodin streamování.

Aby byla úloha paralelní, musí být všechny vstupy, výstupy a kroky dotazu zarovnané a musí používat stejné klíče oddílu. Dělení logiky dotazu je určeno klíči používanými pro agregace (GROUP BY).

Pokud chcete získat další informace o paralelizaci dotazů, přečtěte si téma Využití paralelizace dotazů v Azure Stream Analytics.

Použití simulace úloh ve VS Code

Funkce simulace úloh simuluje, jak bude úloha spouštět topologii v Azure. V tomto kurzu se naučíte zlepšit výkon dotazů na základě návrhů úprav a provádět je paralelně. Jako příklad používáme neparallelní úlohu, která přebírá vstupní data z centra událostí a odesílá výsledky do jiného centra událostí.

Požadavky:

  • Rozšíření ASA Tools pro VS Code. Pokud jste ho ještě nenainstalovali, nainstalujte ho podle tohoto průvodce .
  • Nakonfigurujte živý vstup a živý výstup pro úlohu Stream Analytics.
  • Do dotazu musíte zahrnout živý vstup a výstup.

Poznámka

Simulace úloh nemůže simulovat spuštěnou topologii úlohy pro místní vstupy a výstupy. Během simulace se do výstupního cíle neposílají žádná data.

  1. Otevřete projekt ASA ve VS Code. Přejděte do souboru dotazu *.asaql a výběrem možnosti Simulovat úlohu spusťte Simulaci úlohy.

    Snímek obrazovky se simulátorem diagramu úloh otevírání VS Code v souboru dotazu

  2. Na kartě Diagram se zobrazuje počet uzlů streamování přidělených úloze a počet oddílů v jednotlivých uzlech streamování. Následující snímek obrazovky je příkladem jiné nežparalelní úlohy, kde data přetékají mezi uzly.

    Snímek obrazovky nástroje VS Code se simulátorem diagramu úloh a topologií úloh

  3. Vzhledem k tomu, že tento dotaz NENÍ paralelně, můžete vybrat kartu Vylepšení a zobrazit návrhy na vylepšení dotazu.

    Snímek obrazovky nástroje VS Code s využitím simulátoru diagramu úloh a zobrazující návrhy úprav dotazu

  4. V seznamu vylepšení vyberte krok dotazu, zobrazí se zvýrazněné odpovídající řádky a na základě návrhů můžete dotaz upravit.

    Snímek obrazovky nástroje VS Code se simulátorem diagramu úloh a zvýrazněním kroku dotazu

    Poznámka

    Toto jsou návrhy úprav pro vylepšení paralelismu dotazů. Pokud ale používáte agregační funkci mezi všemi oddíly, nemusí být paralelní dotaz pro vaše scénáře použitelný.

  5. V tomto příkladu přidáte Id oddílu na řádek č. 22 a uložíte změnu. K získání nového diagramu pak můžete použít simulaci aktualizace .

    Snímek obrazovky znázorňující diagram aktualizace po aktualizaci dotazu

  6. Můžete také upravit jednotky streamování tak, aby se přidělovaly streamované uzly s různými SU. Získáte tak představu o tom, kolik jednotek SU potřebujete ke zvládnutí úloh.

    Snímek obrazovky s nástrojem VS Code pomocí nástroje pro úpravu SU

Použití simulace úloh v Azure Portal

  1. V Azure Portal přejděte do editoru dotazů a v dolním podokně vyberte Simulace úlohy. Simuluje spuštěnou úlohu topologie na základě dotazu a předdefinovaných jednotek streamování. Snímek obrazovky znázorňující simulaci otevření úlohy na portálu
  2. Výběrem možnosti Vylepšení zobrazíte návrhy pro vylepšení paralelismu dotazů. Snímek obrazovky znázorňuje vylepšení simulace otevřených úloh na portálu.
  3. Upravte jednotky streamování, abyste viděli, kolik jednotek SU potřebujete pro zpracování úlohy. Snímek obrazovky znázorňující, jak upravit su na portálu

Diagram na úrovni procesoru

Jakmile upravíte jednotky streamování tak, aby simulovala topologii úlohy, můžete rozbalit kterýkoli z uzlů streamování a sledovat, jak se vaše data zpracovávají na úrovni procesoru.

Snímek obrazovky ve formátu GIF znázorňující diagram úrovně procesoru simulátoru

Diagram na úrovni procesoru umožňuje:

  • sledujte, jak se na jednotlivých uzlech streamování přidělují a zpracovávají vstupní oddíly.
  • zjistěte, jaký je časový posun pro jednotlivé výpočetní procesory.
  • poskytují informace o tom, zda jsou vstupní a výstupní procesory zarovnány paralelně.

Pokud chcete namapovat procesor pomocí kroku dotazu, dvakrát vyberte diagram. Tato funkce vám pomůže najít kroky dotazu, které provádějí agregaci.

Snímek obrazovky znázorňuje funkci mapování simulace úloh v nástroji VS Code.

Návrhy vylepšení

Tady jsou vysvětlení vylepšení:

Typ Význam
Přizpůsobený oddíl se nepodporuje. Změňte vstupní klíč oddílu xxx na xxx.
Počet oddílů, které se neshodují Vstup a výstup musí mít stejný počet oddílů.
Klíče oddílů se neshodují Vstup, výstup a každý krok dotazu musí používat stejný klíč oddílu.
Počet vstupních oddílů, které se neshodují Všechny vstupy musí mít stejný počet oddílů.
Vstupní klíče oddílu se neshodují Všechny vstupy musí používat stejný klíč oddílu.
Nízká úroveň kompatibility Upgradujte CompatibilityLevel v souboru JobConfig.json .
Klíč výstupního oddílu se nenašel. Pro výstup musíte použít zadaný klíč oddílu.
Přizpůsobený oddíl se nepodporuje. Můžete použít jenom předdefinované klíče oddílů.
Krok dotazu, který nepoužívá oddíl Váš dotaz nepoužívá žádnou klauzuli PARTITION BY.

Další kroky

Pokud chcete získat další informace o paralelizaci dotazů a diagramu úloh, projděte si tyto kurzy: