Hva er autotune for Apache Spark-konfigurasjoner i Fabric og hvordan du aktiverer og deaktiverer det?
Autotune justerer automatisk Apache Spark-konfigurasjoner for å minimere arbeidsbelastningens utførelsestid og optimalisere arbeidsbelastninger. Det gir deg mulighet til å oppnå mer med mindre. Denne funksjonen reduserer utførelsestiden og overgår gevinstene som oppnås ved manuelt innstilte arbeidsbelastninger av eksperter, noe som krever betydelig innsats og eksperimentering.
Den drar nytte av historisk datakjøring fra arbeidsbelastningene dine for å iterativt lære de optimale konfigurasjonene for en gitt arbeidsbelastning og utførelsestiden.
Viktig
Microsoft Fabric er for øyeblikket i FORHÅNDSVERSJON. Denne informasjonen er knyttet til et forhåndsutgitt produkt som kan endres vesentlig før det utgis. Microsoft gir ingen garantier, uttrykt eller underforstått, med hensyn til informasjonen som er oppgitt her.
Spørringsjustering
Autotune konfigurerer for øyeblikket tre spørringsnivåer med Apache Spark-konfigurasjoner:
spark.sql.shuffle.partitions
– konfigurerer antall partisjoner som skal brukes ved tilfeldige data for sammenføyninger eller aggregasjoner. Standard er 200.spark.sql.autoBroadcastJoinThreshold
– konfigurerer den maksimale størrelsen i byte for en tabell som vil bli kringkastet til alle arbeidernoder når du utfører en sammenføyning. Standard er 10 MB.spark.sql.files.maxPartitionBytes
– 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.
Siden det ikke er noen historiske data tilgjengelig under den første kjøringen av autotune, angis konfigurasjoner basert på en opprinnelig modell. Denne modellen er avhengig av heuristikk relatert til innholdet og strukturen til selve arbeidsbelastningen. Siden den samme spørringen eller arbeidsbelastningen kjøres gjentatte ganger, vil vi imidlertid se stadig viktigere forbedringer fra autotune. Som resultatene av tidligere kjøringer brukes til å finjustere modellen og skreddersy den til et bestemt arbeidsområde eller arbeidsbelastning.
Obs!
Når algoritmen utforsker ulike konfigurasjoner, kan du legge merke til mindre forskjeller i resultatene. Dette forventes, ettersom autotune opererer iterativt og forbedres med hver repetisjon av den samme spørringen.
Oversikt over konfigurasjonsjusteringsalgoritme
For første kjøring av spørringen, ved innsending, vil en maskinlæringsmodell (ML) som opprinnelig ble opplært ved hjelp av standard referansespørringer med åpen kilde (f.eks. TPC-DS) veilede søket rundt naboene til gjeldende innstilling (fra og med standard). Blant nabokandidatene velger ML-modellen den beste konfigurasjonen med kortest forventet utførelsestid. I dette løpet er "centroid" standardkonfigurasjonen, der autotune genererer nye kandidater.
Basert på ytelsen til den andre kjøringen per foreslåtte konfigurasjon, omskolerer vi ML-modellen ved å legge til den nye observasjonen fra denne spørringen, og oppdaterer centroiden ved å sammenligne ytelsen til de to siste kjøringene. Hvis forrige kjøring er bedre, vil centroid oppdateres i den inverse retningen av den forrige oppdateringen (ligner på momentumtilnærmingen i DNN-opplæring); Hvis den nye kjøringen er bedre, blir den nyeste konfigurasjonsinnstillingen den nye centroiden. Iterativt vil algoritmen gradvis søke i retningen med bedre ytelse.
Aktivere eller deaktivere autotune
Autotune er deaktivert som standard, og den kontrolleres av Konfigurasjonsinnstillinger for Apache Spark. Du kan enkelt aktivere Autotune i en økt ved å kjøre følgende kode i notatblokken eller legge den til i spark-jobbdefinisjonskoden:
%%sql
SET spark.ms.autotune.queryTuning.enabled=TRUE
Bruk følgende kommandoer for å bekrefte og bekrefte aktiveringen:
%%sql
GET spark.ms.autotune.queryTuning.enabled
Hvis du vil deaktivere Autotune, utfører du følgende kommandoer:
%%sql
SET spark.ms.autotune.queryTuning.enabled=FALSE
Gjennomsiktighetsnotat
Microsoft følger ansvarlig AI Standard, og dette gjennomsiktighetsnotatet tar sikte på å gi klar dokumentasjon som definerer den tiltenkte bruken av Autotune og bevis på at funksjonen er egnet for formålet før tjenesten blir eksternt tilgjengelig. Vi forstår viktigheten av åpenhet og sikrer at kundene våre har den nødvendige informasjonen for å ta informerte beslutninger når de bruker tjenestene våre.
Tiltenkt bruk av Autotune
Det primære målet med Autotune er å optimalisere ytelsen til Apache Spark-arbeidsbelastninger ved å automatisere prosessen med Konfigurasjonsjustering av Apache Spark. Systemet er utformet for å brukes av dataingeniører, dataforskere og andre fagfolk som er involvert i utvikling og distribusjon av Apache Spark-arbeidsbelastninger. Den tiltenkte bruken av Autotune inkluderer:
- Automatisk justering av Apache Spark-konfigurasjoner for å minimere kjøringstiden for arbeidsbelastningen for å akselerere utviklingsprosessen
- Redusere den manuelle innsatsen som kreves for konfigurasjonsjustering av Apache Spark
- Utnytte historisk datakjøring fra arbeidsbelastninger til iterativt lære optimale konfigurasjoner
Bevis på at Autotune er egnet for formålet
For å sikre at Autotune oppfyller de ønskede ytelsesstandardene og passer til den tiltenkte bruken, har vi utført grundig testing og validering. Bevisene inkluderer:
- Grundig intern testing og validering ved hjelp av ulike Apache Spark-arbeidsbelastninger og datasett for å bekrefte effektiviteten til autotuning-algoritmene
- Sammenligninger med alternative konfigurasjonsoptimaliseringsteknikker for Apache Spark, som demonstrerer ytelsesforbedringer og effektivitetsgevinster oppnådd av Autotune
- Kunde case-studier og anbefalinger som viser vellykkede anvendelser av Autotune i virkelige prosjekter
- Samsvar med bransjestandard sikkerhets- og personvernkrav, slik at beskyttelse av kundedata og immaterielle rettigheter
Vi ønsker å forsikre oss om at vi prioriterer personvern og sikkerhet for data. Dataene dine brukes bare til å lære opp modellen som tjener din spesifikke arbeidsbelastning. Vi iverksetter strenge tiltak for å sikre at ingen sensitiv informasjon brukes i lagrings- eller opplæringsprosessene våre.