Skalowanie zadania usługi Stream Analytics przy użyciu funkcji usługi Machine Learning Studio (klasycznej)

Porada

Zdecydowanie zaleca się używanie funkcji zdefiniowanych przez użytkownika usługi Azure Machine Learning zamiast funkcji zdefiniowanej przez użytkownika usługi Machine Learning Studio (klasycznej) w celu zwiększenia wydajności i niezawodności.

Ważne

Obsługa programu Machine Learning Studio (wersja klasyczna) zakończy się 31 sierpnia 2024 r. Zalecamy przejście do usługi Azure Machine Learning przed tym terminem.

Od 1 grudnia 2021 r. nie będzie można tworzyć nowych zasobów usługi Machine Learning Studio (klasycznych) (obszar roboczy i plan usługi internetowej). Do 31 sierpnia 2024 r. można nadal korzystać z istniejących eksperymentów i usług internetowych usługi Machine Learning Studio (klasycznej).

Dokumentacja programu ML Studio (wersja klasyczna) jest wycofywana i może nie być aktualizowana w przyszłości.

W tym artykule omówiono sposób wydajnego skalowania zadań usługi Azure Stream Analytics korzystających z funkcji usługi Machine Learning Studio (klasycznej). Aby uzyskać ogólne informacje na temat sposobu skalowania zadań usługi Stream Analytics, zobacz artykuł Scaling jobs (Skalowanie zadań).

Co to jest funkcja programu Studio (klasyczna) w usłudze Stream Analytics?

Funkcja usługi Machine Learning Studio (klasyczna) w usłudze Stream Analytics może być używana jak zwykłe wywołanie funkcji w języku zapytań usługi Stream Analytics. Jednak w tle te wywołania funkcji są w rzeczywistości żądaniami usługi sieci Web programu Studio (wersja klasyczna).

Przepływność żądań usługi internetowej (klasycznej) programu Studio można poprawić przez "dzielenie na partie" wielu wierszy w tym samym wywołaniu interfejsu API usługi internetowej. To grupowanie jest nazywane minisadową. Aby uzyskać więcej informacji, zobacz Machine Learning Studio (klasyczne) usługi sieci Web. Obsługa programu Studio (wersja klasyczna) w usłudze Stream Analytics.

Konfigurowanie zadania usługi Stream Analytics przy użyciu funkcji programu Studio (wersja klasyczna)

Istnieją dwa parametry umożliwiające skonfigurowanie funkcji Studio (klasycznej) używanej przez zadanie usługi Stream Analytics:

  • Rozmiar partii wywołań funkcji Studio (klasycznej).
  • Liczba jednostek przesyłania strumieniowego (SU) aprowizowania dla zadania usługi Stream Analytics.

Aby określić odpowiednie wartości jednostek przesyłania strumieniowego, zdecyduj, czy chcesz zoptymalizować opóźnienie zadania usługi Stream Analytics, czy przepływność poszczególnych jednostek przesyłania strumieniowego. Jednostki przesyłania strumieniowego mogą być zawsze dodawane do zadania w celu zwiększenia przepływności dobrze partycjonowanego zapytania usługi Stream Analytics. Dodatkowe jednostki SU zwiększają koszt uruchamiania zadania.

Określ tolerancję opóźnienia zadania usługi Stream Analytics. Zwiększenie rozmiaru partii spowoduje zwiększenie opóźnienia żądań programu Studio (klasycznych) i opóźnienia zadania usługi Stream Analytics.

Zwiększenie rozmiaru partii umożliwia zadaniu usługi Stream Analytics przetwarzanie większej liczby zdarzeń przy użyciu tej samej liczby żądań usługi internetowej programu Studio (klasycznej). Zwiększenie opóźnienia usługi sieci Web w programie Studio (wersja klasyczna) jest zwykle podlinijne w celu zwiększenia rozmiaru partii.

Ważne jest, aby w każdej sytuacji rozważyć najbardziej ekonomiczny rozmiar partii dla usługi internetowej Studio (klasycznej). Domyślny rozmiar partii dla żądań obsługi internetowej to 1000. Ten rozmiar domyślny można zmienić przy użyciu Analytics lub klienta programu PowerShell dla usługi Stream Analytics.

Po podjęciu decyzji o rozmiarze partii można ustawić liczbę jednostek przesyłania strumieniowego (SU) na podstawie liczby zdarzeń, które funkcja musi przetworzyć na sekundę. Aby uzyskać więcej informacji na temat jednostek przesyłania strumieniowego, zobacz Zadania skalowania usługi Stream Analytics.

Co 6 jednostek jednostki operacyjnego uzyskuje 20 współbieżnych połączeń z usługą sieci Web Studio (klasyczną). Jednak 1 zadanie jednostki SU i 3 zadania jednostki SU otrzymują 20 współbieżnych połączeń.

Jeśli aplikacja generuje 200 000 zdarzeń na sekundę, a rozmiar partii wynosi 1000, wynikowe opóźnienie usługi internetowej wynosi 200 ms. Ta stawka oznacza, że każde połączenie może wysyłać pięć żądań do usługi internetowej Studio (klasycznej) co sekundę. W przypadku 20 połączeń zadanie usługi Stream Analytics może przetwarzać 20 000 zdarzeń w 200 ms i 100 000 zdarzeń w ciągu sekundy.

Aby przetworzyć 200 000 zdarzeń na sekundę, zadanie usługi Stream Analytics wymaga 40 współbieżnych połączeń, które pochodzą z 12 jednostek przesyłania strumieniowego. Na poniższym diagramie przedstawiono żądania z zadania usługi Stream Analytics do punktu końcowego usługi internetowej Studio (klasycznej) — każde 6 jednostek przesyłania strumieniowego ma maksymalnie 20 współbieżnych połączeń z usługą internetową Studio (klasyczną).

Skalowanie usługi Stream Analytics za pomocą usługi Studio (klasycznej) Functions — dwa przykładowe

Ogólnie rzecz biorąc, B dla rozmiaru partii, L dla opóźnienia usługi internetowej o rozmiarze partii B w milisekundach przepływność zadania usługi Stream Analytics z N jednostek przesyłania strumieniowego wynosi:

Skalowanie usługi Stream Analytics za pomocą formuły skalowania usługi Stream Analytics w usłudze Studio (wersja klasyczna) —

Możesz również skonfigurować "maksymalne współbieżne wywołania" w usłudze internetowej Studio (klasycznej). Zaleca się ustawienie tego parametru na wartość maksymalną (obecnie 200).

Aby uzyskać więcej informacji na temat tego ustawienia, zapoznaj się z artykułem Skalowanie usług sieci Web Machine Learning Studio (wersja klasyczna).

Przykład — analiza tonacji

Poniższy przykład obejmuje zadanie usługi Stream Analytics z funkcją analizy tonacji (klasycznej) zgodnie z opisem w samouczku integracji usługi Stream Analytics Machine Learning Studio (wersja klasyczna).

Zapytanie to proste w pełni partycjonowane zapytanie, po którym następuje funkcja tonacji , jak pokazano w poniższym przykładzie:

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

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

Przeanalizujmy konfigurację niezbędną do utworzenia zadania usługi Stream Analytics, które wykonuje analizę tonacji tweetów w tempie 10 000 tweetów na sekundę.

Czy to zadanie usługi Stream Analytics obsługuje ruch przy użyciu 1 jednostek przesyłania strumieniowego? Zadanie może nadążyć za danymi wejściowymi przy użyciu domyślnego rozmiaru partii 1000. Domyślne opóźnienie usługi internetowej analysis Studio (klasycznej) analizy tonacji (z domyślnym rozmiarem partii 1000) nie powoduje więcej niż sekundy opóźnienia.

Ogólne lub kompleksowe opóźnienie zadania usługi Stream Analytics zwykle będzie miało kilka sekund. Przyjrzyj się dokładniej temu zadaniu usługi Stream Analytics, zwłaszcza wywołaniom funkcji studio (klasycznej). W przypadku partii o rozmiarze 1000 przepływność 10 000 zdarzeń wymaga około 10 żądań do usługi internetowej. Nawet w przypadku jednej jednostki SU istnieje wystarczająca liczba połączeń współbieżnych, aby obsłużyć ten ruch wejściowy.

Jeśli szybkość zdarzeń wejściowych wzrośnie o 100 razy, zadanie usługi Stream Analytics musi przetworzyć 1000 000 tweetów na sekundę. Istnieją dwie opcje osiągnięcia zwiększonej skali:

  1. Zwiększ rozmiar partii.
  2. Podziel strumień wejściowy na partycje w celu równoległego przetwarzania zdarzeń.

W przypadku pierwszej opcji opóźnienie zadania zwiększa się.

Druga opcja wymaga aprowizacji większej liczby jednostek jednostki operacyjnego, aby mieć więcej współbieżnych żądań usługi sieci Web programu Studio (wersja klasyczna). Ta większa liczba jednostek jednostki operacyjnego zwiększa koszt zadania.

Przyjrzyjmy się skalowaniu przy użyciu następujących pomiarów opóźnienia dla każdego rozmiaru partii:

Opóźnienie Rozmiar partii
200 ms 1000 partii zdarzeń lub poniżej
250 ms 5000 partii zdarzeń
300 ms 10 000 partii zdarzeń
500 ms 25 000 partii zdarzeń
  1. Przy użyciu pierwszej opcji (nie aprowizacji większej liczby jednostek jednostki operacyjnego). Rozmiar partii można zwiększyć do 25 000. Zwiększenie rozmiaru partii w ten sposób umożliwi zadaniu przetwarzanie 1000 000 zdarzeń z 20 równoczesnymi połączeniami z usługą internetową Studio (klasyczną) (z opóźnieniem 500 ms na wywołanie). Dlatego dodatkowe opóźnienie zadania usługi Stream Analytics ze względu na żądania funkcji tonacji względem żądań usługi internetowej studio (klasycznej) zostanie zwiększone z 200 ms do 500 ms. Jednak rozmiar partii nie może być zwiększany w nieskończoność, ponieważ usługi sieci Web Studio (klasyczne) wymagają, aby rozmiar ładunku żądania był 4 MB lub mniejszy, a limit czasu żądań obsługi sieci Web po 100 sekundach operacji.
  2. Korzystając z drugiej opcji, rozmiar partii pozostaje na 1000, z opóźnieniem usługi internetowej 200 ms, co 20 współbieżnych połączeń z usługą internetową będzie w stanie przetworzyć 1000 * 20 * 5 zdarzeń = 100 000 na sekundę. Aby więc przetwarzać 1000 000 zdarzeń na sekundę, zadanie wymagałoby 60 jednostek jednostki RU. W porównaniu z pierwszą opcją zadanie usługi Stream Analytics spowodowałoby zwiększenie liczby żądań wsadowych usług internetowych, co z kolei spowodowałoby zwiększenie kosztów.

Poniżej znajduje się tabela przepływności zadania usługi Stream Analytics dla różnych rozmiarów jednostek przesyłania strumieniowego i partii (w liczbie zdarzeń na sekundę).

rozmiar partii (opóźnienie uczenia maszynowego) 500 (200 ms) 1000 (200 ms) 5000 (250 ms) 10 000 (300 ms) 25 000 (500 ms)
1 SU 2500 5000 20 000 30,000 50 000
3 jednostki SU 2500 5000 20 000 30,000 50 000
6 jednostek SU 2500 5000 20 000 30,000 50 000
12 jednostek SU 5000 10 000 40 000 60 000 100 000
18 jednostek SU 7500 15 000 60 000 90 000 150 000
24 jednostki SU 10 000 20 000 80 000 120,000 200,000
60 jednostek SU 25 000 50 000 200,000 300,000 500 000

Do tej pory należy już dobrze zrozumieć, jak działają funkcje programu Studio (klasycznego) w usłudze Stream Analytics. Prawdopodobnie rozumiesz również, że zadania usługi Stream Analytics "ściągają" dane ze źródeł danych, a każde "ściąganie" zwraca partię zdarzeń do przetworzenia zadania usługi Stream Analytics. W jaki sposób ten model ściągania wpływa na żądania usługi sieci Web w programie Studio (klasycznym)?

Zwykle rozmiar partii ustawiony dla funkcji studio (klasycznych) nie będzie dokładnie podzielny przez liczbę zdarzeń zwracanych przez każde zadanie usługi Stream Analytics "pull". W takim przypadku usługa internetowa Studio (klasyczna) jest wywoływana z partiami "częściowymi". Korzystanie z częściowych partii pozwala uniknąć naliczania dodatkowych obciążeń związanych z opóźnieniem zadań w przypadku łączenia zdarzeń od ściągania do ściągania.

W obszarze Monitorowanie zadania usługi Stream Analytics dodano trzy dodatkowe metryki związane z funkcją. Są to ŻĄDANIA FUNKCJI, ZDARZENIA FUNKCJI i NIEUDANE ŻĄDANIA FUNKCJI, jak pokazano na poniższej ilustracji.

Skalowanie usługi Stream Analytics przy użyciu metryk usługi Stream Analytics (klasycznej) w

Są one zdefiniowane w następujący sposób:

ŻĄDANIA FUNKCJI: liczba żądań funkcji.

ZDARZENIA FUNKCJI: liczba zdarzeń w żądaniach funkcji.

ŻĄDANIA FUNKCJI ZAKOŃCZONYCH NIEPOWODZENIEM: Liczba żądań funkcji zakończonych niepowodzeniem.

Najważniejsze wynos

Aby skalować zadanie usługi Stream Analytics przy użyciu funkcji studio (klasycznych), należy wziąć pod uwagę następujące czynniki:

  1. Szybkość zdarzeń wejściowych.
  2. Tolerowane opóźnienie dla uruchomionego zadania usługi Stream Analytics (a tym samym rozmiar partii żądań usługi sieci Web w programie Studio (klasycznym).
  3. Aprowizowane jednostki SU usługi Stream Analytics i liczba żądań usług internetowych (klasycznych) studio (dodatkowe koszty związane z funkcją).

W pełni partycjonowane zapytanie usługi Stream Analytics zostało użyte jako przykład. Jeśli potrzebne jest bardziej złożone zapytanie, strona pytania Microsoft Q&A dla usługi Azure Stream Analytics to doskonały zasób umożliwiający uzyskanie dodatkowej pomocy od zespołu usługi Stream Analytics.

Następne kroki

Aby dowiedzieć się więcej o usłudze Stream Analytics, zobacz: