Hvad er autotune for Apache Spark-konfigurationer i Fabric, og hvordan aktiveres og deaktiveres det?
Autotune tilpasser automatisk Apache Spark-konfigurationer for at minimere arbejdsbelastningens udførelsestid og optimerer arbejdsbelastninger. Det giver dig mulighed for at opnå mere med mindre. Denne funktion reducerer udførelsestiden og overgår de fordele, som eksperterne opnår ved manuelt justerede arbejdsbelastninger, hvilket kræver en betydelig indsats og eksperimentering.
Den udnytter historiske dataudførelser fra dine arbejdsbelastninger til iterativt at lære de optimale konfigurationer for en given arbejdsbelastning og dens udførelsestid.
Vigtigt
Microsoft Fabric findes i øjeblikket i PRØVEVERSION. Disse oplysninger er relateret til et foreløbig produkt, der kan blive ændret væsentligt, før det udgives. Microsoft giver ingen garantier, udtrykt eller stiltiende, med hensyn til de oplysninger, der er angivet her.
Justering af forespørgsel
Autotune konfigurerer i øjeblikket tre konfigurationer på forespørgselsniveau for Apache Spark:
spark.sql.shuffle.partitions
– konfigurerer antallet af partitioner, der skal bruges, når data blandes for joinforbindelser eller sammenlægninger. Standard er 200.spark.sql.autoBroadcastJoinThreshold
– konfigurerer den maksimale størrelse i byte for en tabel, der udsendes til alle medarbejdernoder, når der udføres en joinforbindelse. Standarden er 10 MB.spark.sql.files.maxPartitionBytes
– det maksimale antal byte, der kan pakkes til en enkelt partition, når filer læses. Fungerer for parquet-, JSON- og ORC-filbaserede kilder. Standarden er 128 MB.
Da der ikke er nogen historiske data tilgængelige under den første kørsel af autotune, angives konfigurationer baseret på en oprindelig model. Denne model er afhængig af heuristik, der er relateret til indholdet og strukturen af selve arbejdsbelastningen. Men da den samme forespørgsel eller arbejdsbelastning køres gentagne gange, vil vi se stadig større forbedringer fra autotune. Da resultaterne af tidligere kørsler bruges til at finjustere modellen og tilpasse den til et bestemt arbejdsområde eller en bestemt arbejdsbelastning.
Bemærk
Når algoritmen udforsker forskellige konfigurationer, vil du muligvis bemærke mindre forskelle i resultaterne. Dette forventes, da autotune kører iterativt og forbedres med hver gentagelse af den samme forespørgsel.
Oversigt over algoritme til justering af konfiguration
Ved den første kørsel af forespørgslen vil en model til maskinel indlæring (ML), der oprindeligt blev oplært ved hjælp af benchmarkforespørgsler med åben kildekode (f.eks. TPC-DS), vejlede søgningen omkring naboerne til den aktuelle indstilling (startende fra standardindstillingen). Blandt nabokandidaterne vælger ML-modellen den bedste konfiguration med den korteste forudsagte udførelsestid. I denne kørsel er "centroid" standardkonfigurationen, som autotune genererer nye kandidater omkring.
Baseret på ydeevnen af den anden kørsel pr. foreslået konfiguration oplærer vi ML-modellen igen ved at tilføje den nye observation fra denne forespørgsel og opdatere centroiden ved at sammenligne ydeevnen for de sidste to kørsler. Hvis den forrige kørsel er bedre, opdateres centroiden i den omvendte retning af den forrige opdatering (svarende til momentumtilgangen i DNN-træningen); hvis den nye kørsel er bedre, bliver den nyeste konfigurationsindstilling den nye centroid. Iterativt vil algoritmen gradvist søge i retningen med bedre ydeevne.
Aktivér eller deaktiver autotune
Autotune er deaktiveret som standard, og den styres af Konfigurationsindstillinger for Apache Spark. Aktivér nemt Autotune i en session ved at køre følgende kode i din notesbog eller tilføje den i definitionen af dit Spark-job:
%%sql
SET spark.ms.autotune.queryTuning.enabled=TRUE
Hvis du vil bekræfte og bekræfte aktiveringen af den, skal du bruge følgende kommandoer:
%%sql
GET spark.ms.autotune.queryTuning.enabled
Hvis du vil deaktivere Autotune, skal du udføre følgende kommandoer:
%%sql
SET spark.ms.autotune.queryTuning.enabled=FALSE
Gennemsigtighedsnote
Microsoft følger Responsible AI Standard, og denne gennemsigtighedsnote har til formål at levere tydelig dokumentation, der definerer den tilsigtede brug af Autotune og beviserne for, at funktionen er egnet til formålet, før tjenesten bliver eksternt tilgængelig. Vi forstår vigtigheden af gennemsigtighed og sikrer, at vores kunder har de nødvendige oplysninger til at træffe velunderbyggede beslutninger, når de bruger vores tjenester.
Tiltænkt brug af Autotune
Det primære mål med Autotune er at optimere ydeevnen af Apache Spark-arbejdsbelastninger ved at automatisere processen med tilpasning af Apache Spark-konfigurationen. Systemet er udviklet til at blive brugt af datateknikere, datateknikere og andre fagfolk, der er involveret i udvikling og udrulning af Apache Spark-arbejdsbelastninger. De tiltænkte anvendelser af Autotune omfatter:
- Automatisk justering af Apache Spark-konfigurationer for at minimere arbejdsbelastningens udførelsestid for at fremskynde udviklingsprocessen
- Reduktion af den manuelle indsats, der kræves til justering af Apache Spark-konfiguration
- Brug af historiske dataudførelse fra arbejdsbelastninger til iterativt at lære optimale konfigurationer
Beviser for, at Autotune er egnet til formålet
For at sikre, at Autotune opfylder de ønskede ydeevnestandarder og er egnet til dens tilsigtede brug, har vi foretaget strenge test og validering. Beviserne omfatter:
- Grundig intern test og validering ved hjælp af forskellige Apache Spark-arbejdsbelastninger og -datasæt for at bekræfte effektiviteten af autotuningalgoritmerne
- Sammenligninger med alternative Apache Spark-konfigurationsoptimeringsteknikker, der demonstrerer de forbedringer af ydeevnen og effektivitetsgevinster, der opnås af Autotune
- Kundecasestudier og anbefalinger, der viser vellykkede applikationer af Autotune i virkelige projekter
- Overholdelse af branchestandardkrav til sikkerhed og beskyttelse af personlige oplysninger, der sikrer beskyttelse af kundedata og intellektuel ejendomsret
Vi vil gerne sikre, at vi prioriterer beskyttelse af personlige oplysninger og sikkerhed. Dine data bruges kun til at oplære den model, der opfylder din specifikke arbejdsbelastning. Vi træffer strenge foranstaltninger for at sikre, at der ikke bruges følsomme oplysninger i vores lager- eller oplæringsprocesser.