Škálování úlohy Stream Analytics pomocí funkcí Machine Learning Studia (classic)
Tip
Kvůli lepšímu výkonu a spolehlivosti se důrazně doporučuje používat funkce definované uživatelem služby Azure Machine Learning Místo UDF nástroje Machine Learning Studio (Classic).
Důležité
Podpora nástroje Azure Machine Learning Studio (classic) skončí 31. srpna 2024. Doporučujeme, abyste do tohoto data přešli na Azure Machine Learning .
Od 1. prosince 2021 nemůžete vytvářet nové prostředky machine Learning Studia (klasické) (pracovní prostor a plán webových služeb). Až do 31. srpna 2024 můžete dál používat stávající experimenty a webové služby Machine Learning Studio (klasické). Další informace naleznete v tématu:
- Migrace do Služby Azure Machine Learning z nástroje Machine Learning Studio (Classic)
- Co je Azure Machine Learning?
Dokumentace k nástroji Machine Learning Studio (classic) se vyřadí z provozu a nemusí se v budoucnu aktualizovat.
Tento článek popisuje, jak efektivně škálovat úlohy Azure Stream Analytics, které používají funkce Machine Learning Studia (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?
Funkci Machine Learning Studia (classic) v Stream Analytics je možné 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 Learning 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).
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:
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 o škálování pro službu Machine Learning Studio (klasické) webové služby.
Příklad – Analýza mínění
Následující příklad obsahuje úlohu Stream Analytics s funkcí Sentiment Analysis Studio (classic), jak je popsáno v kurzu integrace Stream Analytics Machine Learning 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í:
- Zvětšete velikost dávky.
- 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í |
- 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.
- 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í.
Nové metriky monitorování související s funkcemi
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.
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:
- Vstupní míra událostí.
- Tolerovaná latence pro spuštěnou úlohu Stream Analytics (a tedy velikost dávky požadavků webové služby Studio (Classic).
- 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: