Megosztás a következőn keresztül:


Ellenőrzőpont- és visszajátszási fogalmak az Azure Stream Analytics-feladatokban

Ez a cikk az Azure Stream Analytics belső ellenőrzőpont- és visszajátszási fogalmait, valamint a feladatok helyreállítására gyakorolt hatásukat ismerteti. Minden alkalommal, amikor egy Stream Analytics-feladat fut, az állapotadatok belsőleg lesznek fenntartva. Ezeket az állapotinformációkat a rendszer rendszeres időközönként menti egy ellenőrzőpontba. Bizonyos esetekben az ellenőrzőpont adatai a feladat helyreállítására szolgálnak, ha feladathiba vagy frissítés történik. Más körülmények között az ellenőrzőpont nem használható a helyreállításhoz, és visszajátszásra van szükség.

Állapotalapú lekérdezési logika időbeli elemekben

Az Azure Stream Analytics-feladat egyik egyedi képessége az állapotalapú feldolgozás, például az ablakos aggregátumok, a temporális illesztések és a temporális elemzési függvények végrehajtása. Ezek az operátorok a feladat futtatásakor megőrzik az állapotinformációkat. Ezeknek a lekérdezési elemeknek a maximális ablakmérete hét nap.

A temporális ablak fogalma több Stream Analytics-lekérdezési elemben is megjelenik:

  1. Ablakos összesítések (csoportosítási szempont a csúszás, a felhúzás és a csúszó ablakok alapján)

  2. Temporális illesztések (JOIN with DATEDIFF)

  3. Időbeli elemzési függvények (ISFIRST, LAST és LAG limit DURATION)

Feladat helyreállítása csomóponthiba miatt, beleértve az operációs rendszer frissítését is

Minden alkalommal, amikor egy Stream Analytics-feladat fut, belsőleg felskálázódik, hogy több munkavégző csomóponton is elvégezhesse a munkát. Az egyes munkavégző csomópontok állapotát néhány percenként ellenőrzi a rendszer, ami segít helyreállítani a rendszert, ha hiba történik.

Időnként előfordulhat, hogy egy adott munkavégző csomópont meghibásodik, vagy az adott munkavégző csomópont operációsrendszer-frissítése történik. Az automatikus helyreállításhoz a Stream Analytics új kifogástalan állapotú csomópontot szerez be, és a korábbi feldolgozó csomópont állapota a legújabb elérhető ellenőrzőpontról lesz visszaállítva. A munka folytatásához kis mennyiségű visszajátszásra van szükség az állapot visszaállításához az ellenőrzőpont felvételének időpontjától kezdve. A visszaállítási rés általában csak néhány perc. Ha elegendő streamelési egység van kiválasztva a feladathoz, a visszajátszást gyorsan végre kell hajtani.

Egy teljesen párhuzamos lekérdezésben a munkavégző csomópont meghibásodása utáni felzárkózási idő a következővel arányos:

[a bemeneti esemény sebessége] x [a rés hossza] / [feldolgozási partíciók száma]

Ha a csomópont meghibásodása és az operációs rendszer frissítése miatt jelentős feldolgozási késést tapasztal, fontolja meg a lekérdezés teljes párhuzamosságát, és skálázza a feladatot további streamelési egységek lefoglalásához. További információ: Azure Stream Analytics-feladatok skálázása az átviteli sebesség növeléséhez.

Az aktuális Stream Analytics nem jelenít meg jelentést, ha ilyen helyreállítási folyamat zajlik.

Feladat helyreállítása szolgáltatásfrissítésből

A Microsoft időnként frissíti a Stream Analytics-feladatokat futtató bináris fájlokat az Azure-szolgáltatásban. Ilyenkor a felhasználók futó feladatai újabb verzióra frissülnek, és a feladat automatikusan újraindul.

Az Azure Stream Analytics ellenőrzőpontokat használ, ahol lehetséges, az utolsó ellenőrzőpont-állapotból származó adatok visszaállításához. Olyan esetekben, amikor a belső ellenőrzőpontok nem használhatók, a streamelési lekérdezés állapota teljes egészében visszajátszási technikával állítható vissza. Annak érdekében, hogy a Stream Analytics-feladatok pontosan ugyanazt a bemenetet játsszák le, mint korábban, fontos, hogy a forrásadatok adatmegőrzési szabályzatát legalább a lekérdezés ablakméretére állítsa. Ennek elmulasztása helytelen vagy részleges eredményeket eredményezhet a szolgáltatásfrissítés során, mivel előfordulhat, hogy a forrásadatok nem lesznek elég messze a teljes ablak méretének megadásához.

Általánosságban elmondható, hogy a visszajátszáshoz szükséges mennyiség arányos az ablak méretével és az átlagos eseménysebességgel. Például egy 1000 esemény/másodperc bemeneti sebességgel rendelkező feladatok esetében az egy óránál nagyobb ablakméret nagy visszajátszási méretnek minősül. Előfordulhat, hogy az állapot inicializálásához akár egy órányi adatot is újra kell feldolgozni, hogy az teljes és helyes eredményeket eredményezjen, ami hosszabb ideig késleltetett kimenetet (kimenet nélkül) okozhat. Az ablakokkal vagy más időbeli operátorokkal (például JOIN vagy LAG) nem rendelkező lekérdezések esetében nincs visszajátszás.

Visszajátszási felzárkózási idő becslése

A szolgáltatásfrissítés miatti késés hosszának becsléséhez kövesse az alábbi technikát:

  1. Töltse be a bemeneti Event Hubsot elegendő adattal a lekérdezés legnagyobb ablakméretének lefedéséhez a várt eseménysebesség mellett. Az események időbélyegének az adott időszakban közel kell lennie a falióra idejéhez, mintha élő bemeneti adatcsatorna lenne. Ha például egy 3 napos ablak van a lekérdezésben, küldjön eseményeket az Event Hubsnak három napra, és folytassa az események küldését.

  2. Indítsa el a feladatot a Most kezdő időpontban.

  3. Mérje meg a kezdési idő és az első kimenet létrehozása közötti időt. Az idő hozzávetőleges, mennyi késéssel járna a feladat egy szolgáltatásfrissítés során.

  4. Ha a késés túl hosszú, próbálja meg particionelni a feladatot, és növelje a termékváltozatok számát, így a terhelés több csomópontra oszlik el. Másik lehetőségként érdemes lehet csökkenteni a lekérdezés ablakméretét, és további összesítést vagy egyéb állapotalapú feldolgozást végezni a Stream Analytics-feladat által előállított kimeneten a lefelé irányuló fogadóban (például Azure SQL Database használatával).

A kritikus fontosságú feladatok frissítése során felmerülő általános szolgáltatásstabilitási problémák esetén fontolja meg ismétlődő feladatok futtatását a párosított Azure-régiókban. További információ: A Stream Analytics-feladatok megbízhatóságának garantálása a szolgáltatásfrissítések során.

Feladat-helyreállítás egy felhasználó által kezdeményezett leállításból és indításból

Egy streamelési feladat Lekérdezés szintaxisának szerkesztéséhez vagy a bemenetek és kimenetek módosításához le kell állítani a feladatot a módosítások elvégzéséhez és a feladatterv frissítéséhez. Ilyen esetekben, amikor egy felhasználó leállítja a streamelési feladatot, és újra elindítja azt, a helyreállítási forgatókönyv hasonló a szolgáltatásfrissítéshez.

Az ellenőrzőpont-adatok nem használhatók a felhasználó által kezdeményezett feladat újraindításához. Ha meg szeretné becsülni a kimenet késését egy ilyen újraindítás során, használja az előző szakaszban leírt eljárást, és alkalmazza a hasonló kockázatcsökkentést, ha a késés túl hosszú.

Következő lépések

A megbízhatóságról és a méretezhetőségről az alábbi cikkekben talál további információt: