Azure Stream Analytics-datafel

Datafel är fel som uppstår när data bearbetas. Dessa fel inträffar oftast under åtgärder för datade-serialisering, serialisering och skrivning. När datafel inträffar skriver Stream Analytics detaljerad information och exempelhändelser till resursloggarna. Aktivera diagnostikloggar i jobbet för att få den här ytterligare informationen. I vissa fall tillhandahålls även en sammanfattning av den här informationen via portalmeddelanden.

Den här artikeln beskriver de olika feltyperna, orsakerna och resurslogginformationen för indata- och utdatafel.

Schema för resursloggar

Se Felsöka Azure Stream Analytics med hjälp av diagnostikloggar för att se schemat för resursloggar. Följande JSON är ett exempelvärde för fältet Egenskaper i en resurslogg för ett datafel.

{
    "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
}

Indatafel

InputDeserializerError.InvalidCompressionType

  • Orsak: Den indatakomprimeringstyp som valts matchar inte data.
  • Portalavisering tillhandahålls: Ja
  • Resursloggnivå: Varning
  • Effekt: Meddelanden med eventuella deserialiseringsfel, inklusive ogiltig komprimeringstyp, tas bort från indata.
  • Logginformation
    • Indatameddelandeidentifierare. För Event Hub är identifieraren PartitionId, Offset och Sequence Number.

Felmeddelande

"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

  • Orsak: Rubriken för indata är ogiltig. En CSV har till exempel kolumner med dubblettnamn.
  • Portalavisering tillhandahålls: Ja
  • Resursloggnivå: Varning
  • Effekt: Meddelanden med eventuella deserialiseringsfel, inklusive ogiltigt huvud, tas bort från indata.
  • Logginformation
    • Indatameddelandeidentifierare.
    • Faktisk nyttolast upp till några kilobyte.

Felmeddelande

"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

  • Orsak: De indatakolumner som definierats med CREATE TABLE eller TIMESTAMP BY finns inte.
  • Portalavisering tillhandahålls: Ja
  • Resursloggnivå: Varning
  • Effekt: Händelser med saknade kolumner tas bort från indata.
  • Logginformation
    • Indatameddelandeidentifierare.
    • Namn på de kolumner som saknas.
    • Faktisk nyttolast upp till några kilobyte.

Felmeddelanden

"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

  • Orsak: Det går inte att konvertera indata till den typ som anges i CREATE TABLE-instruktionen.
  • Portalavisering tillhandahålls: Ja
  • Resursloggnivå: Varning
  • Effekt: Händelser med typkonverteringsfel tas bort från indata.
  • Logginformation
    • Indatameddelandeidentifierare.
    • Namnet på kolumnen och förväntad typ.

Felmeddelanden

"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

  • Orsak: Indata har inte rätt format. Indata är till exempel inte giltiga JSON.
  • Portalavisering tillhandahålls: Ja
  • Resursloggnivå: Varning
  • Effekt: Alla händelser i meddelandet när ett ogiltigt datafel har påträffats tas bort från indata.
  • Logginformation
    • Indatameddelandeidentifierare.
    • Faktisk nyttolast upp till några kilobyte.

Felmeddelanden

"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

  • Orsak: Värdet för TIMESTAMP BY-uttrycket kan inte konverteras till datetime.
  • Portalavisering tillhandahålls: Ja
  • Resursloggnivå: Varning
  • Effekt: Händelser med ogiltig tidsstämpel för indata tas bort från indata.
  • Logginformation
    • Indatameddelandeidentifierare.
    • Felmeddelande.
    • Faktisk nyttolast upp till några kilobyte.

Felmeddelande

"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

  • Orsak: Värdet för TIMESTAMP BY OVER timestampColumn är NULL.
  • Portalavisering tillhandahålls: Ja
  • Resursloggnivå: Varning
  • Effekt: Händelser med ogiltig tidsstämpelnyckel för indata tas bort från indata.
  • Logginformation
    • Den faktiska nyttolasten upp till några kilobyte.

Felmeddelande

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

LateInputEvent

  • Orsak: Skillnaden mellan programtid och ankomsttid är större än det sena ankomsttoleransfönstret.
  • Portalavisering tillhandahålls: Nej
  • Resursloggnivå: Information
  • Effekt: Sena indatahändelser hanteras enligt inställningen "Hantera andra händelser" i avsnittet Händelseordning i jobbkonfigurationen. Mer information finns i Tidshanteringsprinciper.
  • Logginformation
    • Programtid och ankomsttid.
    • Faktisk nyttolast upp till några kilobyte.

Felmeddelande

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

EarlyInputEvent

  • Orsak: Skillnaden mellan programtid och ankomsttid är större än 5 minuter.
  • Portalavisering tillhandahålls: Nej
  • Resursloggnivå: Information
  • Effekt: Tidiga indatahändelser hanteras enligt inställningen "Hantera andra händelser" i avsnittet Händelseordning i jobbkonfigurationen. Mer information finns i Tidshanteringsprinciper.
  • Logginformation
    • Programtid och ankomsttid.
    • Faktisk nyttolast upp till några kilobyte.

Felmeddelande

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

OutOfOrderEvent

  • Orsak: Händelsen anses vara ur ordning enligt det definierade out of order-toleransfönstret.
  • Portalavisering tillhandahålls: Nej
  • Resursloggnivå: Information
  • Effekt: Out of order-händelser hanteras enligt inställningen "Hantera andra händelser" i avsnittet Händelseordning i jobbkonfigurationen. Mer information finns i Tidshanteringsprinciper.
  • Logginformation
    • Faktisk nyttolast upp till några kilobyte.

Felmeddelande

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

Utdatafel

Azure Stream Analytics kan identifiera utdatafel med eller utan en I/O-begäran till utdatamottagaren beroende på konfigurationen. Om du till exempel saknar en obligatorisk kolumn, till exempel PartitionKey, kan du identifiera när du använder Azure Table-utdata utan en I/O-begäran. Begränsningsöverträdelser i SQL-utdata kräver dock en I/O-begäran.

Det finns flera datafel som bara kan identifieras när du har gjort ett anrop till utdatamottagaren, vilket kan göra bearbetningen långsammare. Lös problemet genom att ändra ditt jobbs konfiguration eller frågan som orsakar datafelet.

OutputDataConversionError.RequiredColumnMissing

  • Orsak: Den kolumn som krävs för utdata finns inte. En kolumn som definieras som Azure Table PartitionKey finns till exempel inte.
  • Portalavisering tillhandahålls: Ja
  • Resursloggnivå: Varning
  • Effekt: Alla datakonverteringsfel för utdata, inklusive saknade obligatoriska kolumner, hanteras enligt inställningen Utdataprincip .
  • Logginformation
    • Namnet på kolumnen och antingen postidentifieraren eller en del av posten.

Felmeddelande

"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

  • Orsak: Kolumnvärdet överensstämmer inte med utdata. Kolumnnamnet är till exempel inte en giltig Azure-tabellkolumn.
  • Portalavisering tillhandahålls: Ja
  • Resursloggnivå: Varning
  • Effekt: Alla datakonverteringsfel för utdata, inklusive ogiltigt kolumnnamn, hanteras enligt inställningen Utdataprincip .
  • Logginformation
    • Namnet på kolumnen och antingen postidentifierare eller en del av posten.

Felmeddelande

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

OutputDataConversionError.TypeConversionError

  • Orsak: Det går inte att konvertera en kolumn till en giltig typ i utdata. Värdet för kolumnen är till exempel inte kompatibelt med begränsningar eller typ som definierats i SQL-tabellen.
  • Portalavisering tillhandahålls: Ja
  • Resursloggnivå: Varning
  • Effekt: Alla konverteringsfel för utdata, inklusive typkonverteringsfel, hanteras enligt inställningen Utdataprincip .
  • Logginformation
    • Namnet på kolumnen.
    • Antingen postidentifierare eller en del av posten.

Felmeddelande

"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

  • Orsak: Värdet för meddelandet är större än utdatastorleken som stöds. En post är till exempel större än 1 MB för en händelsehubbutdata.
  • Portalavisering tillhandahålls: Ja
  • Resursloggnivå: Varning
  • Effekt: Alla datakonverteringsfel för utdata, inklusive en post som överskridit storleksgränsen, hanteras enligt inställningen Utdataprincip .
  • Logginformation
    • Antingen postidentifierare eller en del av posten.

Felmeddelande

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

OutputDataConversionError.DuplicateKey

  • Orsak: En post innehåller redan en kolumn med samma namn som en systemkolumn. CosmosDB-utdata med en kolumn med namnet ID när ID-kolumnen är till en annan kolumn.
  • Portalavisering tillhandahålls: Ja
  • Resursloggnivå: Varning
  • Effekt: Alla datakonverteringsfel för utdata, inklusive dubblettnyckel, hanteras enligt inställningen Utdataprincip .
  • Logginformation
    • Namnet på kolumnen.
    • Antingen postidentifierare eller en del av posten.
"BriefMessage": "Column 'devicePartitionKey' is being mapped to multiple columns."

Nästa steg