Del via


Hvad er autotune til Apache Spark-konfigurationer i Fabric?

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=true enten:

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 er 200.
  • spark.sql.autoBroadcastJoinThreshold: Sætter den maksimale tabelstørrelse, i bytes, til at sende til arbejdernoder under en join. Standard er 10 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 er 128 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.

Skærmbillede af eksekveringstiden med autotune aktiveret.

Hvordan autotune fungerer

Autotune bruger en iterativ optimeringsløkke:

  1. Start fra standard Spark-konfigurationsværdier.
  2. Generer kandidatkonfigurationer omkring en baseline (centroid).
  3. Forudsig den bedste kandidat ved at bruge en model, der er trænet på tidligere kørsler.
  4. Ansøg kandidaten og udfør forespørgslen.
  5. 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.

Skærmbillede af aktivering af autotune.

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].

Skærmbillede af autotune-logge i Overvågningshub.

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.