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


Azure Stream Analytics-adathibák

Az adathibák az adatok feldolgozása során előforduló hibák. Ezek a hibák leggyakrabban adatszerializálási, szerializálási és írási műveletek 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. Engedélyezze a diagnosztikai naplók használatát a feladatban a további részletek lekéréséhez. Bizonyos esetekben ezen információk összegzését portálértesítések is biztosítják.

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éma

Tekintse meg az Azure Stream Analytics hibaelhárítását diagnosztikai naplókkal az erőforrásnaplók sémájának megtekintéséhez. Az alábbi JSON egy adathiba erőforrásnapló Tulajdonságok 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

InputDeserializerError.InvalidCompressionType

  • Ok: A kiválasztott bemeneti tömörítési típus nem egyezik az adatokkal.
  • Portálértesítés: Igen
  • Erőforrásnapló szintje: Figyelmeztetés
  • Hatás: A deszerializálási hibákkal ( például érvénytelen tömörítési típussal) rendelkező üzeneteket a rendszer elveti a bemenetből.
  • Napló részletei
    • Bemeneti üzenet azonosítója. Az Event Hub esetében az azonosító a PartitionId, az Offset és a 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."

InputDeserializerError.InvalidHeader

  • 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 deszerializálási hibákkal ( beleértve az érvénytelen fejlécet) rendelkező üzeneteket a rendszer elveti a bemenetből.
  • Napló részletei
    • Bemeneti üzenet azonosítója.
    • Tényleges hasznos adat akár néhány kilobájtig.

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

InputDeserializerError.MissingColumns

  • Ok: A CREATE TABLE vagy a TIMESTAMP BY használatával definiált 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.
    • Tényleges hasznos adat néhány kilobájtig.

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"

InputDeserializerError.TypeConversionError

  • Ok: A bemenet nem konvertálható a CREATE TABLE utasításban megadott típusra.
  • Portálértesítés: Igen
  • Erőforrásnapló szintje: Figyelmeztetés
  • Hatás: A típuskonvertálási hibát tartalmazó eseményeket a rendszer elveti a bemenetből.
  • 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.InvalidData

  • Ok: A bemeneti adatok nem a megfelelő formátumúak. A bemenet például nem érvényes JSON.
  • Portálértesítés: Igen
  • Erőforrásnapló szintje: Figyelmeztetés
  • Érintett terület: Az üzenetben lévő összes esemény érvénytelen adathiba történt után a bemenetről lesz elvetve.
  • Napló részletei
    • Bemeneti üzenet azonosítója.
    • Tényleges hasznos adat akár néhány kilobájtig.

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"

InvalidInputTimeStamp

  • 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.
    • Tényleges hasznos adat akár néhány kilobájtig.

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'"

InvalidInputTimeStampKey

  • 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 néhány kilobájtig.

Hibaüzenet

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

LateInputEvent

  • Ok: Az alkalmazás ideje és az érkezési idő közötti különbség nagyobb, mint a késői érkezési tolerancia időszaka.
  • Portálértesítés: 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ó: Időkezelési szabályzatok.
  • Napló részletei
    • Alkalmazás ideje és érkezési ideje.
    • Tényleges hasznos adat akár néhány kilobájtig.

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: Az alkalmazás és az érkezési idő közötti különbség 5 percnél nagyobb.
  • Portálértesítés: 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ó: Időkezelési szabályzatok.
  • Napló részletei
    • Alkalmazás ideje és érkezési ideje.
    • Tényleges hasznos adat akár néhány kilobájtig.

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

OutOfOrderEvent

  • Ok: Az eseményt a megadott sorrenden kívüli tűrésablak szerint rendezésen kívülinek tekintjük.
  • Portálértesítés: Nem
  • Erőforrásnapló szintje: Információ
  • Hatás: A rendelésen kívüli események kezelése a feladatkonfiguráció Eseményrendezés szakaszában található "Egyéb események kezelése" beállítás szerint történik. További információ: Időkezelési szabályzatok.
  • Napló részletei
    • Tényleges hasznos adat akár néhány kilobájtig.

Hibaüzenet

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

Kimeneti adathibák

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. Ha például hiányzik egy szükséges oszlop, például PartitionKeyaz Azure Table-kimenet használata, I/O-kérés nélkül azonosítható. Az SQL-kimenet kényszersértései azonban I/O-kérést igényelnek.

Számos adathiba észlelhető, amelyek csak a kimeneti fogadó hívása után észlelhetők, ami lelassíthatja a feldolgozást. A probléma megoldásához módosítsa a feladat konfigurációját vagy az adathibát okozó lekérdezést.

OutputDataConversionError.RequiredColumnMissing

  • 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 összes kimeneti adatkonvertálási hibát, beleértve a hiányzó kötelező oszlopot is, a kimeneti adatházirend-beállításnak megfelelően kezeli a rendszer.
  • 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."

OutputDataConversionError.ColumnNameInvalid

  • 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."

OutputDataConversionError.RecordExceededSizeLimit

  • Ok: Az üzenet értéke nagyobb, mint a támogatott kimeneti méret. Egy rekord például nagyobb, mint 1 MB egy Event Hub-kimenet esetében.
  • 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

  • Ok: Egy rekord már tartalmaz egy olyan oszlopot, amelynek neve megegyezik a rendszeroszlop nevével. A CosmosDB kimenete például egy azonosító nevű oszlopmal, amikor az azonosító oszlop egy másik oszlophoz 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.
"BriefMessage": "Column 'devicePartitionKey' is being mapped to multiple columns."

Következő lépések