Poznámka
Na prístup k tejto stránke sa vyžaduje oprávnenie. Môžete sa skúsiť prihlásiť alebo zmeniť adresáre.
Na prístup k tejto stránke sa vyžaduje oprávnenie. Môžete skúsiť zmeniť adresáre.
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=truebuď:- Na úrovni prostredia, takže všetky notebooky a úlohy, ktoré toto prostredie používajú, zdedia toto nastavenie. Pozri Povoliť autotune.
- Len v jednom zápisníku alebo v Spark session s definíciou práce. Pozri Povoliť autotune pre jednu reláciu.
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 je200. -
spark.sql.autoBroadcastJoinThreshold: Nastavuje maximálnu veľkosť tabuľky v bajtoch, ktorá sa vysiela do pracovných uzlov počas spojenia. Predvolená hodnota je10 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 je128 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.
Ako funguje autotune
Autotune používa iteratívnu optimalizačnú slučku:
- Začnite od predvolených hodnôt konfigurácie Spark.
- Generujte kandidátske konfigurácie okolo základne (centroidu).
- Predpovedajte najlepšieho kandidáta pomocou modelu trénovaného v predchádzajúcich behoch.
- Aplikujte kandidáta a vykonajte dotaz.
- 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.
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
- Spark SQL
- PySpark
- Iskra Scala
- SparkR
%%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.
- Spark SQL
- PySpark
- Iskra Scala
- SparkR
%%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].
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í.