Azure Stream Analytics-lekérdezések hibaelhárítása
Ez a cikk a Stream Analytics-lekérdezések fejlesztésével és hibaelhárításával kapcsolatos gyakori problémákat ismerteti.
Ez a cikk az Azure Stream Analytics-lekérdezések fejlesztésével, a lekérdezési hibák elhárításával és a hibák megoldásával kapcsolatos gyakori problémákat ismerteti. Számos hibaelhárítási lépéshez engedélyezni kell az erőforrásnaplókat a Stream Analytics-feladathoz. Ha nincs engedélyezve az erőforrásnaplók használata, tekintse meg az Azure Stream Analytics hibaelhárítását erőforrásnaplók használatával.
A lekérdezés nem hoz létre várt kimenetet
Hibák vizsgálata helyi teszteléssel:
- Az Azure Portal Lekérdezés lapján válassza a Tesztelés lehetőséget. A lekérdezés teszteléséhez használja a letöltött mintaadatokat. Vizsgálja meg a hibákat, és próbálja meg kijavítani őket.
- A lekérdezést helyileg is tesztelheti a Visual Studióhoz vagy a Visual Studio Code-hoz készült Azure Stream Analytics-eszközökkel.
A lekérdezések hibakeresése helyileg a Visual Studio Code-hoz készült Azure Stream Analytics-eszközök feladatdiagramjának használatával. A feladatábra bemutatja, hogyan áramlik az adatok bemeneti forrásokból (Event Hub, IoT Hub stb.) több lekérdezési lépésen keresztül, végül pedig a kimeneti fogadókig. Minden lekérdezési lépés egy ideiglenes eredménykészletre van leképezve, amelyet a szkript a WITH utasítással határoz meg. A probléma forrásának megkereséséhez minden köztes eredményhalmazban megtekintheti az adatokat és a metrikákat.
Időbélyegző használata esetén ellenőrizze, hogy az események időbélyegei nagyobbak-e a feladat kezdési időpontjánál.
Kiküszöbölheti a gyakori buktatókat, például:
- A lekérdezés WHERE záradéka kiszűrte az összes eseményt, megakadályozva a kimenetek létrejöttét.
- A CAST függvény meghiúsul, ezért a feladat meghiúsul. A típuselhelyezési hibák elkerülése érdekében használja inkább a TRY_CAST .
- Az ablakfüggvények használatakor várja meg, amíg a teljes ablakidő a lekérdezés kimenetét látja.
- Az események időbélyege megelőzi a feladat kezdési időpontját, és az események el lesznek dobva.
- A JOIN feltételek nem egyeznek. Ha nincsenek egyezések, a kimenet nulla lesz.
Győződjön meg arról, hogy az eseményrendezési szabályzatok a várt módon vannak konfigurálva. Nyissa meg a Gépház, és válassza az Eseményrendezés lehetőséget. A szabályzat nem lesz alkalmazva, amikor a Teszt gombot használja a lekérdezés teszteléséhez. Ez az eredmény egy különbség a böngészőben végzett tesztelés és a feladat éles környezetben való futtatása között.
Hibakeresés tevékenység- és erőforrásnaplók használatával:
- Használja a tevékenységnaplókat, és szűrjön a hibák azonosítására és hibakeresésére.
- A feladat erőforrásnaplóinak használatával azonosíthatja és hibakeresési hibákat végezhet.
Az erőforrás-kihasználtság magas
Győződjön meg arról, hogy kihasználja a párhuzamosítás előnyeit az Azure Stream Analyticsben. A Stream Analytics-feladatok lekérdezési párhuzamosításával a méretezést a bemeneti partíciók konfigurálásával és az elemzési lekérdezésdefiníció finomhangolásával sajátíthatja el.
Ha az erőforrás kihasználtsága következetesen meghaladja a 80%-ot, a vízjel késleltetése növekszik, és a háttérbeli események száma növekszik, fontolja meg a streamelési egységek növelését. A magas kihasználtság azt jelzi, hogy a feladat közel a maximálisan lefoglalt erőforrásokat használja.
Lekérdezések fokozatos hibakeresése
A valós idejű adatfeldolgozás során hasznos lehet tudni, hogy az adatok hogyan néznek ki a lekérdezés közepén. Ezt a Visual Studióban a feladatdiagram használatával tekintheti meg. Ha nem rendelkezik Visual Studióval, további lépéseket is elvégezhet a köztes adatok kimenetének érdekében.
Mivel egy Azure Stream Analytics-feladat bemenetei vagy lépései többször is olvashatók, további Standard kiadás LECT INTO utasításokat írhat. Ezzel közbenső adatokat ad ki a tárolóba, és lehetővé teszi az adatok helyességének vizsgálatát, ahogyan a program hibakeresésekor a változók is.
Az Azure Stream Analytics-feladatok következő példa lekérdezése egy streambemenettel, két referenciaadat-bemenettel és egy Azure Table Storage-kimenettel rendelkezik. A lekérdezés adatokat illeszt be az eseményközpontból és két referenciablobot a név és a kategóriaadatok lekéréséhez:
Vegye figyelembe, hogy a feladat fut, de a kimenet nem hoz létre eseményeket. Az itt látható Figyelés csempén láthatja, hogy a bemenet adatokat hoz létre, de nem tudja, hogy a JOIN melyik lépése okozta az összes esemény elvetését.
Ebben az esetben hozzáadhat néhány további Standard kiadás LECT INTO utasítást a köztes JOIN eredmények és a bemenetből beolvasott adatok "naplózásához".
Ebben a példában két új "ideiglenes kimenetet" adtunk hozzá. Bármilyen mosogató lehet, amit csak akarsz. Példaként az Azure Storage-t használjuk:
Ezután a következő módon írhatja át a lekérdezést:
Most indítsa újra a feladatot, és futtassa néhány percig. Ezután lekérdezést végezhet a temp1 és a temp2 között a Visual Studio Cloud Explorerrel a következő táblák létrehozásához:
temp1 tábla
temp2 tábla
Mint látható, a temp1 és a temp2 is rendelkezik adatokkal, és a névoszlop megfelelően van feltöltve a temp2-ben. Mivel azonban még mindig nincsenek adatok a kimenetben, hiba történt:
Az adatok mintavételezésével szinte biztos lehet abban, hogy a probléma a második JOIN-tal kapcsolatos. Letöltheti a referenciaadatokat a blobból, és áttekintheti a következőt:
Mint látható, a guid formátuma ebben a referenciaadatban eltér a temp2 [from] oszlop formátumától. Ezért nem érkeztek meg az adatok az 1. kimenetbe a várt módon.
Kijavíthatja az adatformátumot, feltöltheti, hogy hivatkozzon a blobra, majd próbálkozzon újra:
Ezúttal a kimenetben lévő adatok a várt módon lesznek formázva és feltöltve.
Segítség kérése
További segítségért próbálja ki a Microsoft Q&A kérdésoldalát az Azure Stream Analyticshez.
Következő lépések
- Az Azure Stream Analytics bemutatása
- 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