Del via


Hva er autotune for Apache Spark-konfigurasjoner i Fabric?

Autotune justerer automatisk Apache Spark-konfigurasjoner for å redusere arbeidsbelastningstiden og forbedre ytelsen. Det hjelper deg å unngå manuell tuning, som vanligvis krever gjentatte prøving og feiling. Autotune bruker historiske utførelsesdata fra arbeidsbelastningene dine for iterativt å oppdage og anvende effektive innstillinger for hver arbeidsbelastning.

Note

Autotune-spørringstuning i Microsoft Fabric er for øyeblikket i forhåndsvisning. Det er tilgjengelig i alle produksjonsregioner, men det er deaktivert som standard. Aktiver det i en Spark-konfigurasjon i miljøet, eller for en enkelt økt i notebook- eller Spark-jobbdefinisjonskode.

Konfigurasjonsstandarder og krav

  • Standardoppførsel: Autotune er av som standard.
  • Ingen nødvendig oppsett når den er av: Hvis du ikke aktiverer autotune, bruker Spark sin standard konfigurasjonsoppførsel.
  • Nødvendig oppsett for å bruke autotune: Sett spark.ms.autotune.enabled=true enten:

Justering av spørring

Autotune justerer disse tre Apache Spark-innstillingene for hver forespørsel:

  • spark.sql.shuffle.partitions: Setter partisjonsantallet for datastokking under joins eller aggregeringer. Standard er 200.
  • spark.sql.autoBroadcastJoinThreshold: Setter maksimal tabellstørrelse, i bytes, til å kringkaste til arbeidsnoder under en join. Standard er 10 MB.
  • spark.sql.files.maxPartitionBytes: Setter maksimalt antall bytes som skal pakkes i én partisjon når filer leses. Gjelder for Parquet-, JSON- og ORC-filkilder. Standard er 128 MB.

Autotune-spørringstuning undersøker hver spørring og bygger en egen maskinlæringsmodell for den spørringen. Det fungerer best for:

  • Repeterende spørringer
  • Langvarige spørringer (mer enn 15 sekunder)
  • Apache Spark SQL API-forespørsler (ikke RDD API)

Du kan bruke autotune med notatbøker, Spark Job Definitions og pipelines. Fordelen varierer med spørringskompleksitet og dataform. I testing vises de største gevinstene i utforskende dataanalysemønstre som lesing, joins, aggregeringer og sorteringer.

Skjermbilde av kjøretiden med autotune aktivert.

Hvordan autotune fungerer

Autotune bruker en iterativ optimaliseringssløyfe:

  1. Start fra standard Spark-konfigurasjonsverdier.
  2. Generer kandidatkonfigurasjoner rundt en baseline (centroid).
  3. Forutsi den beste kandidaten ved å bruke en modell trent på tidligere kjøringer.
  4. Bruk kandidaten og kjør forespørselen.
  5. Mater utførelsesresultater tilbake til modellen.

Over tid skifter grunnlinjen mot bedre innstillinger samtidig som risikoen for regresjon reduseres. Bruken av alle innsamlede datapunkter bidrar også til å redusere effekten av anomalier.

Aktivere autotune

Autotune er tilgjengelig i alle produksjonsregioner, men den er deaktivert som standard. For å aktivere det på miljønivå, sett Spark-egenskapen spark.ms.autotune.enabled=true i et nytt eller eksisterende miljø. Alle notatbøker og jobber som bruker det miljøet arver innstillingen.

Skjermbilde av aktivering av autotune.

Autotune inkluderer innebygd regresjonsdeteksjon. For eksempel, hvis en spørring behandler en uvanlig stor mengde data, kan autotune automatisk hoppe over tuning for den kjøringen. I mange scenarioer trenger autotune omtrent 20 til 25 iterasjoner for å konvergere mot sterke innstillinger.

Note

Autotune er kompatibel med Runtime 1.2. Du kan ikke aktivere det på runtime-versjoner senere enn 1.2. Den kjører ikke når høy samtidighetsmodus eller privat endepunkt er aktivert. Autotune fungerer med autoskalering i alle autoskaleringskonfigurasjoner.

Du kan også aktivere autotune for en enkelt økt ved å sette Spark-egenskapen i notatboken din eller Spark Job Definition.

Aktiver autotune for en enkelt økt

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

Deaktiver autotune for en enkelt økt

For å deaktivere autotune i en notatbok eller Spark Job Definition, kjør en av følgende kommandoer som første celle eller første kodelinje.

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

Referanse

Når du kjører en Apache Spark-spørring, bygger autotune en modell for den spørringsformen og lærer de beste innstillingene over tid. For eksempel, start med denne filterspørringen:

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

Autotune lærer av denne gjennomspillingen. Hvis du senere bare endrer filterverdien, forblir spørringsformen lik:

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

Autotune kan gjenbruke tidligere læringer for dette lignende spørringsmønsteret, noe som hjelper til med å opprettholde ytelsen uten manuell justering.

Logs

For hver spørring beregner autotune anbefalte verdier for de tre støttede Spark-konfigurasjonene. For å inspisere anbefalinger, sjekk førerlogger for oppføringer som starter med [Autotune].

Skjermbilde av autotune-logger i Overvåkingshub.

Vanlige loggstatuser inkluderer:

Status Description
AUTOTUNE_DISABLED Skipped. Autotune er deaktivert, så telemetriinnsamling og optimalisering brukes ikke.
QUERY_TUNING_DISABLED Skipped. Spørringsjustering er deaktivert.
QUERY_PATTERN_NOT_MATCH Skipped. Spørringsmønsteret matcher ikke støttede skrivebeskyttede spørringstyper.
QUERY_DURATION_TOO_SHORT Skipped. Spørringen kjørte i mindre enn 15 sekunder, noe som er for kort tid for effektiv tuning.
QUERY_TUNING_SUCCEED Success. Spørringsjustering fullført og optimaliserte Spark-innstillinger ble brukt.

Gjennomsiktighetsnotat

I tråd med Responsible AI-standarden forklarer denne delen hvordan autotune brukes og valideres.

Formålet med autotune

Autotune er designet for å forbedre Apache Sparks arbeidsbelastningseffektivitet for dataprofesjonelle. Det:

  • Justerer automatisk Apache Spark-konfigurasjoner for å redusere kjøretiden.
  • Reduserer manuell tuning.
  • Bruker historiske arbeidsbelastningsdata for iterativt å finjustere konfigurasjonsvalg.

Validering av autotune

Autotune gjennomgår omfattende validering for å bidra til å sikre effektivitet og sikkerhet:

  • Bruker grundige tester på tvers av ulike Spark-arbeidsbelastninger for å verifisere effektiviteten til tuning-algoritmen.
  • Benchmarks mot standard Spark-optimaliseringsmetoder for å demonstrere ytelsesfordeler.
  • Inkluderer virkelige casestudier for å vise praktisk verdi.
  • Følger strenge sikkerhets- og personvernstandarder for å beskytte brukerdata.

Brukerdata brukes utelukkende til å forbedre arbeidsbelastningens ytelse, med robust beskyttelse for å hindre misbruk eller eksponering av sensitiv informasjon.