Share via


Azure Stream Analytics-kimenetek hibaelhárítása

Ez a cikk az Azure Stream Analytics kimeneti kapcsolataival kapcsolatos gyakori problémákat és a kimeneti problémák elhárításának módját ismerteti. Számos hibaelhárítási lépéshez engedélyezni kell az erőforrás- és egyéb diagnosztikai napló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 feladat nem hoz létre kimenetet

  1. Ellenőrizze a kimenetekhez való kapcsolódást az egyes kimenetek Csatlakozás ion tesztelése gombjával.

  2. Tekintse meg a Stream Analytics-feladat monitorozását az Azure Portallal a Monitor lapon. Mivel az értékek összesítve vannak, a metrikák néhány perccel késnek.

    • Ha a Bemeneti események érték nagyobb, mint nulla, a feladat beolvassa a bemeneti adatokat. Ha a Bemeneti események érték nem nagyobb nullánál, probléma van a feladat bemenetével. További információt a bemeneti kapcsolatok hibaelhárítása című témakörben talál. Ha a feladat referenciaadat-bemenettel rendelkezik, alkalmazza a logikai név szerinti felosztást a bemeneti események metrikáinak megtekintésekor. Ha csak a referenciaadatokból nincsenek bemeneti események, az valószínűleg azt jelenti, hogy ez a bemeneti forrás nem lett megfelelően konfigurálva a megfelelő referenciaadatkészlet beolvasásához.
    • Ha az adatkonvertálási hibák értéke nagyobb, mint nulla, és emelkedik, az adatkonvertálási hibákkal kapcsolatos részletes információkért tekintse meg az Azure Stream Analytics adathibáit .
    • Ha a futtatókörnyezeti hibák értéke nullánál nagyobb, a feladat adatokat fogad, de hibákat generál a lekérdezés feldolgozása során. A hibák megkereséséhez nyissa meg az auditnaplókat, majd szűrjön a Sikertelen állapotra.
    • Ha a bemeneti események értéke nullánál nagyobb, és a Kimeneti események értéke nulla, az alábbi utasítások egyike igaz:
      • A lekérdezés feldolgozása nulla kimeneti eseményt eredményezett.
      • Előfordulhat, hogy az események vagy mezők hibásan formázva lesznek, ami a lekérdezés feldolgozása után nulla kimenetet eredményez.
      • A feladat kapcsolódási vagy hitelesítési okokból nem tudott adatokat leküldni a kimeneti fogadóba.

    Az operatív naplóüzenetek további részleteket is megmagyaráznak, beleértve a történéseket is, kivéve azokat az eseteket, amikor a lekérdezési logika kiszűri az összes eseményt. Ha több esemény feldolgozása hibát okoz, a hibák 10 percenként összesítve lesznek.

Az első kimenet késik

Amikor elindul egy Stream Analytics-feladat, a bemeneti események beolvasva lesznek. Bizonyos körülmények között azonban előfordulhat, hogy a kimenet késik.

Az időbeli lekérdezéselemek nagy időértékei hozzájárulhatnak a kimenet késleltetéséhez. Ha a megfelelő kimenetet szeretné nagy időkeretek alatt előállítani, a streamelési feladat a lehető legfrissebb időpontból olvassa be az adatokat az időablak kitöltéséhez. Az adatok legfeljebb hét nappal korábbiak lehetnek. A kimenet nem keletkezik, amíg a ki nem írott bemeneti események be nem olvashatók. Ez a probléma akkor jelentkezhet, ha a rendszer frissíti a streamelési feladatokat. Amikor frissítés történik, a feladat újraindul. Az ilyen frissítések általában néhány havonta egyszer történnek.

A Stream Analytics-lekérdezés tervezésekor használjon belátást. Ha nagy időkeretet használ a feladat lekérdezési szintaxisának időbeli elemeihez, az az első kimenet késleltetéséhez vezethet, amikor a feladat elindul vagy újraindul. Több mint több órát, akár hét napot is nagy időkeretnek tekintünk.

Az ilyen típusú első kimeneti késleltetés egyik kockázatcsökkentése a lekérdezések párhuzamosítási technikáinak használata, például az adatok particionálása. Vagy hozzáadhat további streamelési egységeket az átviteli sebesség javításához, amíg a feladat el nem ér. További információ: Megfontolandó szempontok a Stream Analytics-feladatok létrehozásakor.

Ezek a tényezők befolyásolják az első kimenet idővonalát:

  • Ablakos aggregátumok használata, például a soromlás, a felhúzás és a tolóablakok GROUP BY záradéka:

    • A le- vagy felugróablak-aggregátumok esetében az eredmények az ablak időkeretének végén jönnek létre.
    • A tolóablakok esetében az eredmények akkor jönnek létre, amikor egy esemény belép vagy kilép a tolóablakból.
    • Ha nagy méretű, például több mint egyórás ablakméretet szeretne használni, a legjobb, ha egy ugró- vagy tolóablakot választ. Ezek az ablaktípusok lehetővé teszik a kimenet gyakoribb megjelenítését.
  • Az időbeli illesztések, például a JOIN és a DATEDIFF használata:

    • A találatok azonnal létrejönnek, amint a egyeztetett események mindkét oldala megérkezik.
    • Az egyezést nem tartalmazó adatok (például a BAL OLDALI KÜLSŐ ILLESZTÉS) a DATEDIFF ablak végén jönnek létre a bal oldalon lévő összes eseményhez.
  • Az időbeli elemzési függvények, például az ISFIRST, a LAST és a LAG használata KORLÁT IDŐTARTAMmal:

    • Elemzési függvények esetén a kimenet minden eseményhez létre lesz hozva. Nincs késés.

A kimenet elmarad

A feladatok normál működése során a kimenet hosszabb és hosszabb késési időszakokkal rendelkezhet. Ha a kimenet így elmarad, az alábbi tényezők vizsgálatával rögzítheti a kiváltó okokat:

  • Szabályozva van-e az alsóbb rétegbeli fogadó
  • A felsőbb rétegbeli forrás szabályozása
  • Azt jelzi, hogy a lekérdezés feldolgozási logikája nagy számítási igényű-e

A kimeneti adatok megtekintéséhez válassza ki a streamelési feladatot az Azure Portalon, majd válassza a Feladat diagramot. Minden bemenethez partíciónként van egy hátralékesemény-metrika. Ha a metrika folyamatosan növekszik, az azt jelzi, hogy a rendszererőforrások korlátozottak. A növekedés valószínűleg a kimeneti fogadó szabályozásának vagy a magas processzorhasználatnak köszönhető. További információ: Adatvezérelt hibakeresés a feladatdiagram használatával.

Kulcssértési figyelmeztetés az Azure SQL Database kimenetével

Amikor egy Azure SQL-adatbázist kimenetként konfigurál egy Stream Analytics-feladathoz, az tömegesen beszúrja a rekordokat a céltáblába. Az Azure Stream Analytics általában legalább egyszer biztosítja a kimeneti fogadónak történő kézbesítést . Ha egy SQL-tábla egyedi korlátozást határoz meg, akkor is pontosan egyszeri kézbesítést érhet el egy SQL-kimenetre.

Amikor egyedi kulcskorlátozásokat állít be az SQL-táblán, az Azure Stream Analytics eltávolítja az ismétlődő rekordokat. Az adatokat kötegekre osztja, és rekurzív módon beszúrja a kötegeket, amíg egyetlen ismétlődő rekordot nem talál. A felosztási és beszúrási folyamat egyenként figyelmen kívül hagyja az ismétlődéseket. A sok ismétlődő sort tartalmazó streamelési feladatok esetében a folyamat nem hatékony és időigényes. Ha a tevékenységnaplóban több, az előző órára vonatkozó szabálysértési figyelmeztető üzenet jelenik meg, akkor valószínű, hogy az SQL-kimenet lelassítja a teljes feladatot.

A probléma megoldásához konfigurálja a kulcssértést okozó indexet a IGNORE_DUP_KEY beállítás engedélyezésével. Ezzel a beállítással az SQL figyelmen kívül hagyhatja az ismétlődő értékeket a tömeges beszúrások során. Az Azure SQL Database egyszerűen figyelmeztető üzenetet jelenít meg hiba helyett. Emiatt az Azure Stream Analytics már nem okoz elsődleges kulcssértési hibákat.

Figyelje meg a következő megfigyeléseket, amikor IGNORE_DUP_KEY konfigurál több indextípushoz:

  • Nem állíthat be IGNORE_DUP_KEY elsődleges kulcsra vagy alter INDEXet használó egyedi kényszerre. El kell dobnia az indexet, és újra létre kell hoznia.
  • Az IGNORE_DUP_KEY az ALTER INDEX használatával állíthatja be egy egyedi indexhez. Ez a példány eltér az ELSŐDLEGES KULCS/EGYEDI kényszertől, és a CREATE INDEX vagy INDEX definíció használatával jön létre.
  • A IGNORE_DUP_KEY beállítás nem vonatkozik az oszloptár-indexekre, mert nem kényszerítheti rájuk az egyediséget.

SQL-kimeneti újrapróbálkozás logikája

Amikor egy SQL-kimenettel rendelkező Stream Analytics-feladat megkapja az események első kötegét, a következő lépések történnek:

  1. A feladat megpróbál csatlakozni az SQL-hez.
  2. A feladat lekéri a céltábla sémáját.
  3. A feladat ellenőrzi az oszlopneveket és -típusokat a céltábla sémája alapján.
  4. A feladat előkészít egy memóriabeli adattáblát a köteg kimeneti rekordjaiból.
  5. A feladat a BulkCopy API használatával írja az adattáblát az SQL-be.

A lépések során az SQL-kimenet a következő típusú hibákat tapasztalhatja:

  • Átmeneti hibák, amelyeket exponenciális backoff újrapróbálkozási stratégiával próbálnak újrapróbálkozásba. A minimális újrapróbálkozási időköz az egyes hibakódtól függ, de az időközök általában 60 másodpercnél rövidebbek. A felső korlát legfeljebb öt perc lehet.

    A bejelentkezési hibák és a tűzfalproblémák az előző próbálkozás után legalább 5 perccel újrapróbálkoznak, és újrapróbálkoznak, amíg sikeresek nem lesznek.

  • Az adathibákat, például az öntési hibákat és a sémakényszer-szabálysértéseket kimeneti hibaszabályzat kezeli. Ezek a hibák a bináris felosztási kötegek újrapróbálásával kezelhetők, amíg a hibát okozó egyedi rekordot nem kezeli a rendszer kihagyással vagy újrapróbálkozással. Az elsődleges egyedi kulcskorlátozások megsértése mindig kezelhető.

  • Nem átmeneti hibák akkor fordulhatnak elő, ha SQL-szolgáltatásproblémák vagy belső kódhibák lépnek fel. Ha például az olyan hibák, mint a (Kód: 1132) Rugalmas készlet eléri a tárterületkorlátot, az újrapróbálkozások nem oldják meg a hibát. Ezekben a forgatókönyvekben a Stream Analytics-feladat romlást tapasztal.

  • BulkCopy időtúllépések történhetnek BulkCopy az 5. lépésben. BulkCopy időnként tapasztalhatja a művelet időtúllépését. Az alapértelmezett minimálisan konfigurált időtúllépés öt perc, és egymást követő találatok esetén megduplázódik. Ha az időtúllépés meghaladja a 15 percet, a köteg maximális méretére vonatkozó tipp BulkCopy felére csökken, amíg kötegenként 100 esemény nem marad.

    Fontos

    Nem hálózati injektált ASA-feladatok esetén semmilyen módon ne támaszkodjon az ASA-ból érkező kapcsolatok forrás IP-címére. Ezek lehetnek nyilvános vagy privát IP-címek, az időről időre bekövetkező szolgáltatásinfrastruktúra-műveletektől függően.

Az oszlopnevek kisbetűsek az Azure Stream Analyticsben (1.0)

Az eredeti kompatibilitási szint (1.0) használatakor az Azure Stream Analytics kisbetűsre módosítja az oszlopneveket. Ez a viselkedés a későbbi kompatibilitási szinteken lett javítva. Az eset megőrzéséhez lépjen az 1.1-es vagy újabb kompatibilitási szintre. További információ: Stream Analytics-feladatok kompatibilitási szintje.

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