Udostępnij za pośrednictwem


Co to jest automatyczne dostrajenie konfiguracji platformy Apache Spark w sieci szkieletowej?

Autotune automatycznie dostosowuje konfigurację platformy Apache Spark, aby przyspieszyć wykonywanie obciążeń i zoptymalizować ogólną wydajność. Automatyczne dostrajanie pozwala zaoszczędzić czas i zasoby w porównaniu z dostrajaniem ręcznym, co wymaga dużego nakładu pracy, zasobów, czasu i eksperymentowania. Autotune używa historycznych danych wykonywania z obciążeń do iteracyjnego odnajdywania i stosowania najbardziej skutecznych konfiguracji dla określonego obciążenia.

Uwaga

Funkcja dostrajania zapytań automatycznych w usłudze Microsoft Fabric jest obecnie dostępna w wersji zapoznawczej. Automatyczne dostrajania jest dostępne we wszystkich regionach produkcji, ale jest domyślnie wyłączone. Można ją aktywować za pomocą ustawienia konfiguracji platformy Spark w środowisku lub w ramach jednej sesji, uwzględniając odpowiednie ustawienie platformy Spark w notesie platformy Spark lub kodzie definicji zadania platformy Spark.

Dostrajanie zapytań

Autotune konfiguruje trzy ustawienia platformy Apache Spark dla każdego z zapytań oddzielnie:

  • spark.sql.shuffle.partitions — Ustawia liczbę partycji na potrzeby mieszania danych podczas sprzężeń lub agregacji. Wartość domyślna to 200.
  • spark.sql.autoBroadcastJoinThreshold - Ustawia maksymalny rozmiar tabeli w bajtach, który jest emitowany do wszystkich węzłów procesu roboczego podczas wykonywania operacji sprzężenia. Wartość domyślna to 10 MB.
  • spark.sql.files.maxPartitionBytes - Definiuje maksymalną liczbę bajtów do spakowania w jedną partycję podczas odczytywania plików. Działa w przypadku źródeł opartych na plikach Parquet, JSON i ORC. Wartość domyślna to 128 MB.

Napiwek

Dostrajanie zapytania automatycznego sprawdza poszczególne zapytania i tworzy odrębny model uczenia maszynowego dla każdego zapytania. Dotyczy to w szczególności:

  • Powtarzające się zapytania
  • Długotrwałe zapytania (te z ponad 15 sekundami wykonywania)
  • Zapytania interfejsu API SQL platformy Apache Spark (z wyłączeniem tych napisanych w interfejsie API RDD, które są bardzo rzadkie), ale optymalizujemy wszystkie zapytania niezależnie od języka (Scala, PySpark, R, Spark SQL)

Ta funkcja jest zgodna z notesami, definicjami zadań platformy Apache Spark i potokami. Korzyści różnią się w zależności od złożoności zapytania, używanych metod i struktury. Obszerne testowanie wykazało, że największe korzyści są realizowane z zapytaniami związanymi z eksploracyjnymi analizami danych, takimi jak odczytywanie danych, uruchamianie sprzężeń, agregacje i sortowanie.

Zrzut ekranu przedstawiający czas wykonywania z włączonym automatycznym dostrajania.

Intuicja oparta na sztucznej inteligencji za autodostrojem

Funkcja automatycznego dostrajania wykorzystuje proces iteracyjny w celu optymalizacji wydajności zapytań. Rozpoczyna się od domyślnej konfiguracji i wykorzystuje model uczenia maszynowego do oceny skuteczności. Gdy użytkownik przesyła zapytanie, system pobiera przechowywane modele na podstawie poprzednich interakcji. Generuje ona potencjalne konfiguracje wokół domyślnego ustawienia o nazwie centroid. Stosowany jest najlepszy kandydat przewidywany przez model. Po wykonaniu zapytania dane wydajności są wysyłane z powrotem do systemu w celu uściślenia modelu.

Pętla opinii stopniowo przesuwa centroid w kierunku optymalnych ustawień. Zwiększa wydajność w czasie, jednocześnie minimalizując ryzyko regresji. Ciągłe aktualizacje oparte na zapytaniach użytkowników umożliwiają uściślenie testów porównawczych wydajności. Ponadto proces aktualizuje konfiguracje centroid , aby upewnić się, że model przechodzi w kierunku bardziej wydajnych ustawień przyrostowo. Jest to osiągane przez ocenę przeszłych wydajności i użycie ich do kierowania przyszłymi korektami. Używa on wszystkich punktów danych, aby zminimalizować wpływ anomalii.

Z perspektywy odpowiedzialnej sztucznej inteligencji funkcja automatycznego dostrajania obejmuje mechanizmy przezroczystości, które umożliwiają informowanie o użyciu danych i korzyściach. Bezpieczeństwo i prywatność są zgodne ze standardami firmy Microsoft. Ciągłe monitorowanie utrzymuje wydajność i integralność systemu po uruchomieniu.

Włączanie automatycznego dostrajania

Automatyczne dostrajania jest dostępne we wszystkich regionach produkcji, ale jest domyślnie wyłączone. Można ją aktywować za pomocą ustawienia konfiguracji platformy Spark w środowisku. Aby włączyć funkcję Autotune, utwórz nowe środowisko lub dla istniejącego środowiska ustaw właściwość Spark "spark.ms.autotune.enabled = true", jak pokazano na poniższym zrzucie ekranu. To ustawienie jest następnie dziedziczone przez wszystkie notesy i zadania uruchomione w tym środowisku, automatycznie je dostrajając.

Zrzut ekranu przedstawiający włączanie automatycznego dostrajania.

Autotune zawiera wbudowany mechanizm monitorowania wydajności i wykrywania regresji wydajności. Jeśli na przykład zapytanie przetwarza niezwykle dużą ilość danych, autotune automatycznie zdezaktywuje. Zwykle wymaga od 20 do 25 iteracji, aby dowiedzieć się i zidentyfikować optymalną konfigurację.

Uwaga

Autotune jest zgodna z środowiskiem Fabric Runtime 1.1 i runtime 1.2. Funkcja Autotune nie działa, gdy tryb wysokiej współbieżności lub gdy prywatny punkt końcowy jest włączony. Jednak automatyczne dostrajanie bezproblemowo integruje się z skalowaniem automatycznym, niezależnie od konfiguracji.

Autodostrojenie można włączyć w ramach jednej sesji, włączając odpowiednie ustawienie platformy Spark w notesie platformy Spark lub kod definicji zadania platformy Spark.

%%sql
SET spark.ms.autotune.enabled=TRUE

Automatyczne dostrajania można kontrolować za pomocą ustawień platformy Spark dla odpowiedniego notesu platformy Spark lub kodu definicji zadania platformy Spark. Aby wyłączyć autodostrojenie, wykonaj następujące polecenia jako pierwsza komórka (notes) lub wiersz kodu (SJD).

%%sql 
SET spark.ms.autotune.enabled=FALSE 

Analiza przypadku

Podczas wykonywania zapytania platformy Apache Spark autotune tworzy dostosowany model uczenia maszynowego przeznaczony do optymalizacji wykonywania zapytania. Analizuje wzorce zapytań i potrzeby zasobów. Rozważ wstępne filtrowanie zapytania zestawu danych na podstawie określonego atrybutu, takiego jak kraj. Chociaż w tym przykładzie użyto filtrowania geograficznego, zasada ma zastosowanie uniwersalnie do dowolnego atrybutu lub operacji w zapytaniu:

%%pyspark
df.filter(df.country == "country-A")

Autotune uczy się z tego zapytania, optymalizując kolejne wykonania. Gdy zapytanie zmieni się, na przykład przez zmianę wartości filtru lub zastosowanie innej transformacji danych, istota strukturalna zapytania często pozostaje spójna:

%%pyspark
df.filter(df.country == "country-B")

Pomimo zmian funkcja autotune identyfikuje podstawową strukturę nowego zapytania, wdrażając wcześniej poznane optymalizacje. Ta funkcja zapewnia stałą wysoką wydajność bez konieczności ręcznej ponownej konfiguracji dla każdej nowej iteracji zapytań.

Dzienniki

W przypadku każdego zapytania funkcja automatycznego dostrajania określa najbardziej optymalne ustawienia dla trzech konfiguracji platformy Spark. Sugerowane ustawienia można wyświetlić, przechodząc do dzienników. Konfiguracje zalecane przez autotune znajdują się w dziennikach sterowników, w szczególności tych wpisów rozpoczynających się od [Autotune].

Zrzut ekranu przedstawiający automatyczne dostrajania dzienników w centrum monitorowania.

W dziennikach można znaleźć różne typy wpisów. Poniżej wymieniono kluczowe elementy:

Stan opis
AUTOTUNE_DISABLED Pominięte. Automatyczne dostrajania jest wyłączone; zapobieganie pobieraniu danych telemetrycznych i optymalizacji zapytań. Włącz automatyczne dostrajanie, aby w pełni korzystać z jego możliwości przy jednoczesnym poszanowaniu prywatności klientów".
QUERY_TUNING_DISABLED Pominięte. Dostrajanie zapytań autodostrajania jest wyłączone. Włącz tę funkcję, aby dostosować ustawienia zapytań Spark SQL.
QUERY_PATTERN_NOT_MATCH Pominięte. Wzorzec kwerendy nie był zgodny. Automatyczne dostrajania jest skuteczne w przypadku zapytań tylko do odczytu.
QUERY_DURATION_TOO_SHORT Pominięte. Czas trwania zapytania jest zbyt krótki, aby zoptymalizować. Automatyczne dostrajanie wymaga dłuższych zapytań w celu efektywnego dostrajania. Zapytania powinny być uruchamiane przez co najmniej 15 sekund.
QUERY_TUNING_SUCCEED Powodzenie. Ukończono dostrajanie zapytań. Zastosowano optymalne ustawienia platformy Spark.

Notatka dotycząca przezroczystości

Zgodnie ze standardem odpowiedzialnej sztucznej inteligencji ta sekcja ma na celu wyjaśnienie zastosowań i walidacji funkcji Autotune, promowanie przejrzystości i umożliwienie świadomego podejmowania decyzji.

Cel automatycznego dostrajania

Autotune jest opracowywany w celu zwiększenia wydajności obciążeń platformy Apache Spark, głównie dla specjalistów ds. danych. Jego kluczowe funkcje obejmują:

  • Automatyzowanie dostrajania konfiguracji platformy Apache Spark w celu skrócenia czasu wykonywania.
  • Minimalizacja ręcznego dostrajania.
  • Wykorzystanie historycznych danych obciążenia w celu iteracyjnego uściślinia konfiguracji.

Walidacja automatycznego dostrajania

Autotune przeszedł obszerne testy, aby zapewnić jego skuteczność i bezpieczeństwo:

  • Rygorystyczne testy z różnymi obciążeniami platformy Spark w celu zweryfikowania skuteczności algorytmu dostrajania.
  • Testowanie porównawcze standardowych metod optymalizacji platformy Spark w celu zademonstrowania korzyści z wydajności.
  • Rzeczywiste analizy przypadków podkreślając praktyczne wartości Autotune.
  • Przestrzeganie rygorystycznych standardów zabezpieczeń i prywatności w celu ochrony danych użytkowników.

Dane użytkowników są używane wyłącznie w celu zwiększenia wydajności obciążenia, z niezawodną ochroną, aby zapobiec niewłaściwemu używaniu lub narażeniu poufnych informacji.