Stream Analytics-feladat skálázása a Machine Learning Studio (klasszikus) függvényekkel
Tipp.
Kifejezetten ajánlott az Azure Machine Learning UDF-ek használata a Machine Learning Studio (klasszikus) UDF helyett a jobb teljesítmény és megbízhatóság érdekében.
Fontos
Az Azure Machine Learning Studio (klasszikus) támogatása 2024. augusztus 31-én megszűnik. Javasoljuk, hogy erre a dátumra váltson az Azure Machine Learningre .
2021. december 1-től nem hozhat létre új Machine Learning Studio-erőforrásokat (klasszikus) (munkaterület- és webszolgáltatás-csomagot). 2024. augusztus 31-ig továbbra is használhatja a Machine Learning Studio (klasszikus) kísérleteket és webszolgáltatásokat. További információk:
- Migrálás az Azure Machine Learningbe a Machine Learning Studióból (klasszikus)
- Mi az Azure Machine Learning?
A Machine Learning Studio (klasszikus) dokumentációja kivezetés alatt áll, és előfordulhat, hogy a jövőben nem frissül.
Ez a cikk a Machine Learning Studio (klasszikus) függvényeket használó Azure Stream Analytics-feladatok hatékony skálázását ismerteti. A Stream Analytics-feladatok skálázásával kapcsolatos információkért tekintse meg a Feladatok méretezése című cikket.
Mi a Studio (klasszikus) függvény a Stream Analyticsben?
A Stream Analyticsben a Machine Learning Studio (klasszikus) függvények normál függvényhívásként használhatók a Stream Analytics lekérdezési nyelvében. A színfalak mögött azonban ezek a függvényhívások valójában a Studio (klasszikus) Web Service-kérések.
A Studio (klasszikus) webszolgáltatás-kérések átviteli sebességét úgy javíthatja, hogy több sort "kötenek össze" ugyanabban a webszolgáltatás API-hívásban. Ezt a csoportosítást mini kötegnek nevezzük. További információ: Machine Learning Studio (klasszikus) Web Services. A Studio (klasszikus) támogatása a Stream Analyticsben.
Stream Analytics-feladat konfigurálása a Studio (klasszikus) függvényekkel
A Stream Analytics-feladat által használt Studio (klasszikus) függvény konfigurálásához két paraméter használható:
- A Studio (klasszikus) függvényhívásainak kötegmérete.
- A Stream Analytics-feladathoz kiosztott streamegységek (SU-k) száma.
A termékváltozatok megfelelő értékeinek meghatározásához döntse el, hogy szeretné-e optimalizálni a Stream Analytics-feladat késését vagy az egyes su-k átviteli sebességét. Az SUS-k mindig hozzáadhatók egy feladathoz, hogy növeljék a jól particionált Stream Analytics-lekérdezések átviteli sebességét. A további termékváltozatok növelik a feladat futtatásának költségeit.
Határozza meg a Stream Analytics-feladat késési tűrését . A köteg méretének növelése növeli a Studio (klasszikus) kéréseinek késését és a Stream Analytics-feladat késését.
A köteg méretének növelése lehetővé teszi, hogy a Stream Analytics-feladat több eseményt dolgozzon fel azonos számú Studio-(klasszikus) webszolgáltatás-kéréssel. A Studio (klasszikus) webszolgáltatás késésének növekedése általában a kötegméret növekedésének alvonala.
Fontos figyelembe venni a Studio (klasszikus) webszolgáltatás legköltséghatékonyabb kötegméretét bármilyen helyzetben. A webszolgáltatás-kérelmek alapértelmezett kötegmérete 1000. Ezt az alapértelmezett méretet a Stream Analytics REST API-val vagy a Stream Analytics PowerShell-ügyféllel módosíthatja.
Miután eldöntötte a kötegméretet, beállíthatja a streamelési egységek (SU-k) számát a függvény által másodpercenként feldolgozandó események száma alapján. A streamelési egységekről további információt a Stream Analytics skálázási feladataiban talál.
Minden 6 termékváltozat 20 egyidejű kapcsolatot kap a Studio (klasszikus) webszolgáltatással. 1 SU-feladat és 3 SU-feladat azonban 20 egyidejű kapcsolatot kap.
Ha az alkalmazás másodpercenként 200 000 eseményt generál, és a köteg mérete 1000, akkor az ebből eredő webszolgáltatás-késés 200 ms. Ez az arány azt jelenti, hogy minden kapcsolat másodpercenként öt kérést tud küldeni a Studio (klasszikus) webszolgáltatáshoz. 20 kapcsolattal a Stream Analytics-feladat 20 000 eseményt képes feldolgozni 200 ms-ban, és másodpercenként 100 000 eseményt.
Másodpercenként 200 000 esemény feldolgozásához a Stream Analytics-feladatnak 40 egyidejű kapcsolatra van szüksége, amelyek 12 termékváltozatból származnak. Az alábbi ábra a Stream Analytics-feladattól a Studio (klasszikus) webszolgáltatás végpontjára irányuló kéréseket mutatja be– 6 termékváltozatonként legfeljebb 20 egyidejű kapcsolat áll rendelkezésre a Studio (klasszikus) webszolgáltatással.
Általában B a kötegmérethez, L a webszolgáltatás késéséhez b kötegméret esetén ezredmásodpercben, a Stream Analytics-feladatok átviteli sebessége N-termékváltozatokkal:
A "maximális egyidejű hívások" konfigurálhatók a Studio (klasszikus) webszolgáltatásban is. Javasoljuk, hogy ezt a paramétert a maximális értékre állítsa (jelenleg 200).
Erről a beállításról a Machine Learning Studio (klasszikus) Web Services skálázási cikkében olvashat bővebben.
Példa – Hangulatelemzés
Az alábbi példa egy Stream Analytics-feladatot tartalmaz a hangulatelemzési Studio (klasszikus) függvénnyel, a Stream Analytics Machine Learning Studio (klasszikus) integrációs oktatóanyagában leírtak szerint.
A lekérdezés egy egyszerű, teljesen particionált lekérdezés, amelyet a hangulatfüggvény követ, ahogyan az alábbi példában látható:
WITH subquery AS (
SELECT text, sentiment(text) as result from input
)
Select text, result.[Score]
Into output
From subquery
Vizsgáljuk meg a Stream Analytics-feladat létrehozásához szükséges konfigurációt, amely másodpercenként 10 000 tweetmel végzi a tweetek hangulatelemzését.
1 SU használatával ez a Stream Analytics-feladat kezelheti a forgalmat? A feladat az alapértelmezett 1000-es kötegmérettel képes lépést tartani a bemenettel. A sentiment analysis Studio (klasszikus) webszolgáltatás alapértelmezett késése (alapértelmezett kötegmérete 1000) legfeljebb egy másodperc késést eredményez.
A Stream Analytics-feladat általános vagy végpontok közötti késése általában néhány másodperc lenne. Tekintse meg részletesebben ezt a Stream Analytics-feladatot, különösen a Studio (klasszikus) függvényhívásait. 1000-es kötegméret esetén a 10 000 esemény átviteli sebessége körülbelül 10 kérést igényel a webszolgáltatáshoz. Még egy su esetén is elegendő egyidejű kapcsolat áll rendelkezésre a bemeneti forgalom kezeléséhez.
Ha a bemeneti esemény sebessége 100-szeresére nő, akkor a Stream Analytics-feladatnak másodpercenként 1 000 000 tweetet kell feldolgoznia. A nagyobb skálázás kétféleképpen valósítható meg:
- Növelje a köteg méretét.
- A bemeneti stream particionálása az események párhuzamos feldolgozásához.
Az első lehetőséggel a feladat késése nő.
A második lehetőséggel több termékváltozatot kell kiépítenie, hogy több egyidejű (klasszikus) webszolgáltatás-kérése legyen. Ez a nagyobb számú termékváltozat növeli a feladat költségét.
Vizsgáljuk meg a méretezést az egyes kötegméretek következő késési mérésével:
Késés | Köteg mérete |
---|---|
200 ms | 1000 esemény kötegek vagy alatta |
250 ms | 5000 eseményköteg |
300 ms | 10 000 esemény kötegek |
500 ms | 25 000 esemény köteg |
- Az első lehetőség használata (nem épít ki további termékváltozatokat). A köteg mérete 25 000-re növelhető. A köteg méretének ily módon történő növelésével a feladat 1 000 000 esemény feldolgozását teszi lehetővé 20 egyidejű kapcsolattal a Studio (klasszikus) webszolgáltatással (hívásonként 500 ms késéssel). Így a Stream Analytics-feladat további késése a Studio (klasszikus) webszolgáltatás-kérelmek hangulatfüggvény-kérései miatt 200 ms-ról 500 ms-ra nőne. A köteg mérete azonban nem növelhető végtelenül, mivel a Studio (klasszikus) webszolgáltatásokhoz egy kérelem hasznos adatmérete 4 MB vagy kisebb, a webszolgáltatás kérései pedig 100 másodpercnyi működés után időtúllépést igényelnek.
- A második lehetőséggel a köteg mérete 1000-nél marad, 200 ms-os webszolgáltatás-késéssel, a webszolgáltatáshoz csatlakozó minden 20 egyidejű kapcsolat képes lesz feldolgozni 1000 * 20 * 5 eseményt = 100 000 másodpercenként. Így másodpercenként 1 000 000 esemény feldolgozásához a feladatnak 60 termékváltozatra lenne szüksége. Az első lehetőséghez képest a Stream Analytics-feladat több webszolgáltatás kötegkérelmét végezné el, ami pedig magasabb költséget eredményezne.
Az alábbiakban egy táblázat látható a Stream Analytics-feladat átviteli sebességéről különböző termékváltozatok és kötegméretek esetében (másodpercenkénti események számában).
köteg mérete (ML-késés) | 500 (200 ms) | 1000 (200 ms) | 5000 (250 ms) | 10 000 (300 ms) | 25 000 (500 ms) |
---|---|---|---|---|---|
1 SU | 2500 | 5000 | 20000 | 30 000 | 50 000 |
3 termékváltozat | 2500 | 5000 | 20000 | 30 000 | 50 000 |
6 termékváltozat | 2500 | 5000 | 20000 | 30 000 | 50 000 |
12 termékváltozat | 5000 | 10,000. | 40 000 | 60 000 | 100 000 |
18 termékváltozat | 7500 | 15 000 | 60 000 | 90,000 | 150,000 |
24 termékváltozat | 10,000. | 20000 | 80 000 | 120 000 | 200,000 |
… | … | … | … | … | … |
60 termékváltozat | 25 000 | 50 000 | 200,000 | 300,000 | 500,000 |
Mostanra már jól ismernie kell a Studio (klasszikus) funkcióit a Stream Analyticsben. Valószínűleg azt is megérti, hogy a Stream Analytics-feladatok "lekérik" az adatforrásokból származó adatokat, és minden egyes "lekérés" egy eseményköteget ad vissza a Stream Analytics-feladat feldolgozásához. Hogyan befolyásolja ez a lekéréses modell a Studio (klasszikus) webszolgáltatás-kéréseit?
A Studio (klasszikus) függvényekhez beállított kötegméret általában nem osztható el pontosan az egyes Stream Analytics-feladatok által visszaadott "lekérések" által visszaadott események számával. Ha ez történik, a Studio (klasszikus) webszolgáltatás neve "részleges" kötegekkel történik. A részleges kötegek használata elkerüli a feladatok késésének többletterhelését a lekéréstől a lekérésig történő lekéréses események szenesítésében.
Új függvényekkel kapcsolatos monitorozási metrikák
A Stream Analytics-feladatok monitorozási területén három további függvényhez kapcsolódó metrikát adtunk hozzá. Ezek FÜGGVÉNYKÉRELMEK, FÜGGVÉNYESEMÉNYEK és SIKERTELEN FÜGGVÉNYKÉRELMEK, ahogyan az alábbi ábrán látható.
A definíció a következő:
FÜGGVÉNYKÉRELMEK: A függvénykérelmek száma.
FÜGGVÉNYESEMÉNYEK: A függvénykérelmek számeseményei.
SIKERTELEN FÜGGVÉNYKÉRELMEK: A sikertelen függvénykérelmek száma.
Főbb elvitelek
Ha a Stream Analytics-feladatokat a Studio (klasszikus) függvényekkel szeretné skálázni, vegye figyelembe a következő tényezőket:
- A bemeneti esemény sebessége.
- A futó Stream Analytics-feladat tolerált késése (és így a Studio (klasszikus) webszolgáltatás-kérések kötegmérete).
- A kiépített Stream Analytics-termékváltozatok és a Studio (klasszikus) webszolgáltatás-kérések száma (a funkcióval kapcsolatos további költségek).
Példaként egy teljesen particionált Stream Analytics-lekérdezést használtunk. Ha összetettebb lekérdezésre van szükség, az Azure Stream Analytics Microsoft Q&A kérdésoldala nagyszerű forrás a Stream Analytics csapatának további segítségére.
Következő lépések
A Stream Analyticsről az alábbiakban talál további információt:
- Get started using Azure Stream Analytics (Bevezetés az Azure Stream Analytics használatába)
- Scale Azure Stream Analytics jobs (Azure Stream Analytics-feladatok méretezése)
- Azure Stream Analytics Query Language Reference (Referencia az Azure Stream Analytics lekérdezési nyelvhez)
- Az Azure Stream Analytics felügyeleti REST API referenciája