Škálování úlohy Stream Analytics pomocí funkcí Machine Učení Studio (klasické)

Tip

Důrazně doporučujeme používat funkce definované uživatelem (UDF) azure Machine Učení místo UDF nástroje Machine Učení Studio (classic), aby se zlepšil výkon a spolehlivost.

Důležité

Podpora pro Azure Machine Učení Studio (Classic) skončí 31. srpna 2024. Doporučujeme, abyste do tohoto data přešli na Učení Azure Machine.

Od 1. prosince 2021 nemůžete vytvořit nové prostředky machine Učení Studio (klasické) (pracovní prostor a plán webové služby). Až do 31. srpna 2024 můžete dál používat stávající experimenty a webové služby machine Učení Studio (klasické). Další informace naleznete v tématu:

Dokumentace k sadě Machine Učení Studio (classic) se vyřadí z provozu a nemusí být v budoucnu aktualizována.

Tento článek popisuje, jak efektivně škálovat úlohy Azure Stream Analytics, které používají funkce Machine Učení Studio (klasické). Informace o tom, jak obecně škálovat úlohy Stream Analytics, najdete v článku Škálování úloh.

Co je funkce Studia (classic) ve Stream Analytics?

Funkce Machine Učení Studio (classic) ve Stream Analytics se dá použít jako běžné volání funkce v dotazovacím jazyce Stream Analytics. Na pozadí jsou však tato volání funkcí ve skutečnosti požadavky webové služby Studio (classic).

Propustnost požadavků webové služby Studio (Classic) můžete zlepšit "dávkováním" více řádků společně ve stejném volání rozhraní API webové služby. Toto seskupení se nazývá minidávkové. Další informace naleznete v tématu Machine Učení Studio (klasické) webové služby. Podpora pro Studio (classic) ve Stream Analytics

Konfigurace úlohy Stream Analytics pomocí funkcí Studia (Classic)

Pro konfiguraci funkce Studio (Classic) používané úlohou Stream Analytics existují dva parametry:

  • Velikost dávky volání funkce Studio (Classic).
  • Počet jednotek streamování (SU) zřízených pro úlohu Stream Analytics

Pokud chcete určit vhodné hodnoty pro SU, rozhodněte se, jestli chcete optimalizovat latenci úlohy Stream Analytics nebo propustnosti jednotlivých SU. SU je možné do úlohy vždy přidat, aby se zvýšila propustnost dobře děleného dotazu Stream Analytics. Další SU zvyšují náklady na provoz úlohy.

Určete latenci vaší úlohy Stream Analytics. Zvýšením velikosti dávky se zvýší latence požadavků sady Studio (Classic) a latence úlohy Stream Analytics.

Zvětšení velikosti dávky umožňuje úloze Stream Analytics zpracovávat více událostí se stejným počtem požadavků na webovou službu Studio (Classic). Zvýšení latence webové služby v sadě Studio (Classic) je obvykle podmnožinou na zvýšení velikosti dávky.

Je důležité vzít v úvahu nákladově efektivní velikost dávky pro webovou službu Studio (klasické) v jakékoli situaci. Výchozí velikost dávky pro požadavky webové služby je 1000. Tuto výchozí velikost můžete změnit pomocí rozhraní REST API Stream Analytics nebo klienta PowerShellu pro Stream Analytics.

Jakmile se rozhodnete o velikosti dávky, můžete nastavit počet jednotek streamování (SU) na základě počtu událostí, které funkce potřebuje zpracovat za sekundu. Další informace o jednotkách streamování najdete v tématu Úlohy škálování Stream Analytics.

Každých 6 jednotek SU získá 20 souběžných připojení k webové službě Studio (Classic). 1 úloha SU a 3 úlohy SU však získají 20 souběžných připojení.

Pokud vaše aplikace generuje 200 000 událostí za sekundu a velikost dávky je 1000, výsledná latence webové služby je 200 ms. Tato rychlost znamená, že každé připojení může každou sekundu provádět pět požadavků na webovou službu Studio (Classic). S 20 připojeními může úloha Stream Analytics zpracovat 20 000 událostí v 200 ms a 100 000 událostí za sekundu.

Ke zpracování 200 000 událostí za sekundu potřebuje úloha Stream Analytics 40 souběžných připojení, která přicházejí na 12 SU. Následující diagram znázorňuje požadavky z úlohy Stream Analytics do koncového bodu webové služby Studio (Classic) – Každých 6 jednotek SU má maximálně 20 souběžných připojení k webové službě Studio (Classic).

Scale Stream Analytics with Studio (classic) Functions two job example

Obecně platí, že B pro velikost dávky, L latence webové služby ve velikosti dávky B v milisekundách, propustnost úlohy Stream Analytics s N SU je:

Scale Stream Analytics with Studio (classic) Functions Formula

Můžete také nakonfigurovat maximální počet souběžných volání ve webové službě Studio (Classic). Doporučujeme nastavit tento parametr na maximální hodnotu (aktuálně 200).

Další informace o tomto nastavení najdete v článku Škálování pro webové služby Machine Učení Studio (Classic).

Příklad – Analýza mínění

Následující příklad obsahuje úlohu Stream Analytics s funkcí Analysis Studio (classic), jak je popsáno v kurzu integrace Stream Analytics Machine Učení Studio (classic).

Dotaz je jednoduchý plně dělený dotaz následovaný funkcí mínění , jak je znázorněno v následujícím příkladu:

    WITH subquery AS (
        SELECT text, sentiment(text) as result from input
    )

    Select text, result.[Score]
    Into output
    From subquery

Pojďme se podívat na konfiguraci potřebnou k vytvoření úlohy Stream Analytics, která analyzuje mínění tweetů rychlostí 10 000 tweetů za sekundu.

Pokud používáte 1 SU, mohla by tato úloha Stream Analytics zpracovávat provoz? Úloha může držet krok se vstupem pomocí výchozí velikosti dávky 1000. Výchozí latence webové služby sady Sentiment Analysis Studio (Classic) (s výchozí velikostí dávky 1000) nedochází k více než sekundě latence.

Celková nebo kompletní latence úlohy Stream Analytics obvykle bude několik sekund. Podívejte se podrobněji na tuto úlohu Stream Analytics, zejména na volání funkcí Studia (classic). S velikostí dávky 1000 trvá propustnost 10 000 událostí přibližně 10 požadavků na webovou službu. I v případě jedné SU existuje dostatek souběžných připojení pro přizpůsobení tohoto vstupního provozu.

Pokud se míra vstupních událostí zvýší o 100x, musí úloha Stream Analytics zpracovat 1 000 000 tweetů za sekundu. Existují dvě možnosti, jak dosáhnout zvýšeného škálování:

  1. Zvětšete velikost dávky.
  2. Rozdělte vstupní datový proud tak, aby zpracovával události paralelně.

Při první možnosti se zvýší latence úlohy.

Při druhé možnosti budete muset zřídit více jednotek SU, abyste měli více souběžných požadavků na webovou službu Studio (Classic). Tento větší počet jednotek SU zvyšuje náklady na práci.

Pojďme se podívat na škálování s využitím následujících měření latence pro každou velikost dávky:

Latence Velikost dávky
200 ms 1 000 dávek událostí nebo nižší
250 ms 5 000 dávek událostí
300 ms 10 000 dávek událostí
500 ms 25 000 dávek událostí
  1. Použití první možnosti (nezřiďte více jednotek SU). Velikost dávky může být zvýšena na 25 000. Zvýšení velikosti dávky tímto způsobem umožní úloze zpracovat 1 000 000 událostí s 20 souběžnými připojeními k webové službě Studio (Classic) (s latencí 500 ms na volání). Další latence úlohy Stream Analytics kvůli žádostem o funkci mínění u požadavků webové služby Studio (Classic) by se tedy zvýšila z 200 ms na 500 ms. Velikost dávky se ale nedá nekonečně zvětšit, protože webové služby Studio (klasické) vyžadují velikost datové části požadavku 4 MB nebo menší a časový limit požadavků webové služby po 100 sekundách operace.
  2. Při použití druhé možnosti zbývá velikost dávky na 1000, s latencí webové služby 200 ms, každé 20 souběžných připojení k webové službě by bylo možné zpracovat 1000 × 20 * 5 událostí = 100 000 za sekundu. Aby se tedy zpracovávalo 1 000 000 událostí za sekundu, úloha by potřebovala 60 jednotek SU. V porovnání s první možností by úloha Stream Analytics generovala další dávkové požadavky webové služby a generovala tak vyšší náklady.

Níže je tabulka pro propustnost úlohy Stream Analytics pro různé SU a velikosti dávek (v počtu událostí za sekundu).

velikost dávky (latence ML) 500 (200 ms) 1 000 (200 ms) 5 000 (250 ms) 10 000 (300 ms) 25 000 (500 ms)
1 SU 2 500 5 000 20,000 30,000 50 000
3 SU 2 500 5 000 20,000 30,000 50 000
6 jednotek SU 2 500 5 000 20,000 30,000 50 000
12 SU 5 000 10,000 40 000 60 000 100 000
18 SU 7 500 15 000 60 000 90,000 150,000
24 SU 10,000 20,000 80 000 120 000 200 000
... ... ... ... ... ...
60 jednotek SU 25,000 50 000 200 000 300,000 500,000

Prozatím byste už měli mít dobrý přehled o tom, jak funguje Studio (klasické) funkce v Stream Analytics. Pravděpodobně také víte, že úlohy Stream Analytics "načítá" data ze zdrojů dat a každá žádost o přijetí změn vrací dávku událostí pro zpracování úlohy Stream Analytics. Jaký vliv má tento model vyžádání změn na požadavky webové služby Studio (Classic)?

Za normálních okolností nebude velikost dávky nastavená pro funkce studia (Classic) přesně dělitelná počtem událostí vrácených každou úlohou Stream Analytics "pull". V takovém případě se webová služba Studio (classic) volá s "částečnými" dávkami. Použití částečných dávek zabraňuje dodatečné režii na latenci úlohy při sloučení událostí z vyžádání na vyžádání.

V oblasti Monitorování úlohy Stream Analytics byly přidány tři další metriky související s funkcemi. Jsou to ŽÁDOSTI FUNKCÍ, UDÁLOSTI FUNKCE a NEÚSPĚŠNÉ ŽÁDOSTI FUNKCÍ, jak je znázorněno na obrázku níže.

Scale Stream Analytics with Studio (classic) Functions Metrics

Jsou definovány takto:

ŽÁDOSTI FUNKCÍ: Počet požadavků funkce.

UDÁLOSTI FUNKCE: Počet událostí v požadavcích funkce.

NEÚSPĚŠNÉ ŽÁDOSTI O FUNKCI: Počet neúspěšných žádostí o funkci.

Klíčové poznatky

Pokud chcete škálovat úlohu Stream Analytics pomocí funkcí Studia (classic), zvažte následující faktory:

  1. Vstupní míra událostí.
  2. Tolerovaná latence pro spuštěnou úlohu Stream Analytics (a tedy velikost dávky požadavků webové služby Studio (Classic).
  3. Zřízené skladové jednotky Stream Analytics a počet požadavků na webovou službu Studio (classic) (další náklady související s funkcemi)

Jako příklad se použil plně dělený dotaz Stream Analytics. Pokud je potřeba složitější dotaz, je stránka otázek Microsoftu pro Azure Stream Analytics skvělou možností, jak získat další pomoc od týmu Stream Analytics .

Další kroky

Další informace o Stream Analytics najdete tady: