Dela via


Vad är autotune för Apache Spark-konfigurationer i Fabric?

Autotune justerar automatiskt Apache Spark-konfigurationen för att påskynda arbetsbelastningskörningen och optimera övergripande prestanda. Autotune sparar tid och resurser jämfört med manuell justering, vilket kräver omfattande arbete, resurser, tid och experimentering. Autotune använder historiska körningsdata från dina arbetsbelastningar för att iterativt identifiera och tillämpa de mest effektiva konfigurationerna för en viss arbetsbelastning.

Kommentar

Funktionen för automatisk frågejustering i Microsoft Fabric är för närvarande i förhandsversion. Autotune är tillgängligt i alla produktionsregioner men är inaktiverat som standard. Du kan aktivera den via Spark-konfigurationsinställningen i miljön eller inom en enda session genom att inkludera respektive Spark-inställning i spark-anteckningsboken eller Spark-jobbdefinitionskoden.

Frågejustering

Autotune konfigurerar tre Apache Spark-inställningar för var och en av dina frågor separat:

  • spark.sql.shuffle.partitions – Anger partitionsantalet för datablandning under kopplingar eller aggregeringar. Standardvärdet är 200.
  • spark.sql.autoBroadcastJoinThreshold – Anger den maximala tabellstorleken i byte som sänds till alla arbetsnoder när kopplingsåtgärden körs. Standardvärdet är 10 MB.
  • spark.sql.files.maxPartitionBytes – Definierar det maximala antalet byte som ska packas i en enda partition vid läsning av filer. Fungerar för parquet-, JSON- och ORC-filbaserade källor. Standardvärdet är 128 MB.

Dricks

Autotune-frågejustering undersöker enskilda frågor och skapar en distinkt ML-modell för varje fråga. Den riktar sig specifikt till:

  • Repetitiva frågor
  • Tidskrävande frågor (de med mer än 15 sekunders körning)
  • Apache Spark SQL API-frågor (exklusive de som skrivits i RDD-API:et, som är mycket sällsynta), men vi optimerar alla frågor oavsett språk (Scala, PySpark, R, Spark SQL)

Den här funktionen är kompatibel med notebook-filer, Apache Spark-jobbdefinitioner och pipelines. Fördelarna varierar beroende på frågans komplexitet, de metoder som används och strukturen. Omfattande tester har visat att de största fördelarna med frågor som rör undersökande dataanalys, till exempel att läsa data, köra kopplingar, aggregeringar och sortering.

Skärmbild av körningstiden med autotune aktiverat.

AI-baserad intuition bakom Autotune

Funktionen autotune använder en iterativ process för att optimera frågeprestanda. Den börjar med en standardkonfiguration och använder en maskininlärningsmodell för att utvärdera effektiviteten. När en användare skickar en fråga hämtar systemet de lagrade modellerna baserat på tidigare interaktioner. Den genererar potentiella konfigurationer kring en standardinställning med namnet centroid. Den bästa kandidaten som förutsägs av modellen tillämpas. Efter frågekörningen skickas prestandadata tillbaka till systemet för att förfina modellen.

Feedbackloopen flyttar gradvis centroiden till optimala inställningar. Det förfinar prestanda över tid samtidigt som risken för regression minimeras. Kontinuerliga uppdateringar baserade på användarfrågor möjliggör förfining av prestandamått. Dessutom uppdaterar processen centroidkonfigurationerna för att säkerställa att modellen flyttas mot effektivare inställningar stegvis. Detta uppnås genom att utvärdera tidigare prestationer och använda dem för att vägleda framtida justeringar. Den använder alla datapunkter för att minimera effekten av avvikelser.

Ur ett ansvarsfullt AI-perspektiv innehåller Autotune-funktionen transparensmekanismer som är utformade för att hålla dig informerad om din dataanvändning och dina fördelar. Säkerhet och sekretess överensstämmer med Microsofts standarder. Löpande övervakning upprätthåller prestanda och systemintegritet efter lanseringen.

Aktivera autotune

Autotune är tillgängligt i alla produktionsregioner men är inaktiverat som standard. Du kan aktivera den via Spark-konfigurationsinställningen i miljön. Om du vill aktivera Autotune skapar du antingen en ny miljö eller anger spark-egenskapen "spark.ms.autotune.enabled = true" för den befintliga miljön enligt skärmbilden nedan. Den här inställningen ärvs sedan av alla notebook-filer och jobb som körs i den miljön, vilket automatiskt justerar dem.

Skärmbild av aktivering av autotune.

Autotune innehåller en inbyggd mekanism för att övervaka prestanda och identifiera prestandaregressioner. Om en fråga till exempel bearbetar en ovanligt stor mängd data inaktiveras Autotune automatiskt. Det krävs vanligtvis 20 till 25 iterationer för att lära sig och identifiera den optimala konfigurationen.

Kommentar

Autotune är kompatibel med Fabric Runtime 1.1 och Runtime 1.2. Autotune fungerar inte när läget för hög samtidighet eller när den privata slutpunkten är aktiverad. Autotune integreras dock sömlöst med autoskalning, oavsett konfiguration.

Du kan aktivera autotune i en enda session genom att inkludera respektive Spark-inställning i din Spark-notebook- eller Spark-jobbdefinitionskod.

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

Du kan styra Autotune via Spark-inställningar för din respektive Spark-notebook- eller Spark-jobbdefinitionskod. Om du vill inaktivera Autotune kör du följande kommandon som den första cellen (notebook-filen) eller raden i koden (SJD).

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

Fallstudie

När du kör en Apache Spark-fråga skapar autotune en anpassad ML-modell som är dedikerad för att optimera frågans körning. Den analyserar frågemönster och resursbehov. Överväg en första fråga som filtrerar en datamängd baserat på ett specifikt attribut, till exempel ett land. Även om det här exemplet använder geografisk filtrering gäller principen universellt för alla attribut eller åtgärder i frågan:

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

Autotune lär sig av den här frågan och optimerar efterföljande körningar. När frågan ändras, till exempel genom att ändra filtervärdet eller tillämpa en annan datatransformering, förblir frågans strukturella kärna ofta konsekvent:

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

Trots ändringar identifierar autotune den grundläggande strukturen för den nya frågan och implementerar tidigare inlärda optimeringar. Den här funktionen säkerställer bibehållen hög effektivitet utan att behöva konfigurera om manuellt för varje ny fråge-iteration.

Loggar

För var och en av dina frågor avgör autotune de mest optimala inställningarna för tre Spark-konfigurationer. Du kan visa de föreslagna inställningarna genom att gå till loggarna. De konfigurationer som rekommenderas av autotune finns i drivrutinsloggarna, särskilt de poster som börjar med [Autotune].

Skärmbild av autotune-loggar i Övervakningshubben.

Du hittar olika typer av poster i loggarna. Följande inkluderar de viktigaste:

Status beskrivning
AUTOTUNE_DISABLED Överhoppade. Autotune är inaktiverat. förhindra hämtning av telemetridata och frågeoptimering. Gör det möjligt för Autotune att fullt ut använda sina funktioner samtidigt som kundernas sekretess respekteras."
QUERY_TUNING_DISABLED Överhoppade. Autotune-frågejustering är inaktiverat. Aktivera den för att finjustera inställningarna för dina Spark SQL-frågor.
QUERY_PATTERN_NOT_MATCH Överhoppade. Frågemönstret matchade inte. Autotune gäller för skrivskyddade frågor.
QUERY_DURATION_TOO_SHORT Överhoppade. Frågevaraktigheten är för kort för att optimeras. Autotune kräver längre frågor för effektiv justering. Frågor ska köras i minst 15 sekunder.
QUERY_TUNING_SUCCEED Klart! Frågejusteringen har slutförts. Optimala spark-inställningar tillämpas.

Transparensanteckning

I enlighet med den ansvarsfulla AI-standarden syftar det här avsnittet till att klargöra användning och validering av Autotune-funktionen, främja transparens och möjliggöra välgrundat beslutsfattande.

Syftet med Autotune

Autotune har utvecklats för att förbättra Apache Spark-arbetsbelastningens effektivitet, främst för dataproffs. Dess viktigaste funktioner är:

  • Automatisera Apache Spark-konfigurationsjustering för att minska körningstiderna.
  • Minimera manuell justering.
  • Använda historiska arbetsbelastningsdata för att förfina konfigurationer iterativt.

Verifiering av Autotune

Autotune har genomgått omfattande tester för att säkerställa dess effektivitet och säkerhet:

  • Rigorösa tester med olika Spark-arbetsbelastningar för att verifiera justeringsalgoritmens effekt.
  • Benchmarking mot Standard Spark-optimeringsmetoder för att demonstrera prestandafördelar.
  • Verkliga fallstudier som belyser Autotune praktiska värde.
  • Efterlevnad av strikta säkerhets- och sekretessstandarder för att skydda användardata.

Användardata används uteslutande för att förbättra arbetsbelastningens prestanda, med robusta skydd för att förhindra missbruk eller exponering av känslig information.