Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
Autotune justerer automatisk Apache Spark-konfigurationerne for at reducere arbejdsbelastningstiden og forbedre ydeevnen. Det hjælper dig med at undgå manuel tuning, som typisk kræver gentagne forsøg og fejl. Autotune bruger historiske eksekveringsdata fra dine arbejdsbelastninger til iterativt at opdage og anvende effektive indstillinger for hver arbejdsbyrde.
Note
Autotune-forespørgselsoptimering i Microsoft Fabric er i øjeblikket i forhåndsvisning. Det er tilgængeligt i alle produktionsregioner, men det er deaktiveret som standard. Aktiver det i en Spark-konfiguration i miljøet, eller for en enkelt session i notebook eller Spark Job Definition-kode.
Konfigurationsstandarder og krav
- Standardadfærd: Autotune er slået fra som standard.
- Ingen nødvendig opsætning, når den er slået fra: Hvis du ikke aktiverer autotune, bruger Spark sin standard konfigurationsadfærd.
-
Påkrævet opsætning for at bruge autotune: Sæt
spark.ms.autotune.enabled=trueenten:- På miljøniveau arver alle notebooks og jobs, der bruger det miljø, settingen. Se Aktiver autotune.
- Kun i én notesbog eller Spark Job Definition-session. Se Aktiver autotune for en enkelt session.
Justering af forespørgsler
Autotune justerer disse tre Apache Spark-indstillinger for hver forespørgsel:
-
spark.sql.shuffle.partitions: Sætter partitionsantallet for datashuffling under joins eller aggregations. Standard er200. -
spark.sql.autoBroadcastJoinThreshold: Sætter den maksimale tabelstørrelse, i bytes, til at sende til arbejdernoder under en join. Standard er10 MB. -
spark.sql.files.maxPartitionBytes: Sætter det maksimale antal bytes, der skal pakkes i én partition, når filer læses. Gælder for Parquet-, JSON- og ORC-filkilder. Standard er128 MB.
Autotune-forespørgselsoptimering undersøger hver forespørgsel og bygger en separat maskinlæringsmodel til den forespørgsel. Det fungerer bedst til:
- Gentagne forespørgsler
- Langvarige forespørgsler (mere end 15 sekunder)
- Apache Spark SQL API-forespørgsler (ikke RDD API)
Du kan bruge autotune med notesbøger, Spark Job Definitions og pipelines. Fordelen varierer afhængigt af forespørgselskompleksitet og dataform. Ved test optræder de største gevinster i eksperimenterende dataanalysemønstre såsom reads, joins, aggregations og sorts.
Hvordan autotune fungerer
Autotune bruger en iterativ optimeringsløkke:
- Start fra standard Spark-konfigurationsværdier.
- Generer kandidatkonfigurationer omkring en baseline (centroid).
- Forudsig den bedste kandidat ved at bruge en model, der er trænet på tidligere kørsler.
- Ansøg kandidaten og udfør forespørgslen.
- Indsend udførelsesresultater tilbage til modellen.
Over tid skifter baseline mod bedre indstillinger, samtidig med at risikoen for regression reduceres. Brugen af alle indsamlede datapunkter hjælper også med at reducere effekten af anomalier.
Aktivere autotune
Autotune er tilgængelig i alle produktionsregioner, men den er deaktiveret som standard. For at aktivere det på miljøniveau, sæt Spark-egenskaben spark.ms.autotune.enabled=true i et nyt eller eksisterende miljø. Alle notebooks og jobs, der bruger det miljø, arver settingen.
Autotune inkluderer indbygget regressionsdetektion. For eksempel, hvis en forespørgsel behandler en usædvanligt stor mængde data, kan autotune automatisk springe tuning over for det pågældende kørsel. I mange scenarier kræver autotune omkring 20 til 25 iterationer for at konvergere på stærke indstillinger.
Note
Autotune er kompatibel med Runtime 1.2. Du kan ikke aktivere det på runtime-versioner senere end 1.2. Den kører ikke, når høj samtidighedstilstand eller privat endpoint er aktiveret. Autotune fungerer med autoskalering i enhver autoskaleringskonfiguration.
Du kan også aktivere autotune for en enkelt session ved at sætte Spark-egenskaben i din notesbog eller Spark Job Definition.
Aktiver autotune for en enkelt session
%%sql
SET spark.ms.autotune.enabled=TRUE
Deaktiver autotune for en enkelt session
For at deaktivere autotune i en notebook eller Spark Job Definition, kør en af følgende kommandoer som den første celle eller første linje kode.
%%sql
SET spark.ms.autotune.enabled=FALSE
Casestudy
Når du kører en Apache Spark-forespørgsel, bygger autotune en model for den forespørgselsform og lærer de bedste indstillinger over tid. For eksempel kan du starte med denne filterforespørgsel:
%%pyspark
df.filter(df.country == "country-A")
Autotune lærer af denne gennemspilning. Hvis du senere kun ændrer filterværdien, forbliver forespørgselsformen ens:
%%pyspark
df.filter(df.country == "country-B")
Autotune kan genbruge tidligere læringer til dette lignende forespørgselsmønster, hvilket hjælper med at opretholde ydeevnen uden manuel omindstilling.
Logs
For hver forespørgsel beregner autotune anbefalede værdier for de tre understøttede Spark-konfigurationer. For at inspicere anbefalingerne, tjek driverlogs for poster, der starter med [Autotune].
Almindelige log-statusser omfatter:
| Status | Description |
|---|---|
AUTOTUNE_DISABLED |
Skipped. Autotune er deaktiveret, så telemetriindsamling og optimering anvendes ikke. |
QUERY_TUNING_DISABLED |
Skipped. Forespørgselsoptimering er deaktiveret. |
QUERY_PATTERN_NOT_MATCH |
Skipped. Forespørgselsmønsteret matcher ikke understøttede skrivebeskyttede forespørgselstyper. |
QUERY_DURATION_TOO_SHORT |
Skipped. Forespørgslen kørte i mindre end 15 sekunder, hvilket er for kort tid til effektiv tuning. |
QUERY_TUNING_SUCCEED |
Success. Forespørgselsoptimering blev afsluttet, og optimerede Spark-indstillinger blev anvendt. |
Gennemsigtighedsnote
I overensstemmelse med Responsible AI Standard forklarer dette afsnit, hvordan autotune bruges og valideres.
Formålet med autotune
Autotune er designet til at forbedre Apache Sparks arbejdsbelastningseffektivitet for dataprofessionelle. Den:
- Justerer automatisk Apache Spark-konfigurationer for at reducere eksekveringstiden.
- Reducerer manuel tuning.
- Bruger historiske arbejdsbelastningsdata til iterativt at forfine konfigurationsvalg.
Validering af autotune
Autotune gennemgår omfattende validering for at sikre effektivitet og sikkerhed:
- Bruger grundige tests på tværs af forskellige Spark-arbejdsbelastninger for at verificere effektiviteten af tuning-algoritmer.
- Benchmarks mod standard Spark-optimeringsmetoder for at demonstrere præstationsfordele.
- Inkluderer virkelige casestudier for at vise praktisk værdi.
- Følger strenge sikkerheds- og privatlivsstandarder for at beskytte brugerdata.
Brugerdata bruges udelukkende til at forbedre din arbejdsbelastnings ydeevne med robust beskyttelse for at forhindre misbrug eller eksponering af følsomme oplysninger.