Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Autotune justerar automatiskt Apache Spark-konfigurationer för att minska utförandetiden och förbättra prestandan. Det hjälper dig att undvika manuell justering, vilket vanligtvis kräver upprepade försök och misstag. Autotune använder historiska körningsdata från dina arbetsbelastningar för att iterativt identifiera och tillämpa effektiva inställningar för varje arbetsbelastning.
Kommentar
Autotune-frågejustering i Microsoft Fabric är för närvarande i förhandsversion. Den är tillgänglig i alla produktionsregioner, men den är inaktiverad som standard. Aktivera denna i en miljö Spark-konfiguration, eller för en enda session i en notebook-fil eller kod för Spark-jobbdefinition.
Konfigurationsstandarder och krav
- Standardbeteende: Autotune är inaktiverat som standard.
- Ingen nödvändig konfiguration när du är avstängd: Om du inte aktiverar autotune använder Spark sitt standardkonfigurationsbeteende.
-
Obligatorisk installation för att använda autotune: Ange
spark.ms.autotune.enabled=trueantingen:- På miljönivå ärver alla notebook-filer och jobb som använder den miljön inställningen. Se Aktivera AutoTune.
- Endast i en notebook- eller Spark Job Definition-session. Se Aktivera autotune för en enda session.
Frågeoptimering
Autotune justerar dessa tre Apache Spark-inställningar för varje fråga:
-
spark.sql.shuffle.partitions: Anger partitionsantalet för datablandning under kopplingar eller aggregeringar. Standard är200. -
spark.sql.autoBroadcastJoinThreshold: Anger den maximala tabellstorleken i byte som ska sändas till arbetsnoder under en koppling. Standard är10 MB. -
spark.sql.files.maxPartitionBytes: Anger maximalt antal byte som ska packas i en partition vid läsning av filer. Gäller för Parquet-, JSON- och ORC-filkällor. Standard är128 MB.
Autotune-frågejustering undersöker varje fråga och skapar en separat maskininlärningsmodell för den frågan. Det fungerar bäst för:
- Repetitiva frågor
- Långvariga frågor (mer än 15 sekunder)
- Apache Spark SQL API-frågor (inte RDD API)
Du kan använda autotune med notebook-filer, Spark-jobbdefinitioner och pipelines. Förmånen varierar beroende på frågekomplexitet och dataform. Vid testning visas de största vinsterna i undersökande dataanalysmönster, till exempel läsningar, kopplingar, aggregeringar och sorteringar.
Så här fungerar autotune
Autotune använder en iterativ optimeringsloop:
- Börja från standardvärdena för Spark-konfiguration.
- Generera kandidatkonfigurationer runt en baslinje (centroid).
- Förutsäga den bästa kandidaten med hjälp av en modell som tränats på tidigare körningar.
- Använd kandidaten och utför frågan.
- Mata tillbaka körningsresultaten i modellen.
Med tiden skiftar baslinjen mot bättre inställningar samtidigt som regressionsrisken minskas. Att använda alla insamlade datapunkter bidrar också till att minska effekten av avvikelser.
Aktivera autotune
Autotune är tillgängligt i alla produktionsregioner, men det är inaktiverat som standard. Om du vill aktivera den på miljönivå anger du egenskapen spark.ms.autotune.enabled=true Spark i en ny eller befintlig miljö. Inställningen ärvs av alla anteckningsböcker och jobb som använder denna miljö.
Autotune innehåller inbyggd regressionsidentifiering. Om en sökfråga till exempel bearbetar en ovanligt stor mängd data kan autotune automatiskt hoppa över optimeringen för den körningen. I många scenarier behöver autotune cirka 20 till 25 iterationer för att konvergera på starka inställningar.
Kommentar
Autotune är kompatibelt med Runtime 1.2. Du kan inte aktivera den i körningsversioner senare än 1.2. Den körs inte när hög samtidighetsläge eller privat slutpunkt är aktiverad. Autotune fungerar med autoskalning i valfri konfiguration av automatisk skalning.
Du kan också aktivera autotune för en enskild session genom att ange egenskapen Spark i notebook-filen eller Spark-jobbdefinitionen.
Aktivera autotune för en enskild session
%%sql
SET spark.ms.autotune.enabled=TRUE
Inaktivera autotune för en enskild session
Om du vill inaktivera autotune i en notebook- eller Spark-jobbdefinition kör du något av följande kommandon som den första cellen eller den första kodraden.
%%sql
SET spark.ms.autotune.enabled=FALSE
Fallstudie
När du kör en Apache Spark-fråga skapar autotune en modell för frågeformen och lär sig de bästa inställningarna över tid. Börja till exempel med den här filterfrågan:
%%pyspark
df.filter(df.country == "country-A")
Autotune lär sig av den här körningen. Om du senare bara ändrar filtervärdet förblir frågeformen liknande:
%%pyspark
df.filter(df.country == "country-B")
Autotune kan återanvända tidigare lärdomar för det här liknande sökfrågemönstret, vilket bidrar till att upprätthålla prestandan utan manuell justering.
Loggar
För varje fråga beräknar autotune rekommenderade värden för de tre Spark-konfigurationer som stöds. För att granska rekommendationer, kontrollera drivrutinsloggfilerna efter poster som börjar med [Autotune].
Vanliga loggstatusar är:
| Läge | beskrivning |
|---|---|
AUTOTUNE_DISABLED |
Hoppade över Autotune är inaktiverat, så insamling och optimering av telemetri tillämpas inte. |
QUERY_TUNING_DISABLED |
Hoppade över Optimering av sökfrågor har inaktiverats. |
QUERY_PATTERN_NOT_MATCH |
Hoppade över Frågemönstret matchar inte de stödda endast läsbara frågetyperna. |
QUERY_DURATION_TOO_SHORT |
Hoppade över Förfrågan kördes i mindre än 15 sekunder, vilket är för kort för effektiv optimering. |
QUERY_TUNING_SUCCEED |
Framgång. Frågejusteringen har slutförts och optimerade Spark-inställningar har tillämpats. |
Transparensanteckning
I enlighet med Responsible AI Standard förklarar det här avsnittet hur autotune används och verifieras.
Syftet med autotune
Autotune är utformat för att förbättra Apache Spark-arbetsbelastningens effektivitet för dataproffs. Det:
- Justerar Apache Spark-konfigurationer automatiskt för att minska körningstiden.
- Minskar insatsen för manuell justering.
- Använder historiska arbetsbelastningsdata för att iterativt förfina konfigurationsalternativ.
Validering av autotune
Autotune genomgår omfattande validering för att säkerställa effektivitet och säkerhet:
- Använder rigorösa tester för olika Spark-arbetsbelastningar för att verifiera justeringsalgoritmens effektivitet.
- Prestandamått mot standardmetoder för Spark-optimering för att demonstrera prestandafördelar.
- Innehåller verkliga fallstudier för att visa praktiskt värde.
- Följer strikta säkerhets- och sekretessstandarder för att skydda användardata.
Användardata används uteslutande för att förbättra arbetsbelastningens prestanda, med robusta skydd för att förhindra missbruk eller exponering av känslig information.