Čo je autotune pre konfigurácie Apache Spark v službe Fabric?

Autotune automaticky upravuje konfigurácie Apache Spark, aby znížil čas vykonávania pracovnej záťaže a zlepšil výkon. Pomáha vám vyhnúť sa manuálnemu ladeniu, ktoré zvyčajne vyžaduje opakované pokusy a omyly. Autotune využíva historické údaje o vykonávaní z vašich pracovných záťaží na opakované objavovanie a aplikovanie efektívnych nastavení pre každú záťaž.

Note

Autotune doladenie dotazov v Fabric je momentálne v náhľade. Je dostupný vo všetkých produkčných regiónoch, ale je predvolene vypnutý. Povoľte ho v prostredí Spark konfigurácie alebo pre jednu reláciu v kóde definície úlohy v notebooku či Sparku.

Predvolené nastavenia a požiadavky

  • Predvolené správanie: Autotune je predvolene vypnutý .
  • Žiadne povinné nastavenie pri vypnutí: Ak nezapnete autotune, Spark použije svoje štandardné konfiguračné správanie.
  • Potrebné nastavenie na použitie autotune: Nastavte spark.ms.autotune.enabled=true buď:

Ladenie dotazov

Autotune ladí tieto tri nastavenia Apache Spark pre každý dotaz:

  • spark.sql.shuffle.partitions: Nastavuje počet partícií pre miešanie dát počas spojenia alebo agregácie. Predvolená hodnota je 200.
  • spark.sql.autoBroadcastJoinThreshold: Nastavuje maximálnu veľkosť tabuľky v bajtoch, ktorá sa vysiela do pracovných uzlov počas spojenia. Predvolená hodnota je 10 MB.
  • spark.sql.files.maxPartitionBytes: Nastavuje maximálny počet bajtov, ktoré treba zabaliť do jednej partície pri čítaní súborov. Platí to pre zdroje súborov Parquet, JSON a ORC. Predvolená hodnota je 128 MB.

Autotune ladenie dotazov skúma každý dotaz a vytvára samostatný model strojového učenia pre daný dotaz. Najlepšie funguje na:

  • Opakujúce sa dotazy
  • Dlhodobé dotazy (viac ako 15 sekúnd)
  • Apache Spark SQL API dotazy (nie RDD API)

Autotune môžete použiť s notebookmi, definíciami úloh v Sparku a pipeline. Prínos sa líši podľa zložitosti dotazu a tvaru dát. V testovaní sa najväčšie zisky prejavujú v prieskumných vzoroch analýzy dát, ako sú čítania, spojenia, agregácie a triedenie.

Screenshot času vykonávania s zapnutým autotune.

Ako funguje autotune

Autotune používa iteratívnu optimalizačnú slučku:

  1. Začnite od predvolených hodnôt konfigurácie Spark.
  2. Generujte kandidátske konfigurácie okolo základne (centroidu).
  3. Predpovedajte najlepšieho kandidáta pomocou modelu trénovaného v predchádzajúcich behoch.
  4. Aplikujte kandidáta a vykonajte dotaz.
  5. Výsledky vykonávania vracajte späť do modelu.

Postupom času sa základná hodnota posúva k lepším nastaveniam a zároveň znižuje riziko regresie. Použitie všetkých zozbieraných dátových bodov tiež pomáha znižovať vplyv anomálií.

Povoliť automatické ladenie

Autotune je dostupný vo všetkých výrobných regiónoch, ale je predvolene vypnutý. Aby ste ho umožnili na úrovni prostredia, nastavte vlastnosť spark.ms.autotune.enabled=true Spark v novom alebo existujúcom prostredí. Všetky zápisníky a úlohy, ktoré používajú toto prostredie, zdedia toto prostredie.

Snímka obrazovky znázorňujúca povolenie služby Autotune.

Autotune obsahuje zabudovanú detekciu regresie. Napríklad, ak dotaz spracuje nezvyčajne veľké množstvo dát, autotune môže automaticky preskočiť ladenie pre tento beh. V mnohých prípadoch autotune potrebuje približne 20 až 25 iterácií, aby sa dosiahol silné nastavenia.

Note

Autotune je kompatibilný s Runtime 1.2. Na runtime verziách po 1.2 to nemôžeš povoliť. Nespustí sa, keď je zapnutý režim vysokej súbežnosti alebo súkromný endpoint . Autotune funguje s automatickým škálovaním v akejkoľvek konfigurácii automatického škálovania.

Autotune môžete tiež povoliť pre jednu reláciu nastavením vlastnosti Spark v poznámkovom bloku alebo v definícii úlohy Spark.

Povoliť autotune pre jednu reláciu

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

Vypnúť autotune pre jednu reláciu

Ak chcete zakázať autotune v poznámkovom bloku alebo definícii úlohy v Spark, spustite jeden z nasledujúcich príkazov ako prvú bunku alebo prvý riadok kódu.

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

Prípadová štúdia

Keď spustíte dotaz v Apache Spark, autotune vytvorí model pre tento tvar dotazu a časom sa naučí najlepšie nastavenia. Napríklad začnite týmto filtrom:

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

Autotune sa z tohto behu poučí. Ak neskôr zmeníte len hodnotu filtra, tvar dotazu zostáva podobný:

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

Autotune dokáže použiť predchádzajúce poznatky pre tento podobný vzor dotazov, čo pomáha udržiavať výkon bez manuálneho preladenia.

Logs

Pre každý dotaz autotune vypočíta odporúčané hodnoty pre tri podporované konfigurácie Sparku. Na kontrolu odporúčaní skontrolujte záznamy vodičov, či nezačínajú na [Autotune].

Snímka obrazovky znázorňujúca denníky služby Autotune v centre monitoringu.

Bežné stavy logov zahŕňajú:

Status Description
AUTOTUNE_DISABLED Skipped. Autotune je vypnutý, takže sa neaplikuje zber telemetrie a optimalizácia.
QUERY_TUNING_DISABLED Skipped. Ladenie dotazov je vypnuté.
QUERY_PATTERN_NOT_MATCH Skipped. Vzor dotazov nezodpovedá podporovaným typom dotazov iba na čítanie.
QUERY_DURATION_TOO_SHORT Skipped. Dotaz trval menej ako 15 sekúnd, čo je príliš krátke na efektívne ladenie.
QUERY_TUNING_SUCCEED Success. Dokončené ladenie dotazov a optimalizované nastavenia Sparku boli aplikované.

Poznámka o transparentnosti

V súlade so štandardom Responsible AI táto časť vysvetľuje, ako sa autotune používa a overuje.

Účel služby autotune

Autotune je navrhnutý tak, aby zlepšil efektivitu pracovnej záťaže Apache Spark pre dátových profesionálov. To:

  • Automaticky ladí konfigurácie Apache Spark na zníženie času vykonávania.
  • Znižuje to manuálne ladenie.
  • Používa historické údaje o pracovnej záťaži na iteratívne zdokonaľovanie konfiguračných rozhodnutí.

Overenie služby autotune

Autotune prechádza rozsiahlym overovaním, aby sa zabezpečila účinnosť a bezpečnosť:

  • Používa prísne testy naprieč rôznymi pracovnými záťažami Spark na overenie efektívnosti algoritmov ladenia.
  • Benchmarky oproti štandardným optimalizačným metódam Spark na preukázanie výkonnostných prínosov.
  • Obsahuje reálne prípadové štúdie na preukázanie praktickej hodnoty.
  • Dodržiava prísne bezpečnostné a súkromné štandardy na ochranu údajov používateľov.

Používateľské údaje sa používajú výlučne na zvýšenie výkonu vyťaženia prostredníctvom robustnej ochrany, aby sa zabránilo zneužitiu alebo vystaveniu citlivých informácií.