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