Skalowanie zadania Stream Analytics za pomocą funkcji Azure Machine Learning Studio (klasycznych)Scale your Stream Analytics job with Azure Machine Learning Studio (classic) functions

Porada

Zdecydowanie zaleca się używanie Azure Machine Learning UDF zamiast Azure Machine Learning Studio (klasycznego) UDF w celu zwiększenia wydajności i niezawodności.It is highly recommended to use Azure Machine Learning UDFs instead of Azure Machine Learning Studio (classic) UDF for improved performance and reliability.

W tym artykule omówiono sposób efektywnego skalowania Azure Stream Analytics zadań korzystających z funkcji Azure Machine Learning Studio (klasycznych).This article discusses how to efficiently scale Azure Stream Analytics jobs that use Azure Machine Learning Studio (classic) functions. Aby uzyskać informacje o tym, jak skalować zadania Stream Analytics, zobacz artykuł skalowanie zadań.For information on how to scale Stream Analytics jobs in general see the article Scaling jobs.

Co to jest funkcja programu Studio (klasyczna) w Stream Analytics?What is a Studio (classic) function in Stream Analytics?

Funkcja Machine Learning Studio (klasyczna) w Stream Analytics może być używana jak zwykłe wywołanie funkcji w języku zapytań Stream Analytics.A Machine Learning Studio (classic) function in Stream Analytics can be used like a regular function call in the Stream Analytics query language. W tle te wywołania funkcji to w rzeczywistości żądania usługi sieci Web programu Studio (klasyczne).Behind the scenes, however, these function calls are actually Studio (classic) Web Service requests.

Można zwiększyć przepływność żądań usługi sieci Web programu Studio (klasycznych) przez "przetwarzanie wsadowe" wielu wierszy razem w tym samym wywołaniu interfejsu API usługi sieci Web.You can improve the throughput of Studio (classic) web service requests by "batching" multiple rows together in the same web service API call. Ta grupa jest nazywana mini-Batch.This grouping is called a mini-batch. Aby uzyskać więcej informacji, zobacz Azure Machine Learning Studio (klasyczne) usługi sieci Web.For more information, see Azure Machine Learning Studio (classic) Web Services. Obsługa programu Studio (klasyczna) w Stream Analytics.Support for Studio (classic) in Stream Analytics.

Konfigurowanie zadania Stream Analytics za pomocą funkcji programu Studio (klasycznych)Configure a Stream Analytics job with Studio (classic) functions

Istnieją dwa parametry konfigurowania funkcji Studio (klasycznej) używanej przez zadanie Stream Analytics:There are two parameters to configure the Studio (classic) function used by your Stream Analytics job:

  • Rozmiar wsadu wywołań funkcji programu Studio (klasycznych).Batch size of the Studio (classic) function calls.
  • Liczba jednostek przesyłania strumieniowego (SUs) przywidzianych dla zadania Stream Analytics.The number of Streaming Units (SUs) provisioned for the Stream Analytics job.

Aby określić odpowiednie wartości dla usług SUs, zdecyduj, czy chcesz zoptymalizować opóźnienie zadania Stream Analytics lub przepływność każdego elementu 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. Usługi SUs można zawsze dodać do zadania, aby zwiększyć przepływność dobrze partycjonowanego Stream Analytics zapytania.SUs may always be added to a job to increase the throughput of a well-partitioned Stream Analytics query. Dodatkowe usługi SUs zwiększają koszt uruchomienia zadania.Additional SUs do increase the cost of running the job.

Określ tolerancję opóźnienia dla zadania Stream Analytics.Determine the latency tolerance for your Stream Analytics job. Zwiększenie rozmiaru partii spowoduje zwiększenie opóźnień żądań programu Studio (klasycznych) i opóźnienia zadania Stream Analytics.Increasing the batch size will increase the latency of your Studio (classic) requests and the latency of the Stream Analytics job.

Zwiększenie rozmiaru partii umożliwia zadanie Stream Analytics przetwarzać więcej zdarzeń z taką samą liczbą żądań usług sieci Web programu Studio (klasycznych).Increasing the batch size allows the Stream Analytics job to process more events with the same number of Studio (classic) web service requests. Zwiększenie opóźnienia usługi sieci Web (klasycznej) jest zwykle liniowe w celu zwiększenia rozmiaru partii.The increase of Studio (classic) web service latency is usually sublinear to the increase of batch size.

Ważne jest, aby wziąć pod uwagę najbardziej ekonomiczny rozmiar partii dla usługi sieci Web programu Studio (klasycznej) w każdej sytuacji.It's important to consider the most cost-efficient batch size for a Studio (classic) web service in any given situation. Domyślny rozmiar wsadu dla żądań usług sieci Web to 1000.The default batch size for web service requests is 1000. Domyślny rozmiar można zmienić Stream Analytics za pomocą interfejsu API REST lub klienta programu PowerShell dla Stream Analytics.You can change this default size using the Stream Analytics REST API or the PowerShell client for Stream Analytics.

Po ustaleniu rozmiaru partii można ustawić liczbę jednostek przesyłania strumieniowego (SUs) na podstawie liczby zdarzeń, które funkcja musi przetworzyć na 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. Aby uzyskać więcej informacji na temat jednostek przesyłania strumieniowego, zobacz Stream Analytics skalowanie zadań.For more information about streaming units, see Stream Analytics scale jobs.

Co 6 usługi SUs mają 20 współbieżnych połączeń z usługą sieci Web Studio (klasyczną).Every 6 SUs get 20 concurrent connections to the Studio (classic) web service. Jednak 1 zadanie SU i 3 zadania SU otrzymują 20 współbieżnych połączeń.However, 1 SU job and 3 SU jobs get 20 concurrent connections.

Jeśli aplikacja generuje 200 000 zdarzeń na sekundę, a rozmiar partii to 1000, wynikiem opóźnienia usługi sieci Web jest 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. Ta częstotliwość oznacza, że każde połączenie może wykonywać pięć żądań do usługi sieci Web programu Studio (klasycznej) co sekundę.This rate means that every connection can make five requests to the Studio (classic) web service each second. W przypadku 20 połączeń zadanie Stream Analytics może przetwarzać zdarzenia 20 000 w 200 MS i 100 000 zdarzeń w drugim.With 20 connections, the Stream Analytics job can process 20,000 events in 200 ms and 100,000 events in a second.

Aby przetworzyć 200 000 zdarzeń na sekundę, zadanie Stream Analytics potrzebuje współbieżnych połączeń 40, które wychodzą do 12 usług SUs.To process 200,000 events per second, the Stream Analytics job needs 40 concurrent connections, which come out to 12 SUs. Na poniższym diagramie przedstawiono żądania z zadania Stream Analytics do punktu końcowego usługi sieci Web programu Studio (klasycznego) — co 6 usług SUs ma 20 współbieżnych połączeń z usługą sieci Web w wersji Studio (klasyczną).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.

Skalowanie Stream Analytics przy użyciu funkcji programu Studio (klasycznej) dwa przykładowe zadaniaScale Stream Analytics with Studio (classic) Functions two job example

Ogólnie rzecz biorąc, B _ dla rozmiaru partii, _L_ w przypadku opóźnienia usługi sieci Web w partii o rozmiarze B w milisekundach, przepływność zadania Stream Analyticsowego z _ N SUs to: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:

Stream Analytics skalowania przy użyciu formuły funkcji w programie Studio (klasycznej)Scale Stream Analytics with Studio (classic) Functions Formula

Możesz również skonfigurować "maksymalną liczbę współbieżnych wywołań" w usłudze sieci Web Studio (klasyczna).You can also configure the 'max concurrent calls' on the Studio (classic) web service. Zalecane jest ustawienie dla tego parametru wartości maksymalnej (200 obecnie).It's recommended to set this parameter to the maximum value (200 currently).

Aby uzyskać więcej informacji na temat tego ustawienia, zapoznaj się z artykułem skalowanie dla usług sieci Web Machine Learning Studio (klasycznych).For more information on this setting, review the Scaling article for Machine Learning Studio (classic) Web Services.

Przykład — analiza tonacjiExample – Sentiment Analysis

Poniższy przykład obejmuje zadanie Stream Analytics przy użyciu funkcji tonacji Analysis Studio (klasycznej), zgodnie z opisem w samouczku integracji Stream Analytics Machine Learning Studio (klasyczne).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.

Zapytanie jest prostym w pełni partycjonowanym zapytaniem, a następnie funkcją tonacji , jak pokazano w następującym przykładzie: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

Sprawdźmy konfigurację niezbędną do utworzenia zadania Stream Analytics, które tonacji analizę tweetów według stawki 10 000 tweetów na 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.

W przypadku korzystania z 1 SU można to zadanie Stream Analytics obsłużyć ten ruch?Using 1 SU, could this Stream Analytics job handle the traffic? Zadanie może zachować dane wejściowe przy użyciu domyślnego rozmiaru wsadu 1000.The job can keep up with the input using the default batch size of 1000. Domyślne opóźnienie usługi sieci Web tonacji Analysis Studio (klasycznej) (z domyślnym rozmiarem partii 1000) powoduje utworzenie nie więcej niż sekund opóźnienia.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.

Całkowite lub kompleksowe opóźnienie zadania Stream Analytics zwykle trwa kilka sekund.The Stream Analytics job's overall or end-to-end latency would typically be a few seconds. Zapoznaj się z bardziej szczegółowym opisem tego zadania Stream Analytics, zwłaszcza wywołań funkcji Studio (klasycznych).Take a more detailed look into this Stream Analytics job, especially the Studio (classic) function calls. W przypadku partii o rozmiarze 1000 przepływność zdarzeń 10 000 obejmuje 10 żądań do usługi sieci Web.With a batch size of 1000, a throughput of 10,000 events takes about 10 requests to the web service. Nawet z jednym parametrem SU jest wystarczająca liczba współbieżnych połączeń, aby pomieścić ten ruch wejściowy.Even with one SU, there are enough concurrent connections to accommodate this input traffic.

Jeśli współczynnik zdarzeń wejściowych rośnie przez 100x, zadanie Stream Analytics musi przetwarzać tweety 1 000 000 na sekundę.If the input event rate increases by 100x, then the Stream Analytics job needs to process 1,000,000 tweets per second. Dostępne są dwie opcje osiągnięcia zwiększonej skali:There are two options to accomplish the increased scale:

  1. Zwiększ rozmiar wsadu.Increase the batch size.
  2. Podziel strumień wejściowy, aby przetwarzać zdarzenia równolegle.Partition the input stream to process the events in parallel.

Przy pierwszej opcji opóźnienia zadania rosną.With the first option, the job latency increases.

Po drugiej opcji trzeba będzie udostępnić więcej usług SUs, aby mieć więcej współbieżnych żądań usługi sieci Web (klasycznych).With the second option, you will have to provision more SUs to have more concurrent Studio (classic) web service requests. Ta większa liczba usług SUs zwiększa koszt zadania.This greater number of SUs, increases the job cost.

Przyjrzyjmy się skalowaniu przy użyciu następujących pomiarów opóźnienia dla każdego rozmiaru wsadu:Let's look at the scaling using the following latency measurements for each batch size:

OpóźnienieLatency Rozmiar partiiBatch size
200 MS200 ms 1000 — partie zdarzeń lub poniżej1000-event batches or below
250 MS250 ms 5 000 — partie zdarzeń5,000-event batches
300 ms300 ms 10 000 — partie zdarzeń10,000-event batches
500 ms500 ms 25 000 — partie zdarzeń25,000-event batches
  1. Korzystanie z pierwszej opcji (bez aprowizacji więcej usług SUs).Using the first option (not provisioning more SUs). Rozmiar wsadu można zwiększyć do 25 000.The batch size could be increased to 25,000. Zwiększenie rozmiaru partii w ten sposób umożliwi zadanie przetwarzania zdarzeń 1 000 000 z 20 współbieżnych połączeń z usługą sieci Web programu Studio (klasyczną) (z opóźnieniem 500 MS na wywołanie).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). W związku z tym dodatkowe opóźnienie zadania Stream Analytics ze względu na żądania funkcji tonacji w stosunku do żądań usługi sieci Web programu Studio (klasyczny) zostałyby zwiększone z 200 MS do 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. Nie można jednak zwiększyć rozmiaru wsadu, ponieważ usługi sieci Web programu Studio (klasycznej) wymagają, aby rozmiar ładunku żądania wynosił 4 MB lub mniejszy, a żądania usługi sieci Web przekroczyły limit czasu 100 sekund operacji.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. Przy użyciu drugiej opcji rozmiar wsadu jest pozostawiony o 1000 z opóźnieniem usługi sieci Web 200 – MS, co 20 współbieżnych połączeń z usługą sieci Web może przetwarzać 1000 * 20 * 5 zdarzeń = 100 000 na 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. W celu przetworzenia zdarzeń 1 000 000 na sekundę zadanie będzie wymagało 60 programu SUs.So to process 1,000,000 events per second, the job would need 60 SUs. W porównaniu do pierwszej opcji zadanie Stream Analytics zwiększy liczbę żądań wsadowych usługi sieci Web, z kolei generując zwiększony koszt.Compared to the first option, Stream Analytics job would make more web service batch requests, in turn generating an increased cost.

Poniżej znajduje się tabela przepływności zadania Stream Analytics dla różnych rozmiarów usług SUs i wsadowych (liczba zdarzeń na 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).

rozmiar wsadu (opóźnienie w ML)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 25002,500 50005,000 20 00020,000 30 00030,000 50 00050,000
3 usługi SUs3 SUs 25002,500 50005,000 20 00020,000 30 00030,000 50 00050,000
6 usługi SUs6 SUs 25002,500 50005,000 20 00020,000 30 00030,000 50 00050,000
12 usług SUs12 SUs 50005,000 10 00010,000 40 00040,000 60 00060,000 100 000100,000
18 usług SUs18 SUs 75007,500 15 00015,000 60 00060,000 90 00090,000 150 000150,000
24 usługi SUs24 SUs 10 00010,000 20 00020,000 80 00080,000 120 000120,000 200,000200,000
60 usługi SUs60 SUs 25 00025,000 50 00050,000 200,000200,000 300 000300,000 500 000500,000

Teraz warto już wiedzieć, jak działają funkcje programu Studio (klasyczne) w Stream Analytics.By now, you should already have a good understanding of how Studio (classic) functions in Stream Analytics work. Możesz również zrozumieć, że Stream Analytics zadania "ściągania" ze źródeł danych, a każdy "ściągający" zwróci partię zdarzeń dla zadania Stream Analytics do przetworzenia.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. Jak ten model ściągania ma wpływ na żądania usługi sieci Web programu Studio (klasycznej)?How does this pull model impact the Studio (classic) web service requests?

Zwykle rozmiar wsadu ustawiany dla programu Studio (klasyczny) nie będzie dokładnie widoczny przez liczbę zdarzeń zwróconych przez każde zadanie Stream Analytics "ściągania".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". W takim przypadku usługa sieci Web Studio (klasyczna) jest wywoływana ze partiami "częściowe".When this occurs, the Studio (classic) web service is called with "partial" batches. Użycie partii częściowych pozwala uniknąć ponoszenia dodatkowych kosztów opóźnienia zadania w przypadku zdarzeń łączących od ściągania do ściągania.Using partial batches avoids incurring additional job latency overhead in coalescing events from pull to pull.

W obszarze monitorowanie zadania Stream Analytics dodano trzy dodatkowe metryki powiązane z funkcjami.In the Monitor area of a Stream Analytics job, three additional function-related metrics have been added. Są to żądania funkcji, zdarzenia funkcji i Nieudane żądania funkcji, jak pokazano na ilustracji poniżej.They are FUNCTION REQUESTS, FUNCTION EVENTS and FAILED FUNCTION REQUESTS, as shown in the graphic below.

Skalowanie Stream Analytics za pomocą funkcji Studio (klasyczne)Scale Stream Analytics with Studio (classic) Functions Metrics

Są zdefiniowane w następujący sposób:The are defined as follows:

Żądania funkcji: liczba żądań funkcji.FUNCTION REQUESTS: The number of function requests.

Zdarzenia funkcji: liczba zdarzeń w żądaniach funkcji.FUNCTION EVENTS: The number events in the function requests.

Nieudane żądania funkcji: liczba nieudanych żądań funkcji.FAILED FUNCTION REQUESTS: The number of failed function requests.

Wnioski KeyKey Takeaways

Aby skalować zadanie Stream Analytics przy użyciu funkcji programu Studio (klasyczny), należy wziąć pod uwagę następujące czynniki:To scale a Stream Analytics job with Studio (classic) functions, consider the following factors:

  1. Szybkość zdarzeń wejściowych.The input event rate.
  2. Tolerowane opóźnienie dla uruchomionego zadania Stream Analytics (i w ten sposób rozmiar wsadu żądań usługi sieci Web programu Studio (klasyczny)).The tolerated latency for the running Stream Analytics job (and thus the batch size of the Studio (classic) web service requests).
  3. Zainicjowana Stream Analytics usług SUs i liczba żądań usług sieci Web programu Studio (klasycznych) (z dodatkowymi kosztami związanymi z funkcją).The provisioned Stream Analytics SUs and the number of Studio (classic) web service requests (the additional function-related costs).

W pełni partycjonowane zapytanie Stream Analytics zostało użyte jako przykład.A fully partitioned Stream Analytics query was used as an example. Jeśli jest wymagana bardziej złożona kwerenda, firma Microsoft Q&stronę pytania dla Azure Stream Analytics jest doskonałym zasobem do uzyskania dodatkowej pomocy od zespołu Stream Analytics.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.

Następne krokiNext steps

Aby dowiedzieć się więcej na temat Stream Analytics, zobacz:To learn more about Stream Analytics, see: