Co je automatické ladění pro konfigurace Apache Sparku ve Fabricu?

Autotune upravuje konfigurace Apache Spark tak, aby zkrátilo dobu provádění pracovních úloh a zlepšilo výkon. Pomáhá vyhnout se ručnímu ladění, což obvykle vyžaduje opakované pokusy a chyby. Automatické ladění používá historická výkonová data z vašich úloh k iterativnímu zjišťování a aplikaci efektivních nastavení pro každou úlohu.

Poznámka:

Automatické ladění dotazů v Microsoft Fabric je aktuálně ve verzi preview. Je dostupná ve všech produkčních oblastech, ale ve výchozím nastavení je zakázaná. Povolte ji v konfiguraci prostředí Spark nebo pro jednu relaci v notebooku nebo v kódu definice úlohy Sparku.

Výchozí hodnoty konfigurace a požadavky

  • Výchozí chování: Automatické ladění je ve výchozím nastavení vypnuté .
  • Není potřebné žádné nastavení, když je vypnuto: Pokud automatické ladění nepovolíte, Spark použije své standardní konfigurační chování.
  • Požadované nastavení pro použití automatického ladění: Nastavte spark.ms.autotune.enabled=true :

Ladění dotazů

Autotune ladí tato tři nastavení Apache Spark pro každý dotaz.

  • spark.sql.shuffle.partitions: Nastaví počet partic pro přeskupování dat během spojení nebo agregací. Výchozí hodnota je 200.
  • spark.sql.autoBroadcastJoinThreshold: Nastaví maximální velikost tabulky v bajtech tak, aby se během spojení vysílala do pracovních uzlů. Výchozí hodnota je 10 MB.
  • spark.sql.files.maxPartitionBytes: Nastaví maximální počet bajtů, které se mají při čtení souborů zabalit do jednoho oddílu. Platí pro zdroje souborů Parquet, JSON a ORC. Výchozí hodnota je 128 MB.

Ladění dotazů pomocí Autotune prozkoumává každý dotaz a vytváří pro něj samostatný model strojového učení. Funguje nejlépe pro:

  • Opakované dotazy
  • Dlouhotrvající dotazy (více než 15 sekund)
  • Dotazy rozhraní SQL API Apache Sparku (ne rozhraní RDD API)

Můžete použít automatické ladění pro poznámkové bloky, definice úloh pro Spark a moduly. Výhody se liší podle složitosti dotazů a tvaru dat. Při testování se největší zisky objevují ve vzorech průzkumné analýzy dat, jako jsou čtení, spojení, agregace a řazení.

Snímek obrazovky s časem spuštění s povoleným automatickým laděním

Jak funguje autotune

Automatické ladění používá smyčku iterativní optimalizace:

  1. Začněte od výchozích hodnot konfigurace Sparku.
  2. Generovat kandidátské konfigurace kolem základny (centroid).
  3. Predikce nejlepšího kandidáta pomocí modelu natrénovaného na předchozích spuštěních
  4. Aplikujte kandidáta a spusťte dotaz.
  5. Výsledky spuštění zadejte zpět do modelu.

V průběhu času se základní úroveň posune k lepšímu nastavení, což zároveň snižuje riziko zpětného vývoje. Použití všech shromážděných dat také pomáhá snížit vliv anomálií.

Povolení automatického ladění

Automatické ladění je dostupné ve všech produkčních oblastech, ale ve výchozím nastavení je zakázané. Pokud ji chcete povolit na úrovni prostředí, nastavte vlastnost spark.ms.autotune.enabled=true Spark v novém nebo existujícím prostředí. Všechny poznámkové bloky a úlohy, které používají toto prostředí, dědí nastavení.

Snímek obrazovky s povolením automatického ladění

Automatické ladění zahrnuje integrovanou regresní detekci. Pokud například dotaz zpracuje neobvykle velké množství dat, může automatické ladění pro toto spuštění přeskočit. V mnoha případech potřebuje autotune přibližně 20 až 25 iterací, aby se sblížil ke stabilním nastavením.

Poznámka:

Autotune je kompatibilní s modulem Runtime 1.2. Nemůžete ho povolit ve verzích runtime novějších než 1.2. Nespustí se, když je povolený režim vysoké souběžnosti nebo privátní koncový bod . Autotune funguje s automatickým škálováním v jakékoli konfiguraci.

Automatické ladění můžete také povolit pro jednu relaci nastavením vlastnosti Spark ve vašem poznámkovém bloku nebo v definici úlohy Spark.

Povolte automatické ladění pro jednu relaci

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

Zakázání automatického ladění pro jednu relaci

Pokud chcete zakázat automatické ladění v poznámkovém bloku nebo definici úlohy Sparku, spusťte jeden z následujících příkazů jako první buňku nebo první řádek kódu.

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

Případová studie

Když spustíte dotaz Apache Spark, autotune sestaví model pro tento tvar dotazu a v průběhu času se naučí nejlepší nastavení. Začněte například tímto dotazem filtru:

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

Automatické ladění se učí z tohoto běhu. Pokud později změníte pouze hodnotu filtru, zůstane obrazec dotazu podobný:

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

Autotune může opětovně využívat dřívější poznatky pro tento podobný dotazový vzor, což pomáhá udržovat výkon bez ručního přeladění.

Záznamy

Pro každý dotaz automatické ladění vypočítá doporučené hodnoty pro tři podporované konfigurace Sparku. Pokud chcete zkontrolovat doporučení, zkontrolujte protokoly ovladačů u položek, které začínají funkcí [Autotune].

Snímek obrazovky s protokoly automatického ladění v centru monitorování

Mezi běžné stavy protokolu patří:

Stav Popis
AUTOTUNE_DISABLED Přeskočeno Autotune je zakázáno, takže se sběr a optimalizace telemetrie neaplikuje.
QUERY_TUNING_DISABLED Přeskočeno Ladění dotazů je zakázané.
QUERY_PATTERN_NOT_MATCH Přeskočeno Vzor dotazu neodpovídá podporovaným typům dotazů jen pro čtení.
QUERY_DURATION_TOO_SHORT Přeskočeno Dotaz probíhal po dobu méně než 15 sekund, což je příliš krátká doba pro efektivní ladění.
QUERY_TUNING_SUCCEED Úspěch. Optimalizace dotazů byla dokončena a byla aplikována optimalizovaná nastavení Spark.

Poznámka k průhlednosti

Tato část vysvětluje, jak se používá a ověřuje autotuning v souladu se standardem Zodpovědné AI.

Účel automatického ladění

Autotune je navržený tak, aby zlepšil efektivitu úloh Apache Sparku pro odborníky na data. Ono:

  • Automaticky naladí konfigurace Apache Sparku, aby se zkrátila doba provádění.
  • Snižuje úsilí spojené s ručním laděním.
  • Používá historická data úloh k iterativnímu upřesnění možností konfigurace.

Ověření automatického ladění

Autotune prochází rozsáhlým ověřováním, které pomáhá zajistit účinnost a bezpečnost:

  • K ověření efektivity algoritmů optimalizace využívá přísné testy napříč různými úlohami Sparku.
  • Srovnávací testy se standardními metodami optimalizace Sparku, které demonstrují výhody výkonu.
  • Zahrnuje skutečné případové studie, které ukazují praktickou hodnotu.
  • Dodržuje přísné standardy zabezpečení a ochrany osobních údajů pro ochranu uživatelských dat.

Uživatelská data se používají výhradně k vylepšení výkonu vaší úlohy s robustní ochranou, která brání zneužití nebo vystavení citlivých informací.