Skala ditt Stream Analytics jobb med Azure Machine Learning Studio (klassiska) funktionerScale your Stream Analytics job with Azure Machine Learning Studio (classic) functions

Tips

Vi rekommenderar starkt att du använder Azure Machine Learning UDF: er i stället för Azure Machine Learning Studio (klassisk) UDF för bättre prestanda och tillförlitlighet.It is highly recommended to use Azure Machine Learning UDFs instead of Azure Machine Learning Studio (classic) UDF for improved performance and reliability.

Den här artikeln beskriver hur du effektivt skalar Azure Stream Analytics jobb som använder Azure Machine Learning Studio (klassiska) funktioner.This article discusses how to efficiently scale Azure Stream Analytics jobs that use Azure Machine Learning Studio (classic) functions. Information om hur du skalar Stream Analytics jobb i allmänhet finns i artikeln skalförändra jobb.For information on how to scale Stream Analytics jobs in general see the article Scaling jobs.

Vad är en Studio-funktion (klassisk) i Stream Analytics?What is a Studio (classic) function in Stream Analytics?

En Machine Learning Studio (klassisk) funktion i Stream Analytics kan användas som ett vanligt funktions anrop i Stream Analytics frågespråket.A Machine Learning Studio (classic) function in Stream Analytics can be used like a regular function call in the Stream Analytics query language. Dessa funktions anrop är dock i själva verket Studio (klassiska) webb tjänst begär Anden.Behind the scenes, however, these function calls are actually Studio (classic) Web Service requests.

Du kan förbättra data flödet för webb tjänst begär anden i Studio (klassisk) genom att "Gruppera" flera rader i samma webb tjänst-API-anrop.You can improve the throughput of Studio (classic) web service requests by "batching" multiple rows together in the same web service API call. Den här grupperingen kallas för en mini-batch.This grouping is called a mini-batch. Mer information finns i Azure Machine Learning Studio (klassiska) webb tjänster.For more information, see Azure Machine Learning Studio (classic) Web Services. Stöd för Studio (klassisk) i Stream Analytics.Support for Studio (classic) in Stream Analytics.

Konfigurera ett Stream Analytics jobb med Studio-funktioner (klassisk)Configure a Stream Analytics job with Studio (classic) functions

Det finns två parametrar för att konfigurera den Studio-funktion (klassisk) som används av ditt Stream Analytics jobb:There are two parameters to configure the Studio (classic) function used by your Stream Analytics job:

  • Batchstorleken för Studio (klassisk)-funktions anrop.Batch size of the Studio (classic) function calls.
  • Antalet strömnings enheter (SUs) som har allokerats för Stream Analyticss jobbet.The number of Streaming Units (SUs) provisioned for the Stream Analytics job.

Om du vill fastställa lämpliga värden för SUs bestämmer du om du vill optimera svars tiden för Stream Analytics jobb eller genom strömningen för varje SU.To determine the appropriate values for SUs, decide whether you would like to optimize latency of the Stream Analytics job or the throughput of each SU. SUs kan alltid läggas till i ett jobb för att öka data flödet för en väl partitionerad Stream Analytics fråga.SUs may always be added to a job to increase the throughput of a well-partitioned Stream Analytics query. Ytterligare SUs ökar kostnaden för att köra jobbet.Additional SUs do increase the cost of running the job.

Fastställ latens toleransen för ditt Stream Analytics jobb.Determine the latency tolerance for your Stream Analytics job. Om du ökar batchstorleken ökar svars tiden för dina Studio (klassiska) förfrågningar och svars tiden för Stream Analytics jobbet.Increasing the batch size will increase the latency of your Studio (classic) requests and the latency of the Stream Analytics job.

Om du ökar batchstorleken kan Stream Analytics jobbet bearbeta Fler händelser med samma antal webb tjänst begär anden i Studio (klassisk).Increasing the batch size allows the Stream Analytics job to process more events with the same number of Studio (classic) web service requests. Ökningen av den klassiska webb tjänst svars tiden i Studio är vanligt vis under streck till ökningen av batchstorleken.The increase of Studio (classic) web service latency is usually sublinear to the increase of batch size.

Det är viktigt att tänka på den mest kostnads effektiva batchstorleken för en Studio (klassisk) webb tjänst i en specifik situation.It's important to consider the most cost-efficient batch size for a Studio (classic) web service in any given situation. Standard grupp storleken för webb tjänst begär Anden är 1000.The default batch size for web service requests is 1000. Du kan ändra standard storleken med hjälp av Stream Analytics REST API eller PowerShell-klienten för Stream Analytics.You can change this default size using the Stream Analytics REST API or the PowerShell client for Stream Analytics.

När du har bestämt dig för en batchstorlek kan du ange antalet enheter för strömning (SUs) baserat på antalet händelser som funktionen måste bearbeta per sekund.Once you've decided on a batch size, you can set the number of streaming units (SUs), based on the number of events that the function needs to process per second. Mer information om enheter för strömning finns i Stream Analytics skalnings jobb.For more information about streaming units, see Stream Analytics scale jobs.

Varje 6 SUs får 20 samtidiga anslutningar till webb tjänsten Studio (klassisk).Every 6 SUs get 20 concurrent connections to the Studio (classic) web service. Men 1 SU-jobb och 3 SU-jobb får 20 samtidiga anslutningar.However, 1 SU job and 3 SU jobs get 20 concurrent connections.

Om ditt program genererar 200 000 händelser per sekund och batchstorleken är 1000, är den resulterande webb tjänstens svars tid 200 MS.If your application generates 200,000 events per second, and the batch size is 1000, then the resulting web service latency is 200 ms. Den här frekvensen innebär att varje anslutning kan göra fem begär anden till webb tjänsten Studio (klassisk) varje sekund.This rate means that every connection can make five requests to the Studio (classic) web service each second. Med 20 anslutningar kan Stream Analytics-jobbet bearbeta 20 000-händelser i 200 MS-och 100 000-händelser på en sekund.With 20 connections, the Stream Analytics job can process 20,000 events in 200 ms and 100,000 events in a second.

För att bearbeta 200 000-händelser per sekund behöver Stream Analyticss jobbet 40 samtidiga anslutningar, som kommer ut till 12 SUs.To process 200,000 events per second, the Stream Analytics job needs 40 concurrent connections, which come out to 12 SUs. I följande diagram illustreras begär Anden från Stream Analytics-jobbet till den klassiska webb tjänst slut punkten för Studio (klassisk). varje 6 SUs har 20 samtidiga anslutningar till Studio-webbtjänsten (klassisk) med max.The following diagram illustrates the requests from the Stream Analytics job to the Studio (classic) web service endpoint – Every 6 SUs has 20 concurrent connections to Studio (classic) web service at max.

Skala Stream Analytics med Studio (klassisk) funktioner två jobb exempelScale Stream Analytics with Studio (classic) Functions two job example

I allmänhet, B _ för batchstorlek, _L_ för webb tjänstens svars tid vid batch-storlek B i millisekunder, är data flödet för ett Stream Analytics jobb med _ N SUS:In general, B _ for batch size, _L_ for the web service latency at batch size B in milliseconds, the throughput of a Stream Analytics job with _ N SUs is:

Skala Stream Analytics med funktions formeln Studio (klassisk)Scale Stream Analytics with Studio (classic) Functions Formula

Du kan också konfigurera "maximalt antal samtidiga anrop" i webb tjänsten Studio (klassisk).You can also configure the 'max concurrent calls' on the Studio (classic) web service. Vi rekommenderar att du anger den här parametern till det maximala värdet (200 för närvarande).It's recommended to set this parameter to the maximum value (200 currently).

Mer information om den här inställningen finns i skalnings artikeln för Machine Learning Studio (klassiska) webb tjänster.For more information on this setting, review the Scaling article for Machine Learning Studio (classic) Web Services.

Exempel – AttitydanalysExample – Sentiment Analysis

I följande exempel finns ett Stream Analytics jobb med funktionen sentiment Analysis Studio (klassisk), enligt beskrivningen i själv studie kursen om Stream Analytics Machine Learning Studio (klassisk).The following example includes a Stream Analytics job with the sentiment analysis Studio (classic) function, as described in the Stream Analytics Machine Learning Studio (classic) integration tutorial.

Frågan är en helt partitionerad fråga som följs av sentiment -funktionen, som visas i följande exempel:The query is a simple fully partitioned query followed by the sentiment function, as shown in the following example:

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

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

Vi tar en titt på den konfiguration som krävs för att skapa ett Stream Analytics jobb, vilket gör sentiment analys av tweets med en hastighet av 10 000 tweets per sekund.Let's examine the configuration necessary to create a Stream Analytics job, which does sentiment analysis of tweets at a rate of 10,000 tweets per second.

Kan det här Stream Analytics jobbet hantera trafiken med hjälp av 1 SU?Using 1 SU, could this Stream Analytics job handle the traffic? Jobbet kan fortsätta med indatamängden med hjälp av standard-batchstorleken på 1000.The job can keep up with the input using the default batch size of 1000. Standard fördröjningen för webb tjänsten sentiment Analysis Studio (klassisk) (med en standard batchstorlek på 1000) skapar inte mer än en sekund svars tid.The default latency of the sentiment analysis Studio (classic) web service (with a default batch size of 1000) creates no more than a second of latency.

Stream Analytics jobbets övergripande svars tid eller slut punkt till slut punkt brukar vara några sekunder.The Stream Analytics job's overall or end-to-end latency would typically be a few seconds. Ta en mer detaljerad titt på det här Stream Analyticss jobbet, särskilt Studio (klassiskt) funktions anrop.Take a more detailed look into this Stream Analytics job, especially the Studio (classic) function calls. Med en batchstorlek på 1000 tar ett flöde med 10 000-händelser att ta cirka 10 förfrågningar till webb tjänsten.With a batch size of 1000, a throughput of 10,000 events takes about 10 requests to the web service. Även om det finns tillräckligt många samtidiga anslutningar för att hantera den här Indataporten med en SU.Even with one SU, there are enough concurrent connections to accommodate this input traffic.

Om frekvensen för inaktiva händelser ökar med 100x måste Stream Analyticss jobbet bearbeta 1 000 000 tweets per sekund.If the input event rate increases by 100x, then the Stream Analytics job needs to process 1,000,000 tweets per second. Det finns två alternativ för att uppnå den ökade skalningen:There are two options to accomplish the increased scale:

  1. Öka batchstorleken.Increase the batch size.
  2. Partitionera indataströmmen för att bearbeta händelserna parallellt.Partition the input stream to process the events in parallel.

Med det första alternativet ökar jobb svars tiden .With the first option, the job latency increases.

Med det andra alternativet måste du etablera mer SUs om du vill ha fler samtidiga WebService-begäranden (klassiska Studio).With the second option, you will have to provision more SUs to have more concurrent Studio (classic) web service requests. Detta är ett större antal SUs-jobb, vilket ökar jobb kostnaden.This greater number of SUs, increases the job cost.

Nu ska vi titta på skalningen med följande tids fördröjnings mått för varje batchstorlek:Let's look at the scaling using the following latency measurements for each batch size:

SvarstidLatency BatchstorlekBatch size
200 MS200 ms 1000 – händelse grupper eller under1000-event batches or below
250 MS250 ms 5 000 – händelse batchar5,000-event batches
300 MS300 ms 10 000 – händelse batchar10,000-event batches
500 ms500 ms 25 000 – händelse batchar25,000-event batches
  1. Med det första alternativet (inte etablering av mer SUS).Using the first option (not provisioning more SUs). Batchstorleken kan höjas till 25 000.The batch size could be increased to 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 webb tjänsten Studio (klassisk) (med en svars tid på 500 ms per anrop).Increasing the batch size in this way will allow the job to process 1,000,000 events with 20 concurrent connections to the Studio (classic) web service (with a latency of 500 ms per call). Ytterligare svars tid för Stream Analytics jobb på grund av sentiment-funktionen mot WebService-begärandena för Studio (klassisk) skulle öka från 200 MS till 500 ms.So the additional latency of the Stream Analytics job due to the sentiment function requests against the Studio (classic) web service requests would be increased from 200 ms to 500 ms. Batchstorleken kan dock inte ökas oändligt eftersom Studio (klassiska) webb tjänster kräver en begärans nytto Last storlek 4 MB eller mindre och webb tjänst begär timeout efter 100 sekunders åtgärd.However, batch size can't be increased infinitely as the Studio (classic) web services requires the payload size of a request be 4 MB or smaller, and web service requests timeout after 100 seconds of operation.
  2. Med det andra alternativet lämnas batchstorleken på 1000, med 200-MS-webbtjänstens svars tid, var 20 samtidiga anslutningar till webb tjänsten att kunna bearbeta 1000 * 20 * 5 händelser = 100 000 per sekund.Using the second option, the batch size is left at 1000, with 200-ms web service latency, every 20 concurrent connections to the web service would be able to process 1000 * 20 * 5 events = 100,000 per second. För att bearbeta 1 000 000-händelser per sekund behöver jobbet 60 SUs.So to process 1,000,000 events per second, the job would need 60 SUs. Jämfört med det första alternativet skulle Stream Analytics jobb göra fler webb tjänst begär Anden, vilket i sin tur genererar en ökad kostnad.Compared to the first option, Stream Analytics job would make more web service batch requests, in turn generating an increased cost.

Nedan visas en tabell för data flödet för Stream Analytics jobb för olika SUs-och batch-storlekar (i antal händelser per sekund).Below is a table for the throughput of the Stream Analytics job for different SUs and batch sizes (in number of events per second).

batchstorlek (ML-latens)batch size (ML latency) 500 (200 MS)500 (200 ms) 1 000 (200 MS)1,000 (200 ms) 5 000 (250 MS)5,000 (250 ms) 10 000 (300 MS)10,000 (300 ms) 25 000 (500 ms)25,000 (500 ms)
1 SU1 SU 2 5002,500 5 0005,000 20 00020,000 30 00030,000 50 00050,000
3 SUs3 SUs 2 5002,500 5 0005,000 20 00020,000 30 00030,000 50 00050,000
6 SUs6 SUs 2 5002,500 5 0005,000 20 00020,000 30 00030,000 50 00050,000
12 SUs12 SUs 5 0005,000 10 00010,000 40 00040,000 60 00060,000 100 000100,000
18 SUs18 SUs 7 5007,500 15 00015,000 60 00060,000 90 00090,000 150 000150,000
24 SUs24 SUs 10 00010,000 20 00020,000 80 00080,000 120 000120,000 200 000200,000
60 SUs60 SUs 25,00025,000 50 00050,000 200 000200,000 300 000300,000 500 000500,000

Nu bör du redan ha en god förståelse för hur Studio (klassiska) funktioner i Stream Analytics fungerar.By now, you should already have a good understanding of how Studio (classic) functions in Stream Analytics work. Du är förmodligen också medveten om att Stream Analytics jobbs "pull"-data från data källor och varje "pull" returnerar en batch med händelser för det Stream Analytics jobb som ska bearbetas.You likely also understand that Stream Analytics jobs "pull" data from data sources and each "pull" returns a batch of events for the Stream Analytics job to process. Hur påverkar den här pull-modellen de Studio (klassiska) webb tjänst begär Anden?How does this pull model impact the Studio (classic) web service requests?

Normalt är batchstorleken som vi anger för Studio (klassisk) funktioner inte exakt delbar med antalet händelser som returneras av varje Stream Analytics jobb "pull".Normally, the batch size we set for Studio (classic) functions won't exactly be divisible by the number of events returned by each Stream Analytics job "pull". När detta inträffar anropas webb tjänsten Studio (klassisk) med del-batchar.When this occurs, the Studio (classic) web service is called with "partial" batches. Genom att använda del batchar slipper du ytterligare jobb fördröjning i sammanslagning av händelser från pull till pull.Using partial batches avoids incurring additional job latency overhead in coalescing events from pull to pull.

I övervaknings ytan i ett Stream Analytics jobb har tre ytterligare Function-relaterade mått lagts till.In the Monitor area of a Stream Analytics job, three additional function-related metrics have been added. De är funktions begär Anden, funktions händelser och misslyckade funktions begär Anden, som visas i bilden nedan.They are FUNCTION REQUESTS, FUNCTION EVENTS and FAILED FUNCTION REQUESTS, as shown in the graphic below.

Skala Stream Analytics med Studio (klassisk) funktions måttScale Stream Analytics with Studio (classic) Functions Metrics

Definieras enligt följande:The are defined as follows:

Funktions begär Anden: antalet funktions begär Anden.FUNCTION REQUESTS: The number of function requests.

Funktions händelser: antalet händelser i funktions begär Anden.FUNCTION EVENTS: The number events in the function requests.

Misslyckade funktions begär Anden: antal misslyckade funktions begär Anden.FAILED FUNCTION REQUESTS: The number of failed function requests.

Key takeawaysKey Takeaways

Om du vill skala ett Stream Analytics jobb med Studio (klassiska) funktioner bör du tänka på följande faktorer:To scale a Stream Analytics job with Studio (classic) functions, consider the following factors:

  1. Frekvensen för ingående händelser.The input event rate.
  2. Den tolererade svars tiden för Stream Analytics jobb som körs (och därmed batch-storleken för de Studio (klassiska) webb tjänst begär Anden).The tolerated latency for the running Stream Analytics job (and thus the batch size of the Studio (classic) web service requests).
  3. Den tillhandahållna Stream Analytics SUs och antalet WebService-begäranden för Studio (klassisk) (ytterligare funktions relaterade kostnader).The provisioned Stream Analytics SUs and the number of Studio (classic) web service requests (the additional function-related costs).

En helt partitionerad Stream Analytics-fråga användes som ett exempel.A fully partitioned Stream Analytics query was used as an example. Om en mer komplex fråga krävs är webbplatsen Microsoft Q&en fråga för Azure Stream Analytics en bra resurs för att få ytterligare hjälp från Stream Analyticss teamet.If a more complex query is needed, the Microsoft Q&A question page for Azure Stream Analytics is a great resource for getting additional help from the Stream Analytics team.

Nästa stegNext steps

Mer information om Stream Analytics finns i:To learn more about Stream Analytics, see: