Skala ditt Stream Analytics-jobb med funktioner i Machine Learning Studio (klassisk)

Tips

Vi rekommenderar starkt att du använder Azure Machine Learning UDF i stället för Machine Learning Studio (klassisk) UDF för bättre prestanda och tillförlitlighet.

Viktigt

Stödet för Machine Learning Studio (klassisk) upphör den 31 augusti 2024. Vi rekommenderar att du byter till Azure Machine Learning innan dess.

Från och med den 1 december 2021 kan du inte skapa nya Machine Learning Studio-resurser (klassiska) (arbetsyta och webbtjänstplan). Till och med den 31 augusti 2024 kan du fortsätta att använda befintliga Machine Learning Studio-experiment (klassiska) och webbtjänster.

Dokumentationen om ML Studio (klassisk) håller på att dras tillbaka och kanske inte uppdateras i framtiden.

Den här artikeln beskriver hur du effektivt skalar Azure Stream Analytics-jobb som använder Machine Learning Studio-funktioner (klassisk). Information om hur du skalar Stream Analytics-jobb i allmänhet finns i artikeln Skala jobb.

Vad är en Studio-funktion (klassisk) i Stream Analytics?

En Machine Learning Studio-funktion (klassisk) i Stream Analytics kan användas som ett vanligt funktionsanrop i Stream Analytics-frågespråket. I bakgrunden är dock dessa funktionsanrop faktiskt Studio-webbtjänstbegäranden (klassisk).

Du kan förbättra dataflödet för Studio-webbtjänstbegäranden (klassisk) genom att "batcha" flera rader tillsammans i samma API-anrop för webbtjänsten. Den här grupperingen kallas för en mini-batch. Mer information finns i Machine Learning Studio (klassiska) Webbtjänster. Stöd för Studio (klassisk) i Stream Analytics.

Konfigurera ett Stream Analytics-jobb med Studio-funktioner (klassiska)

Det finns två parametrar för att konfigurera funktionen Studio (klassisk) som används av Stream Analytics-jobbet:

  • Batchstorleken för studiofunktionens (klassiska) anrop.
  • Antalet enheter för direktuppspelning (SUS) som etablerats för Stream Analytics-jobbet.

För att fastställa lämpliga värden för SU:er bestämmer du om du vill optimera svarstiden för Stream Analytics-jobbet eller dataflödet för varje SU. SUS:er kan alltid läggas till i ett jobb för att öka dataflödet för en välpartitionerad Stream Analytics-fråga. Ytterligare SU:er ökar kostnaden för att köra jobbet.

Fastställa svarstidstoleransen för ditt Stream Analytics-jobb. Om du ökar batchstorleken ökar svarstiden för dina Studio-begäranden (klassiska) och svarstiden för Stream Analytics-jobbet.

Om du ökar batchstorleken kan Stream Analytics-jobbet bearbeta fler händelser med samma antal Studio-webbtjänstbegäranden (klassisk). Ökningen av Svarstid för Studio(klassisk) webbtjänst är vanligtvis sublineär till ökningen av batchstorleken.

Det är viktigt att överväga den mest kostnadseffektiva batchstorleken för en Studio-webbtjänst (klassisk) i alla situationer. Standard batchstorleken för webbtjänstbegäranden är 1 000. Du kan ändra den här standardstorleken med Stream Analytics REST API eller PowerShell-klienten för Stream Analytics.

När du har bestämt dig för en batchstorlek kan du ange antalet strömningsenheter (SUS) baserat på antalet händelser som funktionen behöver bearbeta per sekund. Mer information om strömningsenheter finns i Stream Analytics-skalningsjobb.

Var 6:e SUS får 20 samtidiga anslutningar till Studio-webbtjänsten (klassisk). Men 1 SU-jobb och 3 SU-jobb får 20 samtidiga anslutningar.

Om ditt program genererar 200 000 händelser per sekund och batchstorleken är 1 000 är den resulterande svarstiden för webbtjänsten 200 ms. Den här kursen innebär att varje anslutning kan göra fem begäranden till Studio-webbtjänsten (klassisk) varje sekund. Med 20 anslutningar kan Stream Analytics-jobbet bearbeta 20 000 händelser på 200 ms och 100 000 händelser på en sekund.

För att bearbeta 200 000 händelser per sekund behöver Stream Analytics-jobbet 40 samtidiga anslutningar, som kommer ut till 12 SU:er. Följande diagram illustrerar begäranden från Stream Analytics-jobbet till studiowebbtjänstslutpunkten (klassisk) – var 6:e SKU:er har högst 20 samtidiga anslutningar till Studio-webbtjänsten (klassisk).

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

I allmänhet är B för batchstorlek, L för webbtjänstens svarstid i batchstorlek B i millisekunder, dataflödet för ett Stream Analytics-jobb med N-SUS : er:

Scale Stream Analytics with Studio (classic) Functions Formula

Du kan också konfigurera "maximalt antal samtidiga anrop" i Studio-webbtjänsten (klassisk). Vi rekommenderar att du anger den här parametern till det högsta värdet (200 för närvarande).

Mer information om den här inställningen finns i artikeln Skalning för Machine Learning Studio (klassiska) webbtjänster.

Exempel – Attitydanalys

I följande exempel ingår ett Stream Analytics-jobb med funktionen sentiment analysis Studio (klassisk) enligt beskrivningen i självstudiekursen för Stream Analytics Machine Learning Studio-integrering (klassisk).

Frågan är en enkel fullständigt partitionerad fråga följt av attitydfunktionen , som du ser i följande exempel:

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

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

Nu ska vi undersöka konfigurationen som krävs för att skapa ett Stream Analytics-jobb, som utför attitydanalys av tweets med en hastighet av 10 000 tweets per sekund.

Kan det här Stream Analytics-jobbet hantera trafiken med hjälp av 1 SU? Jobbet kan hänga med i indata med standard batchstorleken 1 000. Standardsvarstiden för webbtjänsten sentiment analysis Studio (klassisk) (med en standard batchstorlek på 1 000) skapar inte mer än en sekunds svarstid.

Stream Analytics-jobbets totala svarstid eller svarstid från slutpunkt till slutpunkt skulle vanligtvis vara några sekunder. Ta en mer detaljerad titt på det här Stream Analytics-jobbet, särskilt Studio-funktionsanropen (klassisk). Med en batchstorlek på 1 000 tar ett dataflöde på 10 000 händelser cirka 10 begäranden till webbtjänsten. Även med en SU finns det tillräckligt med samtidiga anslutningar för att hantera den här indatatrafiken.

Om händelsefrekvensen för indata ökar med 100 gånger måste Stream Analytics-jobbet bearbeta 1 000 000 tweets per sekund. Det finns två alternativ för att uppnå den ökade skalan:

  1. Öka batchstorleken.
  2. Partitionering av indataströmmen för att bearbeta händelserna parallellt.

Med det första alternativet ökar jobbfördröjningen .

Med det andra alternativet måste du etablera fler SU:er för att få fler samtidiga Studio-webbtjänstbegäranden (klassisk). Det här större antalet SU:er ökar jobbkostnaden.

Nu ska vi titta på skalningen med hjälp av följande svarstidsmått för varje batchstorlek:

Svarstid Batchstorlek
200 ms 1 000-händelsebatchar eller lägre
250 ms 5 000-händelsebatchar
300 ms 10 000 händelsebatchar
500 ms 25 000 händelsebatchar
  1. Använd det första alternativet (inte etablera fler SUS). Batchstorleken kan ökas till 25 000. Om du ökar batchstorleken på det här sättet kan jobbet bearbeta 1 000 000 händelser med 20 samtidiga anslutningar till Studio-webbtjänsten (klassisk) (med en svarstid på 500 ms per anrop). Så den ytterligare svarstiden för Stream Analytics-jobbet på grund av attitydfunktionsbegäranden mot Studio-webbtjänstbegäranden (klassisk) skulle ökas från 200 ms till 500 ms. Batchstorleken kan dock inte ökas oändligt eftersom Studio-webbtjänsterna (klassiska) kräver att nyttolaststorleken för en begäran är 4 MB eller mindre och tidsgränsen för webbtjänstbegäranden uppnås efter 100 sekunders drift.
  2. Med det andra alternativet lämnas batchstorleken på 1 000, med svarstid på 200 ms för webbtjänsten. Var 20:e samtidiga anslutningar till webbtjänsten skulle kunna bearbeta 1 000 * 20 * 5 händelser = 100 000 per sekund. Så för att bearbeta 1 000 000 händelser per sekund behöver jobbet 60 SUS. Jämfört med det första alternativet skulle Stream Analytics-jobbet göra fler batchbegäranden för webbtjänster, vilket i sin tur skulle generera en ökad kostnad.

Nedan visas en tabell för dataflödet för Stream Analytics-jobbet för olika SU:er och batchstorlekar (i antal händelser per sekund).

batchstorlek (ML svarstid) 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 SUS 2 500 5 000 20 000 30,000 50 000
6 SUS 2 500 5 000 20 000 30,000 50 000
12 SUS 5 000 10 000 40 000 60 000 100 000
18 SUS 7 500 15 000 60 000 90 000 150 000
24 SUS 10 000 20 000 80 000 120,000 200 000
60 SUS 25,000 50 000 200 000 300,000 500 000

Vid det här laget bör du redan ha en god förståelse för hur Studio (klassiska) funktioner i Stream Analytics fungerar. Du förstår förmodligen också att Stream Analytics-jobb "hämtar" data från datakällor och varje "pull" returnerar en batch med händelser som Stream Analytics-jobbet ska bearbeta. Hur påverkar den här pull-modellen Studio-webbtjänstbegäranden (klassiska) ?

Normalt är batchstorleken som vi har angett för Studio-funktioner (klassisk) inte exakt delbar med antalet händelser som returneras av varje Stream Analytics-jobb "pull". När detta inträffar anropas Studio-webbtjänsten (klassisk) med "partiella" batchar. Om du använder partiella batchar undviker du ytterligare jobbfördröjningar vid sammankoppling av händelser från pull till pull.

I området Övervaka i ett Stream Analytics-jobb har ytterligare tre funktionsrelaterade mått lagts till. De är FUNKTIONSBEGÄRANDEN, FUNKTIONSHÄNDELSER OCH MISSLYCKADE FUNKTIONSBEGÄRANDEN, enligt bilden nedan.

Scale Stream Analytics with Studio (classic) Functions Metrics

Definieras på följande sätt:

FUNKTIONSBEGÄRANDEN: Antalet funktionsbegäranden.

FUNKTIONSHÄNDELSER: Antalet händelser i funktionsbegäranden.

MISSLYCKADE FUNKTIONSBEGÄRANDEN: Antalet misslyckade funktionsbegäranden.

Viktiga lärdomar

Om du vill skala ett Stream Analytics-jobb med Studio-funktioner (klassiska) bör du tänka på följande faktorer:

  1. Indatahändelsehastigheten.
  2. Den tolererade svarstiden för det Stream Analytics-jobb som körs (och därmed batchstorleken för Studio-webbtjänstbegäranden (klassisk).
  3. De etablerade Stream Analytics-SUS:erna och antalet Studio-webbtjänstbegäranden (klassisk) (de ytterligare funktionsrelaterade kostnaderna).

En fullständigt partitionerad Stream Analytics-fråga användes som exempel. Om en mer komplex fråga behövs är Microsoft QA-frågesidan& för Azure Stream Analytics en bra resurs för att få ytterligare hjälp från Stream Analytics-teamet.

Nästa steg

Mer information om Stream Analytics finns i: