Hva er autotune for Apache Spark-konfigurasjoner i Fabric?
Autotune justerer automatisk Apache Spark-konfigurasjonen for å øke hastigheten på arbeidsbelastningskjøringen og for å optimalisere den generelle ytelsen. Autotune sparer tid og ressurser sammenlignet med manuell justering, noe som krever omfattende innsats, ressurser, tid og eksperimentering. Autotune bruker historiske kjøringsdata fra arbeidsbelastningene til å oppdage og bruke de mest effektive konfigurasjonene for en bestemt arbeidsbelastning.
Merk
Funksjonen for autotune-spørringsjustering i Microsoft Fabric er for øyeblikket i forhåndsversjon. Autotune er tilgjengelig på tvers av alle produksjonsområder, men er deaktivert som standard. Du kan aktivere den gjennom Spark-konfigurasjonsinnstillingen i miljøet eller i én enkelt økt ved å inkludere den respektive Spark-innstillingen i Spark-notatblokken eller Spark Job Definition-koden.
Spørringsjustering
Autotune konfigurerer tre Apache Spark-innstillinger for hver av spørringene dine separat:
spark.sql.shuffle.partitions
– Angir partisjonsantallet for datastokking under sammenføyninger eller aggregasjoner. Standardverdien er 200.spark.sql.autoBroadcastJoinThreshold
– Angir den maksimale tabellstørrelsen i byte som kringkastes til alle arbeidernoder når sammenføyningsoperasjonen utføres. Standardverdien er 10 MB.spark.sql.files.maxPartitionBytes
– Definerer maksimalt antall byte som skal pakkes inn i én enkelt partisjon når du leser filer. Fungerer for parquet-, JSON- og ORC-filbaserte kilder. Standard er 128 MB.
Tips
Autotune-spørringsjustering undersøker individuelle spørringer og bygger en distinkt ML-modell for hver spørring. Den retter seg spesifikt mot:
- Gjentakende spørringer
- Langvarige spørringer (de med mer enn 15 sekunder kjøring)
- Apache Spark SQL API-spørringer (unntatt de som er skrevet i RDD-API-en, som er svært sjeldne), men vi optimaliserer alle spørringer uavhengig av språket (Scala, PySpark, R, Spark SQL)
Denne funksjonen er kompatibel med notatblokker, Apache Spark-jobbdefinisjoner og datasamlebånd. Fordelene varierer basert på kompleksiteten i spørringen, metodene som brukes og strukturen. Omfattende testing har vist at de største fordelene er realisert med spørringer relatert til utforskende dataanalyse, for eksempel å lese data, kjøre sammenføyninger, aggregasjoner og sortering.
AI-basert intuisjon bak Autotune
Autotune-funksjonen benytter en iterativ prosess for å optimalisere spørringsytelsen. Det begynner med en standardkonfigurasjon og bruker en maskinlæringsmodell for å evaluere effektiviteten. Når en bruker sender inn en spørring, henter systemet de lagrede modellene basert på tidligere samhandlinger. Det genererer potensielle konfigurasjoner rundt en standardinnstilling kalt centroid. Den beste kandidaten som forutsis av modellen, brukes. Når spørringen er utført, sendes ytelsesdataene tilbake til systemet for å begrense modellen.
Tilbakemeldingsløkken flytter gradvis centroiden mot optimale innstillinger. Den begrenser ytelsen over tid, samtidig som risikoen for regresjon minimeres. Kontinuerlige oppdateringer basert på brukerspørringer muliggjør presisering av ytelsesreferanser. Videre oppdaterer prosessen centroid-konfigurasjonene for å sikre at modellen beveger seg mot mer effektive innstillinger trinnvis. Dette oppnås ved å evaluere tidligere forestillinger og bruke dem til å veilede fremtidige justeringer. Den bruker alle datapunktene til å redusere virkningen av avvik.
Fra et ansvarlig AI-perspektiv inneholder Autotune-funksjonen gjennomsiktighetsmekanismer som er utformet for å holde deg informert om databruk og fordeler. Sikkerheten og personvernet samsvarer med Microsofts standarder. Kontinuerlig overvåking opprettholder ytelse og systemintegritet etter lansering.
Aktiver autotune
Autotune er tilgjengelig på tvers av alle produksjonsområder, men er deaktivert som standard. Du kan aktivere den via Spark-konfigurasjonsinnstillingen i miljøet. Hvis du vil aktivere Autotune, kan du enten opprette et nytt miljø eller, for det eksisterende miljøet, angi Spark-egenskapen spark.ms.autotune.enabled = true, som vist i skjermbildet nedenfor. Denne innstillingen arves deretter av alle notatblokker og jobber som kjører i dette miljøet, og justerer dem automatisk.
Autotune inkluderer en innebygd mekanisme for å overvåke ytelsen og oppdage ytelsesregresjoner. Hvis en spørring for eksempel behandler en uvanlig stor mengde data, deaktiveres Autotune automatisk. Det krever vanligvis 20 til 25 gjentakelser for å lære og identifisere den optimale konfigurasjonen.
Merk
Autotune er kompatibel med Fabric Runtime 1.1 og Runtime 1.2. Autotune fungerer ikke når høy samtidighetsmodus eller når det private endepunktet er aktivert. Autotune integreres imidlertid sømløst med autoskalering, uavhengig av konfigurasjonen.
Du kan aktivere autotune i én enkelt økt ved å inkludere den respektive Spark-innstillingen i Spark-notatblokken eller Spark Job Definition-koden.
%%sql
SET spark.ms.autotune.enabled=TRUE
Du kan kontrollere Autotune gjennom Spark-innstillinger for den respektive Spark-notatblokken eller Spark-jobbdefinisjonskoden. Hvis du vil deaktivere Autotune, utfører du følgende kommandoer som den første cellen (notatblokken) eller linjen i koden (SJD).
%%sql
SET spark.ms.autotune.enabled=FALSE
Kundehistorie
Når du kjører en Apache Spark-spørring, oppretter autotune en tilpasset ML-modell som er dedikert til å optimalisere kjøringen av spørringen. Den analyserer spørringsmønstre og ressursbehov. Vurder en første spørring som filtrerer et datasett basert på et bestemt attributt, for eksempel et land. Selv om dette eksemplet bruker geografisk filtrering, gjelder prinsippet universelt for alle attributter eller operasjoner i spørringen:
%%pyspark
df.filter(df.country == "country-A")
Autotune lærer av denne spørringen, og optimaliserer etterfølgende kjøringer. Når spørringen for eksempel endres ved å endre filterverdien eller bruke en annen datatransformasjon, forblir den strukturelle essensen av spørringen ofte konsekvent:
%%pyspark
df.filter(df.country == "country-B")
Til tross for endringer identifiserer autotune den grunnleggende strukturen i den nye spørringen, og implementerer tidligere lærde optimaliseringer. Denne funksjonen sikrer vedvarende høy effektivitet uten behov for manuell rekonfigurering for hver nye spørrings iterasjon.
Logger
For hver av spørringene bestemmer autotune de mest optimale innstillingene for tre Spark-konfigurasjoner. Du kan vise de foreslåtte innstillingene ved å navigere til loggene. Konfigurasjonene som anbefales av autotune, er plassert i driverloggene, spesielt de oppføringene som starter med [Autotune].
Du kan finne ulike typer oppføringer i loggene. Følgende inkluderer de viktigste:
Status | Bekrivelse |
---|---|
AUTOTUNE_DISABLED | Hoppet over. Autotune er deaktivert. hindrer telemetridatahenting og spørringsoptimalisering. Aktiver Autotune for å bruke funksjonene fullt ut, samtidig som du respekterer kundenes personvern.». |
QUERY_TUNING_DISABLED | Hoppet over. Autotune-spørringsjustering er deaktivert. Gjør det mulig å finjustere innstillingene for Spark SQL-spørringer. |
QUERY_PATTERN_NOT_MATCH | Hoppet over. Spørringsmønsteret samsvarte ikke. Autotune er effektiv for skrivebeskyttede spørringer. |
QUERY_DURATION_TOO_SHORT | Hoppet over. Spørringsvarigheten er for kort til å optimaliseres. Autotune krever lengre spørringer for effektiv justering. Spørringer skal kjøre i minst 15 sekunder. |
QUERY_TUNING_SUCCEED | Vellykket. Spørringsjustering fullført. Optimale spark-innstillinger er aktivert. |
Gjennomsiktighetsnotat
I etterlevelse av den ansvarlige AI-standarden har denne delen som mål å klargjøre bruken og valideringen av Autotune-funksjonen, fremme gjennomsiktighet og muliggjøre informerte beslutninger.
Formålet med Autotune
Autotune er utviklet for å forbedre arbeidsbelastningseffektiviteten i Apache Spark, hovedsakelig for datateknikere. Nøkkelfunksjonene inkluderer:
- Automatisere konfigurasjonsjustering for Apache Spark for å redusere kjøringstidene.
- Minimerer manuell justering.
- Bruk historiske arbeidsbelastningsdata til å begrense konfigurasjoner iterativt.
Validering av Autotune
Autotune har gjennomgått omfattende testing for å sikre effektiviteten og sikkerheten:
- Strenge tester med ulike Spark-arbeidsbelastninger for å verifisere effekten av justeringsalgoritmen.
- Benchmarking mot standard sparkoptimaliseringsmetoder for å demonstrere ytelsesfordeler.
- Virkelige case-studier fremhever Autotune praktiske verdi.
- Overholdelse av 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.