Sdílet prostřednictvím


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

Automatické ladění automaticky upraví konfiguraci Apache Sparku, aby urychlila spouštění úloh a optimalizovala celkový výkon. Automatické ladění šetří čas a prostředky v porovnání s ručním laděním, což vyžaduje rozsáhlé úsilí, zdroje, čas a experimentování. Automatické ladění používá historická provozní data z vašich úloh k iterativnímu objevování a aplikaci nejúčinnějších konfigurací pro konkrétní úlohu.

Důležité

Tato funkce je ve verzi Preview.

Poznámka:

Funkce automatického ladění dotazů v Microsoft Fabric je momentálně v ukázkové verzi. Automatické ladění je dostupné ve všech produkčních oblastech, ale ve výchozím nastavení je zakázané. Můžete ho aktivovat prostřednictvím nastavení konfigurace Sparku v rámci prostředí nebo v rámci jedné relace zahrnutím příslušného nastavení Sparku do poznámkového bloku Sparku nebo kódu definice úlohy Spark.

Ladění dotazů

Automatické ladění konfiguruje pro každý z dotazů zvlášť tři nastavení Apache Sparku:

  • spark.sql.shuffle.partitions – Nastaví počet oddílů pro přerozdělení dat během spojení nebo agregací. Výchozí hodnota je 200.
  • spark.sql.autoBroadcastJoinThreshold – Nastaví maximální velikost tabulky v bajtech, které se při spuštění operace spojení vysílají do všech pracovních uzlů. Výchozí hodnota je 10 MB.
  • spark.sql.files.maxPartitionBytes – Definuje maximální počet bajtů, které se mají při čtení souborů zabalit do jednoho oddílu. Funguje pro zdroje souborů Parquet, JSON a ORC. Výchozí hodnota je 128 MB.

Návod

Automatické ladění dotazů zkoumá jednotlivé dotazy a vytváří pro každý dotaz jedinečný model ML. Konkrétně cílí na:

  • Opakované dotazy
  • Dlouhotrvající dotazy (s více než 15 sekundami provádění)
  • Dotazy rozhraní APACHE Spark SQL API (s výjimkou dotazů napsaných v rozhraní RDD API, které jsou vzácné), ale všechny dotazy optimalizujeme bez ohledu na jazyk (Scala, PySpark, R, Spark SQL) Tato funkce je kompatibilní s poznámkovými bloky, definicemi úloh Apache Sparku a kanály. Výhody se liší v závislosti na složitosti dotazu, použitých metodách a struktuře. Rozsáhlé testování ukázalo, že největší výhody jsou realizovány pomocí dotazů souvisejících s průzkumnou analýzou dat, jako je čtení dat, spouštění spojení, agregace a řazení.

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

Intuice založená na umělé inteligenci za automatickým laděním

Funkce automatického ladění využívá iterativní proces k optimalizaci výkonu dotazů. Začíná výchozí konfigurací a využívá model strojového učení k vyhodnocení efektivity. Když uživatel odešle dotaz, systém načte uložené modely na základě předchozích interakcí. Generuje potenciální konfigurace kolem výchozího nastavení s názvem centroid. Použije se nejlepší kandidát predikovaný modelem. Po spuštění dotazu se data o výkonu posílají zpět do systému, aby se model upřesní.

Smyčka zpětné vazby postupně posune centroid směrem k optimálnímu nastavení. V průběhu času zpřesňuje výkon a minimalizuje riziko regrese. Průběžné aktualizace založené na uživatelských dotazech umožňují upřesnění srovnávacích testů výkonu. Kromě toho proces aktualizuje konfigurace centroidu , aby se zajistilo, že model přejde k efektivnějšímu nastavení přírůstkově. Toho dosáhnete vyhodnocením minulých výkonů a jejich použitím k vedení budoucích úprav. Ke zmírnění dopadu anomálií používá všechny datové body.

Z pohledu zodpovědné umělé inteligence zahrnuje funkce automatického ladění mechanismy transparentnosti navržené tak, aby vás informovaly o využití dat a výhodách. Zabezpečení a ochrana osobních údajů odpovídají standardům Microsoftu. Průběžné monitorování udržuje výkon a integritu systému po spuštění.

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é. Můžete ho aktivovat prostřednictvím nastavení konfigurace Sparku v rámci prostředí. Pokud chcete povolit automatické ladění, vytvořte nové prostředí nebo pro existující prostředí nastavte vlastnost Spark spark.ms.autotune.enabled = true, jak je znázorněno na následujícím snímku obrazovky. Toto nastavení pak dědí všechny poznámkové bloky a úlohy spuštěné v tomto prostředí a automaticky je ladí.

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

Autotune obsahuje integrovaný mechanismus pro monitorování výkonu a zjišťování regresí výkonu. Například, pokud dotaz zpracuje neobvykle velké množství dat, automatické ladění se deaktivuje samo. Obvykle vyžaduje 20 až 25 iterací, aby se naučil a identifikoval optimální konfiguraci.

Poznámka:

Automatické ladění je kompatibilní s modulem Fabric Runtime 1.1 a Modulem Runtime 1.2. Nejde ho povolit ve verzích runtime vyšších než 1.2. Automatické ladění nefunguje, pokud je povolený režim vysoké souběžnosti nebo když je povolený privátní koncový bod . Automatické ladění se ale bez ohledu na nastavení bezproblémově integruje s automatickým škálováním.

Automatické ladění můžete povolit v rámci jedné relace zahrnutím příslušného nastavení Sparku do poznámkového bloku Sparku nebo kódu definice úlohy Sparku.

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

Automatické ladění můžete řídit pomocí nastavení Sparku pro příslušný poznámkový blok Sparku nebo kód definice úlohy Sparku. Pokud chcete automatické ladění zakázat, spusťte následující příkazy jako první buňku (poznámkový blok) nebo řádek kódu (SJD).

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

Případová studie

Když spustíte dotaz Apache Spark, autotune vytvoří přizpůsobený model ML vyhrazený pro optimalizaci provádění dotazu. Analyzuje vzory dotazů a potřeby prostředků. Zvažte počáteční dotaz filtrování datové sady na základě konkrétního atributu, například země. I když tento příklad používá geografické filtrování, princip se obecně vztahuje na jakýkoli atribut nebo operaci v dotazu:

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

Automatické ladění se učí z tohoto dotazu a optimalizuje následná spuštění. Když se například dotaz změní změnou hodnoty filtru nebo použitím jiné transformace dat, strukturální podstata dotazu často zůstává konzistentní:

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

I přes změny autotune identifikuje základní strukturu nového dotazu, implementuje dříve naučené optimalizace. Tato funkce zajišťuje trvalou vysokou efektivitu bez nutnosti ruční rekonfigurace pro každou novou iteraci dotazů.

Záznamy

Pro každý z vašich dotazů automatické ladění určuje nejoptimálnější nastavení pro tři konfigurace Sparku. Navrhovaná nastavení můžete zobrazit tak, že přejdete do protokolů. Konfigurace doporučené automatickým laděním se nacházejí v protokolech ovladačů, konkrétně v těchto položkách začínajících funkcí [Autotune].

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

V protokolech najdete různé typy položek. Mezi tyto klíčové patří:

Stav Popis
AUTOTUNE_DISABLED Přeskočený. Automatické ladění je zakázáno, což brání načítání telemetrických dat a optimalizaci dotazů. Povolte funkci Autotune tak, aby plně využívala své možnosti při zachování ochrany osobních údajů zákazníků.".
LADĚNÍ_DOTAZŮ_DEAKTIVOVÁNO Přeskočený. Automatické ladění dotazů je zakázané. Povolte ho k doladění nastavení pro dotazy Spark SQL.
QUERY_PATTERN_NOT_MATCH (Vzorec dotazu se neshoduje) Přeskočený. Vzor dotazu se neshodoval. Autotune je efektivní pro dotazy pouze pro čtení.
DÉLKA_DOTAZU_PŘÍLIŠ_KRÁTKÁ Přeskočený. Doba trvání dotazu je příliš krátká k optimalizaci. Autotune vyžaduje delší dotazy pro efektivní ladění. Dotazy by měly trvat alespoň 15 sekund.
Dotaz optimalizován úspěšně Úspěch. Ladění dotazů bylo dokončeno. Bylo použito optimální nastavení jiskry.

Poznámka k průhlednosti

V souladu se standardem Zodpovědné umělé inteligence má tento oddíl objasnit použití a ověření funkce automatického ladění, podporu transparentnosti a umožnění informovaného rozhodování.

Účel automatického ladění

Autotune je vyvinut tak, aby zvýšil efektivitu úloh Apache Sparku, především pro odborníky na data. Mezi klíčové funkce patří:

  • Automatizace ladění konfigurace Apache Sparku za účelem zkrácení doby provádění
  • Minimalizace úsilí při ručním ladění.
  • Použití historických dat pracovního zatížení k iterativnímu upřesnění konfigurací.

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

Autotune prochází rozsáhlým testováním, aby se zajistila jeho účinnost a bezpečnost:

  • Důkladné testy s různorodými úlohami Sparku za účelem ověření účinnosti algoritmu ladění
  • Srovnávací testy oproti standardním metodám optimalizace Sparku, které demonstrují výhody výkonu.
  • Skutečné případové studie zvýrazňují praktickou hodnotu autotune.
  • Dodržování striktních standardů 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í.