Azure Stream Analytics-adathibák

Adathibák akkor jelentkeznek, amikor az Azure Stream Analytics feldolgozza az streaming adataidat. Ezek a hibák leggyakrabban adatdeserializáció, serializálás és írás során fordulnak elő. Adathibák esetén a Stream Analytics részletes információkat és példaeseményeket ír az erőforrásnaplókba. Kapcsold be a diagnosztikai naplókat a munkahelyeden, hogy megkapd ezeket a további adatokat. Bizonyos esetekben a portál értesítései is összefoglalót nyújtanak ezekről az információkról.

Ez a cikk a bemeneti és kimeneti adatok hibáinak különböző hibatípusait, okait és erőforrásnapló-részleteit ismerteti.

Erőforrásnaplók sémája

Az erőforrásnaplók sémájának megtekintéséhez tekintse meg a Az Azure Stream Analytics hibaelhárítása diagnosztikai naplók használatával című cikket. Az alábbi JSON egy adatkezelési hibához tartozó erőforrásnapló Properties mezőjének példaértéke.

{
    "Source": "InputTelemetryData",
    "Type": "DataError",
    "DataErrorType": "InputDeserializerError.InvalidData",
    "BriefMessage": "JSON input stream should either be an array of objects or line separated objects. Found token type: Integer",
    "Message": "Input Message Id: https:\\/\\/exampleBlob.blob.core.windows.net\\/inputfolder\\/csv.txt Error: JSON input stream should either be an array of objects or line separated objects. Found token type: Integer",
    "ExampleEvents": "[\"1,2\\\\u000d\\\\u000a3,4\\\\u000d\\\\u000a5,6\"]",
    "FromTimestamp": "2019-03-22T22:34:18.5664937Z",
    "ToTimestamp": "2019-03-22T22:34:18.5965248Z",
    "EventCount": 1
}

Bemeneti adathibák

InputDeserializálásiHiba. ÉrvénytelenTömörítésiTípus

  • Ok: Az Ön által választott bemeneti tömörítési típus nem egyezik meg az adatokkal.
  • Portálértesítés: Igen
  • Erőforrásnapló szintje: Figyelmeztetés
  • Hatás: A Stream Analytics elvet minden olyan üzenetet a bemenetből, amely deszerializálási hibát tartalmaz, beleértve az érvénytelen tömörítési típust is.
  • Napló részletei:
    • Bemeneti üzenet azonosítója. Azure Event Hubs esetén az azonosító a PartitionId, Offset és Sequence Number.

Hibaüzenet

"BriefMessage": "Unable to decompress events from resource 'https:\\/\\/exampleBlob.blob.core.windows.net\\/inputfolder\\/csv.txt'. Please ensure compression setting fits the data being processed."

BemenetiVisszafejtőHiba.ÉrvénytelenFejléc

  • Ok: A bemeneti adatok fejléce érvénytelen. A CSV-k például ismétlődő neveket tartalmazó oszlopokat tartalmaznak.
  • Portálértesítés: Igen
  • Erőforrásnapló szintje: Figyelmeztetés
  • Hatás: A bármilyen deszerializálási hibát tartalmazó üzenetek, beleértve az érvénytelen fejlécet is, eldobásra kerülnek a bemenetből.
  • Napló részletei:
    • Bemeneti üzenet azonosítója.
    • A tényleges hasznos adat legfeljebb néhány kilobájt.

Hibaüzenet

"BriefMessage": "Invalid CSV Header for resource 'https:\\/\\/exampleBlob.blob.core.windows.net\\/inputfolder\\/csv.txt'. Please make sure there are no duplicate field names."

BemenetDeszerializálóHiba.HiányzóOszlopok

  • Ok: A(z) CREATE TABLE használatával vagy a(z) TIMESTAMP BY segítségével megadott bemeneti oszlopok nem léteznek.
  • Portálértesítés: Igen
  • Erőforrásnapló szintje: Figyelmeztetés
  • Érintett terület: A hiányzó oszlopokat tartalmazó eseményeket a program elveti a bemenetből.
  • Napló részletei:
    • Bemeneti üzenet azonosítója.
    • A hiányzó oszlopok nevei.
    • A tényleges hasznos adat legfeljebb néhány kilobájt.

Hibaüzenetek

"BriefMessage": "Could not deserialize the input event(s) from resource 'https:\\/\\/exampleBlob.blob.core.windows.net\\/inputfolder\\/csv.txt' as Csv. Some possible reasons: 1) Malformed events 2) Input source configured with incorrect serialization format" 
"Message": "Missing fields specified in query or in create table. Fields expected:ColumnA Fields found:ColumnB"

Beolvasási deszerializáló hiba: típuskonverziós hiba

  • Ok: A Stream Analytics nem tudja átalakítani a bemenetet az általad megadott típusra az CREATE TABLE utasításban.
  • Portálértesítés: Igen
  • Erőforrásnapló szintje: Figyelmeztetés
  • Hatás: A Stream Analytics eseteket ejt a bemenetből, amelyekben típus-átalakítási hiba történik.
  • Napló részletei:
    • Bemeneti üzenet azonosítója.
    • Az oszlop neve és a várt típus.

Hibaüzenetek

"BriefMessage": "Could not deserialize the input event(s) from resource '''https:\\/\\/exampleBlob.blob.core.windows.net\\/inputfolder\\/csv.txt ' as Csv. Some possible reasons: 1) Malformed events 2) Input source configured with incorrect serialization format" 
"Message": "Unable to convert column: dateColumn to expected type."

InputDeserializerError.ÉrvénytelenAdat

  • Ok: A bemeneti adatok nem megfelelő formátumban vannak. A bemenet például nem érvényes JSON.
  • Portálértesítés: Igen
  • Erőforrásnapló szintje: Figyelmeztetés
  • Hatás: A Stream Analytics minden eseményt eltávolít az üzenetből, miután hibás adathibát talál.
  • Napló részletei:
    • Bemeneti üzenet azonosítója.
    • A tényleges hasznos adat mérete legfeljebb néhány kilobájt.

Hibaüzenetek

"BriefMessage": "JSON input stream should either be an array of objects or line separated objects. Found token type: String"
"Message": "JSON input stream should either be an array of objects or line separated objects. Found token type: String"

Érvénytelen bemeneti időbélyeg

  • Ok: A TIMESTAMP BY kifejezés értéke nem konvertálható datetime-ra.
  • Portálértesítés: Igen
  • Erőforrásnapló szintje: Figyelmeztetés
  • Hatás: Az érvénytelen bemeneti időbélyeggel rendelkező eseményeket a rendszer elveti a bemenetből.
  • Napló részletei:
    • Bemeneti üzenet azonosítója.
    • Hibaüzenet.
    • A tényleges adatméret legfeljebb néhány kilobájt.

Hibaüzenet

"BriefMessage": "Unable to get timestamp for resource 'https:\\/\\/exampleBlob.blob.core.windows.net\\/inputfolder\\/csv.txt ' due to error 'Cannot convert string to datetime'"

ÉrvénytelenBemenetiIdőbélyegKulcs

  • Ok: A TIMESTAMP BY OVER timestampColumn értéke NULL.
  • Portálértesítés: Igen
  • Erőforrásnapló szintje: Figyelmeztetés
  • Hatás: Az érvénytelen bemeneti időbélyeg-kulccsal rendelkező eseményeket a rendszer elveti a bemenetből.
  • Napló részletei:
    • A tényleges hasznos adat legfeljebb néhány kilobájt.

Hibaüzenet

"BriefMessage": "Unable to get value of TIMESTAMP BY OVER COLUMN"

LateInputEvent

  • Ok: A belépési idő és az érkezési idő közötti különbség nagyobb, mint a késői érkezési tűréshatár.
  • Portálértesítés biztosítva: Nem
  • Erőforrásnapló szintje: Információ
  • Érintett terület: A késői bemeneti események kezelése a feladatkonfiguráció Eseményrendezés szakaszának "Egyéb események kezelése" beállításának megfelelően történt. További információért lásd: Időkezelési szabályzatok.
  • Napló részletei:
    • Alkalmazás ideje és érkezési ideje.
    • A tényleges hasznos adat mennyisége legfeljebb néhány kilobájt.

Hibaüzenet

"BriefMessage": "Input event with application timestamp '2019-01-01' and arrival time '2019-01-02' was sent later than configured tolerance."

EarlyInputEvent

  • Ok: A belépési idő és az érkezési idő közötti különbség több mint öt perc.
  • Portálértesítés biztosítva: Nem
  • Erőforrásnapló szintje: Információ
  • Hatás: A korai bemeneti események kezelése a feladatkonfiguráció Eseményrendezés szakaszában található "Egyéb események kezelése" beállításnak megfelelően van megadva. További információért lásd: Időkezelési szabályzatok.
  • Napló részletei:
    • Alkalmazás ideje és érkezési ideje.
    • A tényleges hasznos adatmennyiség legfeljebb néhány kilobájt.

Hibaüzenet

"BriefMessage": "Input event arrival time '2019-01-01' is earlier than input event application timestamp '2019-01-02' by more than 5 minutes."

Nem megfelelő sorrendű esemény

  • Ok: Az esemény a meghatározott, sorrenden kívüliségre vonatkozó tűrési időablak alapján nem a megfelelő sorrendben van.
  • Portálértesítés biztosítva: Nem
  • Erőforrásnapló szintje: Információ
  • Hatás: A feladat a sorrendtől eltérően érkező eseményeket a feladatkonfiguráció Eseménysorrend szakaszának Egyéb események kezelése beállítása szerint kezeli. További információért lásd: Időkezelési szabályzatok.
  • Napló részletei:
    • A tényleges hasznos adat legfeljebb néhány kilobájt.

Hibaüzenet

"Message": "Out of order event(s) received."

Kimeneti adatok hibái

Az Azure Stream Analytics a konfigurációtól függően képes azonosítani a kimeneti fogadóba irányuló I/O-kéréssel vagy anélkül érkező kimeneti adathibákat. Például a Stream Analytics képes azonosítani egy hiányzó szükséges oszlopot, például PartitionKey, amikor az Azure Table kimenetet használod, I/O kérés nélkül. Az SQL-kimenet kényszersértései azonban I/O-kérést igényelnek.

A Stream Analytics csak akkor képes több adathibát észlelni, ha behívja az output elnyelőt, ami lassíthatja a feldolgozást. Ennek a problémának a megoldásához változtasd meg a munka konfigurációját vagy azt a lekérdezést, amely az adathibát okozza.

Hiba a kimeneti adatok átalakításában: Hiányzik a szükséges oszlop.

  • Ok: A kimenethez szükséges oszlop nem létezik. Az Azure Table PartitionKey néven definiált oszlop például nem létezik.
  • Portálértesítés: Igen
  • Erőforrásnapló szintje: Figyelmeztetés
  • Hatás: Az Output Data Policy beállítás kezeli az összes kimeneti adatkonverziós hibát, beleértve a hiányzó szükséges oszlopokat is.
  • Napló részletei:
    • Az oszlop neve és a rekordazonosító vagy a rekord egy része.

Hibaüzenet

"Message": "The output record does not contain primary key property: [deviceId] Ensure the query output contains the column [deviceId] with a unique non-empty string less than '255' characters."

KimenetiAdatKonverziósHiba.OszlopNévÉrvénytelen

  • Ok: Az oszlop értéke nem felel meg a kimenetnek. Az oszlopnév például nem érvényes Azure-táblaoszlop.
  • Portálértesítés: Igen
  • Erőforrásnapló szintje: Figyelmeztetés
  • Hatás: Az összes kimeneti adatkonvertálási hibát, beleértve az érvénytelen oszlopnevet is, a kimeneti adatházirend-beállításnak megfelelően kezeli a rendszer.
  • Napló részletei:
    • Az oszlop neve és rekordazonosító vagy a rekord egy része.

Hibaüzenet

"Message": "Invalid property name #deviceIdValue. Please refer MSDN for Azure table property naming convention."

OutputDataConversionError.TypeConversionError

  • Ok: Az oszlopok nem konvertálhatók érvényes típussá a kimenetben. Az oszlop értéke például nem kompatibilis az SQL-táblában definiált korlátozásokkal vagy típussal.
  • Portálértesítés: Igen
  • Erőforrásnapló szintje: Figyelmeztetés
  • Hatás: Az összes kimeneti adatkonvertálási hibát, beleértve a típuskonvertálási hibát is, a kimeneti adatházirend-beállításnak megfelelően kezeli a rendszer.
  • Napló részletei:
    • Az oszlop neve.
    • Rekordazonosító vagy a rekord egy része.

Hibaüzenet

"Message": "The column [id] value null or its type is invalid. Ensure to provide a unique non-empty string less than '255' characters."

KimenetiAdatÁtalakításiHiba.RekordTúllépteMéretkorlátot

  • Ok: Az üzenet értéke nagyobb, mint a támogatott kimeneti méret. Például egy rekord nagyobb mint 1 MB egy eseményhub kimenethez.
  • Portálértesítés: Igen
  • Erőforrásnapló szintje: Figyelmeztetés
  • Hatás: Az összes kimeneti adatkonvertálási hibát, beleértve a rekord méretkorlátját is, a kimeneti adatházirend-beállításnak megfelelően kezeli.
  • Napló részletei:
    • Rekordazonosító vagy a rekord egy része.

Hibaüzenet

"BriefMessage": "Single output event exceeds the maximum message size limit allowed (262144 bytes) by Event Hub."

OutputDataConversionError.DuplicateKey (Adatkonverziós hiba: Ismétlődő kulcs)

  • Ok: Egy rekord már tartalmaz egy olyan oszlopot, amelynek neve megegyezik egy rendszeroszlop nevével. Például az Azure Cosmos DB egy azonosító nevű oszlopot ad ki, amikor az ID oszlop egy másik oszlopba tartozik.
  • Portálértesítés: Igen
  • Erőforrásnapló szintje: Figyelmeztetés
  • Hatás: Az összes kimeneti adatkonvertálási hibát, beleértve az ismétlődő kulcsot is, a kimeneti adatházirend-beállításnak megfelelően kezeli a rendszer.
  • Napló részletei:
    • Az oszlop neve.
    • Rekordazonosító vagy a rekord egy része.

Hibaüzenet

"BriefMessage": "Column 'devicePartitionKey' is being mapped to multiple columns."

Következő lépések