Skalowanie zadania usługi Stream Analytics przy użyciu funkcji machine Edukacja Studio (wersja klasyczna)

Napiwek

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

Ważne

Obsługa usługi Azure Machine Edukacja Studio (wersja klasyczna) zakończy się 31 sierpnia 2024 r. Zalecamy przejście do usługi Azure Machine Edukacja do tej daty.

Od 1 grudnia 2021 r. nie można utworzyć nowych zasobów usługi Machine Edukacja Studio (wersja klasyczna) (obszar roboczy i plan usługi internetowej). Do 31 sierpnia 2024 r. możesz nadal korzystać z istniejących eksperymentów i usług internetowych programu Machine Edukacja Studio (wersja klasyczna). Aby uzyskać więcej informacji, zobacz:

Dokumentacja programu Machine Edukacja Studio (wersja klasyczna) jest wycofywana i może nie zostać zaktualizowana w przyszłości.

W tym artykule omówiono sposób efektywnego skalowania zadań usługi Azure Stream Analytics korzystających z funkcji machine Edukacja Studio (wersja klasyczna). Aby uzyskać informacje na temat sposobu skalowania zadań usługi Stream Analytics w ogóle, zobacz artykuł Scaling jobs (Skalowanie zadań).

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

Funkcja Machine Edukacja 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ą rzeczywiście żądaniami usługi sieci Web w programie Studio (klasycznym).

Przepływność żądań usługi sieci Web programu Studio (klasycznego) można poprawić przez "dzielenie na partie" wielu wierszy w tym samym wywołaniu interfejsu API usługi internetowej. To grupowanie jest nazywane mini-batch. Aby uzyskać więcej informacji, zobacz Machine Edukacja 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 (klasycznych)

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

  • Rozmiar partii wywołań funkcji Studio (klasyczny).
  • 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 SU 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 (klasycznego) 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 (klasycznej). Zwiększenie opóźnienia usługi sieci Web w programie Studio (wersja klasyczna) jest zwykle podlinearne 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 sieci Web to 1000. Ten rozmiar domyślny można zmienić przy użyciu interfejsu API REST usługi Stream 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 SU uzyskuje 20 współbieżnych połączeń z usługą sieci Web Studio (klasyczną). Jednak 1 zadanie SU i 3 zadania 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 szybkość 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ą sieci Web Studio (klasyczną).

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

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:

Scale Stream Analytics with Studio (classic) Functions Formula

Możesz również skonfigurować "maksymalnie 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 dla usługi sieci Web Machine Edukacja Studio (wersja klasyczna).

Przykład — analiza tonacji

Poniższy przykład obejmuje zadanie usługi Stream Analytics z funkcją analysis studio analizy tonacji (klasycznej), zgodnie z opisem w samouczku integracji z usługą Stream Analytics Machine Edukacja 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 może obsługiwać ruch przy użyciu 1 jednostki organizacyjnej? 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 rozmiaru partii 1000 przepływność 10 000 zdarzeń trwa około 10 żądań do usługi internetowej. Nawet w przypadku jednej jednostki SU istnieje wystarczająca liczba współbieżnych połączeń, aby pomieścić ten ruch wejściowy.

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

  1. Zwiększ rozmiar partii.
  2. Podziel strumień wejściowy na partycje, aby przetworzyć zdarzenia równolegle.

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

Druga opcja wymaga aprowizacji większej liczby jednostek jednostki SU, 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 zadanie przetwarzania 1000 000 zdarzeń z 20 równoczesnymi połączeniami z usługą sieci Web 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. Nie można jednak zwiększyć rozmiaru partii 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. Przy użyciu drugiej opcji rozmiar partii jest pozostawiony na poziomie 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 przetworzyć 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 przedstawiono tabelę przepływności zadania usługi Stream Analytics dla różnych jednostek przesyłania strumieniowego i rozmiarów 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 5,000 20,000 30,000 50,000
3 jednostki SU 2500 5,000 20,000 30,000 50,000
6 jednostek jednostki organizacyjnej 2500 5,000 20,000 30,000 50,000
12 jednostek jednostki organizacyjnej 5000 10,000 40,000 60 000 100 000
18 jednostek jednostki organizacyjnej 7500 15 000 60 000 90,000 150,000
24 jednostki SU 10,000 20,000 80 000 120 000 200,000
... ... ... ... ... ...
60 jednostek jednostki jednostki organizacyjnej 25,000 50,000 200,000 300,000 500,000

Do tej pory warto 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. Jak ten model ściągania ma wpływ na żądania usługi sieci Web programu Studio (klasycznego)?

Zwykle rozmiar partii ustawiony dla funkcji programu Studio (klasyczny) nie będzie dokładnie podzielny przez liczbę zdarzeń zwracanych przez każde zadanie usługi Stream Analytics "pull". W takim przypadku usługa sieci Web 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 zadania w przypadku łączenia zdarzeń z ś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.

Scale Stream Analytics with Studio (classic) Functions Metrics

Element jest zdefiniowany 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.

Kluczowe wnioski

Aby skalować zadanie usługi Stream Analytics przy użyciu funkcji programu Studio (wersja klasyczna), 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 internetowej Studio (klasycznej).
  3. Zaaprowizowane jednostki SU usługi Stream Analytics i liczba żądań usługi sieci Web programu Studio (wersja klasyczna) (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 pytań i odpowiedzi firmy Microsoft 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: