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


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

  1. Hibák vizsgálata helyi teszteléssel:

  2. 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.

    Job diagram preview result

  3. 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.

  4. 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.
  5. 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.

  6. Hibakeresés tevékenység- és erőforrásnaplók használatával:

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:

Example Stream Analytics SELECT INTO query

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.

The Stream Analytics Monitoring tile

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:

Adding extra SELECT INTO statements to Stream Analytics query

Ezután a következő módon írhatja át a lekérdezést:

Rewritten SELECT INTO Stream Analytics query

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áblaSELECT INTO temp1 table Stream Analytics query

temp2 táblaSELECT INTO temp2 table Stream Analytics query

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:

SELECT INTO output1 table with no data Stream Analytics query

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:

SELECT INTO ref table Stream Analytics query

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:

SELECT INTO temp table Stream Analytics query

Ezúttal a kimenetben lévő adatok a várt módon lesznek formázva és feltöltve.

SELECT INTO final table Stream Analytics query

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