Mi az Autotune az Apache Spark-konfigurációkhoz a Fabricben?
Az Autotune automatikusan módosítja az Apache Spark konfigurációját a számítási feladatok végrehajtásának felgyorsítása és az általános teljesítmény optimalizálása érdekében. Az Autotune időt és erőforrásokat takarít meg a manuális hangoláshoz képest, ami nagy erőfeszítést, erőforrásokat, időt és kísérletezést igényel. Az Autotune a számítási feladatok előzmény végrehajtási adatait felhasználva iteratív módon felderíti és alkalmazza egy adott számítási feladat leghatékonyabb konfigurációit.
Feljegyzés
A Microsoft Fabric automatikus lekérdezéshangolási funkciója jelenleg előzetes verzióban érhető el. Az Autotune minden éles régióban elérhető, de alapértelmezés szerint le van tiltva. A Spark-konfigurációs beállítással a környezeten belül vagy egyetlen munkameneten belül aktiválhatja a Spark-jegyzetfüzetben vagy a Spark-feladatdefiníció kódjában található megfelelő Spark-beállítással.
Lekérdezés finomhangolása
Az Autotune három Apache Spark-beállítást konfigurál mindegyik lekérdezéshez külön-külön:
spark.sql.shuffle.partitions
– Beállítja a partíciók számát az adatösszesítésekhez az illesztések vagy az összesítések során. Az alapértelmezett érték 200.spark.sql.autoBroadcastJoinThreshold
– Beállítja a maximális táblaméretet bájtban, amelyet a rendszer az összes feldolgozó csomópontnak továbbít az illesztési művelet végrehajtásakor. Az alapértelmezett érték 10 MB.spark.sql.files.maxPartitionBytes
– Meghatározza, hogy a fájlok olvasása során hány bájtot kell egyetlen partícióba csomagolni. Parquet-, JSON- és ORC-fájlalapú forrásokhoz használható. Az alapértelmezett érték 128 MB.
Tipp.
Az Autotune lekérdezéshangolása megvizsgálja az egyes lekérdezéseket, és minden lekérdezéshez külön ML-modellt hoz létre. Kifejezetten a következő célokat célozza:
- Ismétlődő lekérdezések
- Hosszú ideig futó lekérdezések (azok, amelyek 15 másodpercnél hosszabb végrehajtást hajtanak végre)
- Apache Spark SQL API-lekérdezések (kivéve az RDD API-ban írt lekérdezéseket, amelyek nagyon ritkán fordulnak elő), de nyelvtől függetlenül optimalizáljuk az összes lekérdezést (Scala, PySpark, R, Spark SQL)
Ez a funkció kompatibilis a jegyzetfüzetekkel, az Apache Spark-feladatdefiníciókkal és a folyamatokkal. Az előnyök a lekérdezés összetettsége, a használt módszerek és a struktúra alapján változnak. A széles körű tesztelés azt mutatja, hogy a legnagyobb előnyöket a feltáró adatelemzéshez kapcsolódó lekérdezések, például az adatok olvasása, a futó illesztések, az összesítések és a rendezés valósítják meg.
AI-alapú intuíció az Autotune mögött
Az Autotune szolgáltatás egy iteratív folyamatot használ a lekérdezési teljesítmény optimalizálásához. Az alapértelmezett konfigurációval kezdődik, és egy gépi tanulási modellt alkalmaz a hatékonyság értékeléséhez. Amikor egy felhasználó elküld egy lekérdezést, a rendszer lekéri a tárolt modelleket az előző interakciók alapján. Lehetséges konfigurációkat generál egy centroid nevű alapértelmezett beállítás körül. A modell által előrejelzett legjobb jelöltet alkalmazza a rendszer. A lekérdezés végrehajtása után a rendszer visszaküldi a teljesítményadatokat a rendszernek a modell finomítása érdekében.
A visszajelzési ciklus fokozatosan eltolja a centroidot az optimális beállítások felé. Idővel finomítja a teljesítményt, miközben minimalizálja a regresszió kockázatát. A felhasználói lekérdezéseken alapuló folyamatos frissítések lehetővé teszik a teljesítménymutatók finomítását. A folyamat emellett frissíti a centroid konfigurációkat, hogy a modell fokozatosan haladjon a hatékonyabb beállítások felé. Ez a múltbeli teljesítmények kiértékelésével és a jövőbeli kiigazítások irányításával érhető el. Az összes adatpontot felhasználja az anomáliák hatásának csökkentésére.
Az Autotune felelősségteljes AI-szempontból olyan átláthatósági mechanizmusokat tartalmaz, amelyek célja, hogy folyamatosan értesüljön az adathasználatról és az előnyökről. A biztonság és az adatvédelem összhangban van a Microsoft szabványaival. A folyamatos monitorozás az indítás után is fenntartja a teljesítményt és a rendszer integritását.
Autotune engedélyezése
Az Autotune minden éles régióban elérhető, de alapértelmezés szerint le van tiltva. A spark-konfigurációs beállítással aktiválhatja a környezetben. Az Autotune engedélyezéséhez hozzon létre egy új környezetet, vagy a meglévő környezethez állítsa be a Spark "spark.ms.autotune.enabled = true" tulajdonságát az alábbi képernyőképen látható módon. Ezt a beállítást ezután az adott környezetben futó összes jegyzetfüzet és feladat örökli, és automatikusan finomhangolja őket.
Az Autotune beépített mechanizmussal figyeli a teljesítményt és észleli a teljesítményregressziókat. Ha például egy lekérdezés szokatlanul nagy mennyiségű adatot dolgoz fel, az Autotune automatikusan inaktiválja. Az optimális konfiguráció megismeréséhez és azonosításához általában 20–25 iteráció szükséges.
Feljegyzés
Az Autotune kompatibilis a Fabric Runtime 1.1 és a Runtime 1.2 verzióval. Az Autotune nem működik, ha a magas egyidejűségi mód vagy a privát végpont engedélyezve van. Az Autotune azonban konfigurációtól függetlenül zökkenőmentesen integrálható az automatikus skálázással.
Az autotune-t egyetlen munkameneten belül engedélyezheti úgy, hogy belefogja a megfelelő Spark-beállítást a Spark-jegyzetfüzetbe vagy a Spark-feladatdefiníció kódjába.
%%sql
SET spark.ms.autotune.enabled=TRUE
Az Autotune-t a megfelelő Spark-jegyzetfüzet vagy Spark-feladatdefiníciós kód Spark-beállításaival vezérelheti. Az Autotune letiltásához hajtsa végre a következő parancsokat a kód (SJD) első cellája (jegyzetfüzete) vagy soraként.
%%sql
SET spark.ms.autotune.enabled=FALSE
Esettanulmány
Apache Spark-lekérdezés végrehajtásakor az Autotune létrehoz egy testreszabott ml-modellt, amely a lekérdezés végrehajtásának optimalizálására van kialakítva. Elemzi a lekérdezési mintákat és az erőforrásigényeket. Fontolja meg egy kezdeti lekérdezést, amely egy adott attribútum, például egy ország alapján szűri az adathalmazt. Bár ez a példa földrajzi szűrést használ, az alapelv általánosan érvényes a lekérdezésen belüli bármely attribútumra vagy műveletre:
%%pyspark
df.filter(df.country == "country-A")
Az Autotune ebből a lekérdezésből tanul, és optimalizálja a későbbi végrehajtásokat. Amikor a lekérdezés megváltozik, például a szűrőérték módosításával vagy egy másik adatátalakítás alkalmazásával, a lekérdezés szerkezeti lényege gyakran konzisztens marad:
%%pyspark
df.filter(df.country == "country-B")
A módosítások ellenére az Autotune azonosítja az új lekérdezés alapvető struktúráját, és implementálja a korábban tanult optimalizálásokat. Ez a képesség tartósan magas hatékonyságot biztosít anélkül, hogy minden új lekérdezési iterációhoz manuális újrakonfigurálásra lenne szükség.
Naplók
Az autotune minden lekérdezéshez meghatározza a három Spark-konfiguráció legoptimálisabb beállításait. A javasolt beállításokat a naplókra való navigálással tekintheti meg. Az autotune által javasolt konfigurációk az illesztőprogram-naplókban találhatók, különösen az [Autotune] kezdetű bejegyzésekben.
A naplókban különböző típusú bejegyzések találhatók. A legfontosabbak a következők:
Állapot | Leírás |
---|---|
AUTOTUNE_DISABLED | Kimarad. Az Autotune le van tiltva; a telemetriai adatok lekérésének és a lekérdezésoptimalizálásnak a megakadályozása. Engedélyezze az Autotune-nak, hogy teljes mértékben kihasználja képességeit az ügyfelek adatainak tiszteletben tartása mellett." |
QUERY_TUNING_DISABLED | Kimarad. Az Autotune lekérdezéshangolása le van tiltva. Lehetővé teszi a Spark SQL-lekérdezések beállításainak finomhangolását. |
QUERY_PATTERN_NOT_MATCH | Kimarad. A lekérdezési minta nem egyezett. Az Autotune írásvédett lekérdezések esetén is hatékony. |
QUERY_DURATION_TOO_SHORT | Kimarad. A lekérdezés időtartama túl rövid az optimalizálásához. Az Autotune-nak hosszabb lekérdezésekre van szüksége a hatékony hangoláshoz. A lekérdezések legalább 15 másodpercig futnak. |
QUERY_TUNING_SUCCEED | Sikeres. A lekérdezés finomhangolása befejeződött. Optimális értékgörbét alkalmazó beállítások. |
Áttetszőségi megjegyzés
A Felelős AI Szabványnak megfelelően ez a szakasz az Autotune szolgáltatás felhasználási és érvényesítési funkcióinak tisztázására, az átláthatóság előmozdítására és a megalapozott döntéshozatal engedélyezésére irányul.
Az Autotune célja
Az Autotune-t az Apache Spark számítási feladatok hatékonyságának növelésére fejlesztették ki, elsősorban adatszakértők számára. Fő funkciói a következők:
- Az Apache Spark konfigurációhangolásának automatizálása a végrehajtási idő csökkentése érdekében.
- A manuális finomhangolási erőfeszítések minimalizálása.
- Korábbi számítási feladatok adatainak használata a konfigurációk iteratív finomításához.
Az Autotune érvényesítése
Az Autotune átfogó tesztelésen esett át annak hatékonysága és biztonsága érdekében:
- Szigorú tesztek különböző Spark-számítási feladatokkal a finomhangolási algoritmus hatékonyságának ellenőrzéséhez.
- Teljesítményelőnyök bemutatása a standard Spark-optimalizálási módszerekkel.
- Az Autotune gyakorlati értékét kiemelő valós esettanulmányok.
- Szigorú biztonsági és adatvédelmi szabványok betartása a felhasználói adatok védelme érdekében.
A felhasználói adatok kizárólag a számítási feladatok teljesítményének javítására szolgálnak, és robusztus védelemmel védik a bizalmas adatokkal való visszaélést vagy expozíciót.