Optymalizowanie wydajności środowiska Azure Integration Runtime

Przepływy danych są uruchamiane w klastrach Spark, które są uruchamiane w czasie wykonywania. Konfiguracja używanego klastra jest zdefiniowana w środowisku Integration Runtime (IR) działania. Podczas definiowania środowiska Integration Runtime należy wziąć pod uwagę trzy zagadnienia dotyczące wydajności: typ klastra, rozmiar klastra i czas wygaśnięcia.

Aby uzyskać więcej informacji na temat tworzenia środowiska Integration Runtime, zobacz Integration Runtime.

Najprostszym sposobem rozpoczęcia pracy z środowiskami Integration Runtime przepływu danych jest wybranie małych, średnich lub dużych z selektora rozmiaru obliczeniowego. Zobacz mapowania na konfiguracje klastra, aby uzyskać te rozmiary poniżej.

Rozmiar klastra

Przepływy danych dystrybuują przetwarzanie danych na różnych rdzeniach w klastrze Spark w celu równoległego wykonywania operacji. Klaster Spark z większą liczbą rdzeni zwiększa liczbę rdzeni w środowisku obliczeniowym. Więcej rdzeni zwiększa moc obliczeniową przepływu danych. Zwiększanie rozmiaru klastra jest często łatwym sposobem na skrócenie czasu przetwarzania.

Domyślny rozmiar klastra to cztery rdzenie sterowników i cztery rdzenie procesu roboczego (małe). Podczas przetwarzania większej ilości danych zalecane są większe klastry. Poniżej przedstawiono możliwe opcje ustalania rozmiaru:

Rdzenie procesu roboczego Rdzenie sterowników Łączna liczba rdzeni Uwagi
4 4 8 Mały
8 8 16 Śred.
16 16 32 Duży
32 16 48
64 16 80
128 16 144
256 16 272

Przepływy danych są wyceniane w godzinach wirtualnych, co oznacza, że w ten sposób uwzględniany jest zarówno rozmiar klastra, jak i czas wykonywania. Podczas skalowania w górę koszt klastra na minutę wzrośnie, ale całkowity czas się zmniejszy.

Napiwek

Istnieje limit rozmiaru klastra, który wpływa na wydajność przepływu danych. W zależności od rozmiaru danych istnieje punkt, w którym zwiększenie rozmiaru klastra przestanie poprawiać wydajność. Jeśli na przykład masz więcej rdzeni niż partycje danych, dodanie dodatkowych rdzeni nie pomoże. Najlepszym rozwiązaniem jest rozpoczęcie małych i skalowanych w górę w celu spełnienia wymagań dotyczących wydajności.

Niestandardowa partycja mieszania

Przepływ danych dzieli dane na partycje i przekształca je przy użyciu różnych procesów. Jeśli rozmiar danych w partycji jest większy niż proces może być przechowywany w pamięci, proces kończy się niepowodzeniem z błędami OOM(out of memory). Jeśli przepływ danych zawiera ogromne ilości danych ze sprzężeniami/agregacjami, możesz spróbować zmienić partycje mieszania w sposób przyrostowy. Można ustawić go z zakresu od 50 do 2000, aby uniknąć błędów OOM. Właściwości niestandardowe obliczeniowe w środowisku uruchomieniowym przepływu danych to sposób kontrolowania wymagań obliczeniowych. Nazwa właściwości to partycje Shuffle i jest typem całkowitym. To dostosowanie powinno być używane tylko w znanych scenariuszach. W przeciwnym razie może to spowodować niepotrzebne błędy przepływu danych.

Podczas zwiększania liczby partycji mieszania upewnij się, że dane są rozmieszczone dobrze. Przybliżona liczba to około 1,5 GB danych na partycję. Jeśli dane są niesymetryczne, zwiększenie wartości "Partycje shuffle" nie będzie pomocne. Jeśli na przykład masz 500 GB danych, powinna działać wartość z zakresu od 400 do 500. Domyślny limit partycji losowych wynosi 200 i działa dobrze w przypadku około 300 GB danych.

  1. W portalu usługi ADF w obszarze Zarządzanie wybierz niestandardowy czas wykonywania integracji i przejdź do trybu edycji.
  2. Na karcie Czas wykonywania przepływu danych przejdź do sekcji Właściwości niestandardowe obliczeniowe.
  3. Wybierz pozycję Partycje shuffle w obszarze Nazwa właściwości, wybrana wartość wejściowa, na przykład 250, 500 itp.

Możesz to zrobić, edytując plik JSON środowiska uruchomieniowego, dodając tablicę o nazwie właściwości i wartości po istniejącej właściwości, takiej jak właściwość oczyszczania .

Time to live (Czas wygaśnięcia)

Domyślnie każde działanie przepływu danych uruchamia nowy klaster Spark na podstawie konfiguracji środowiska Azure IR. Czas uruchamiania klastra zimnego trwa kilka minut, a przetwarzanie danych nie może rozpocząć się, dopóki nie zostanie ukończone. Jeśli potoki zawierają wiele przepływów danych sekwencyjnych , możesz włączyć czas wygaśnięcia (TTL). Określenie czasu wygaśnięcia utrzymuje klaster aktywny przez określony okres czasu po zakończeniu jego wykonywania. Jeśli nowe zadanie rozpocznie korzystanie z środowiska IR w czasie wygaśnięcia, ponownie użyje istniejącego klastra, a czas uruchamiania zostanie znacznie zmniejszony. Po zakończeniu drugiego zadania klaster będzie ponownie aktywny przez czas wygaśnięcia.

Jeśli jednak większość przepływów danych jest wykonywana równolegle, nie zaleca się włączenia czasu wygaśnięcia dla środowiska IR używanego dla tych działań. Jednocześnie można uruchomić tylko jedno zadanie w jednym klastrze. Jeśli istnieje dostępny klaster, ale uruchamiane są dwa przepływy danych, tylko jeden z nich będzie używać klastra na żywo. Drugie zadanie spowoduje uruchomienie własnego izolowanego klastra.

Uwaga

Czas wygaśnięcia jest niedostępny w przypadku korzystania z automatycznego rozpoznawania środowiska Integration Runtime (ustawienie domyślne).

Zobacz inne artykuły Przepływ danych związane z wydajnością: