Azure Stream Analytics-gegevensfouten

Gegevensfouten zijn fouten die optreden tijdens het verwerken van de gegevens. Deze fouten treden het vaakst op tijdens gegevensdeserialisatie, serialisatie en schrijfbewerkingen. Wanneer er gegevensfouten optreden, schrijft Stream Analytics gedetailleerde informatie en voorbeeld gebeurtenissen naar de resourcelogboeken. Schakel diagnostische logboeken in uw taak in om deze aanvullende informatie op te halen. In sommige gevallen wordt een samenvatting van deze informatie ook verstrekt via portalmeldingen.

In dit artikel worden de verschillende fouttypen, oorzaken en details van het resourcelogboek voor fouten in invoer- en uitvoergegevens beschreven.

Schema voor resourcelogboeken

Zie Problemen met Azure Stream Analytics oplossen met behulp van diagnostische logboeken om het schema voor resourcelogboeken te bekijken. De volgende JSON is een voorbeeldwaarde voor het veld Eigenschappen van een resourcelogboek voor een gegevensfout.

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

Fouten met invoergegevens

InputDeserializerError.InvalidCompressionType

  • Oorzaak: Het geselecteerde invoercompressietype komt niet overeen met de gegevens.
  • Portalmelding opgegeven: Ja
  • Niveau van resourcelogboek: waarschuwing
  • Impact: Berichten met eventuele deserialisatiefouten, waaronder een ongeldig compressietype, worden uit de invoer verwijderd.
  • Logboekgegevens
    • Bericht-id invoeren. Voor Event Hub is de id partitionid, offset en volgnummer.

Foutbericht

"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

  • Oorzaak: de header van de invoergegevens is ongeldig. Een CSV heeft bijvoorbeeld kolommen met dubbele namen.
  • Portalmelding opgegeven: Ja
  • Niveau van resourcelogboek: waarschuwing
  • Impact: Berichten met eventuele deserialisatiefouten, waaronder een ongeldige header, worden uit de invoer verwijderd.
  • Logboekgegevens
    • Bericht-id invoeren.
    • Werkelijke nettolading tot enkele kilobytes.

Foutbericht

"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

  • Oorzaak: De invoerkolommen die zijn gedefinieerd met CREATE TABLE of via TIMESTAMP BY bestaan niet.
  • Portalmelding opgegeven: Ja
  • Niveau van resourcelogboek: waarschuwing
  • Impact: gebeurtenissen met ontbrekende kolommen worden verwijderd uit de invoer.
  • Logboekgegevens
    • Bericht-id invoeren.
    • Namen van de kolommen die ontbreken.
    • Werkelijke nettolading tot een paar kilobytes.

Foutberichten

"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

  • Oorzaak: kan de invoer niet converteren naar het type dat is opgegeven in de instructie CREATE TABLE.
  • Portalmelding opgegeven: Ja
  • Niveau van resourcelogboek: waarschuwing
  • Impact: gebeurtenissen met een typeconversiefout worden verwijderd uit de invoer.
  • Logboekgegevens
    • Bericht-id invoeren.
    • Naam van de kolom en het verwachte type.

Foutberichten

"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

  • Oorzaak: invoergegevens hebben niet de juiste indeling. De invoer is bijvoorbeeld geen geldige JSON.
  • Portalmelding opgegeven: Ja
  • Niveau van resourcelogboek: waarschuwing
  • Impact: alle gebeurtenissen in het bericht nadat er een ongeldige gegevensfout is opgetreden, worden uit de invoer verwijderd.
  • Logboekgegevens
    • Bericht-id invoeren.
    • Werkelijke nettolading tot enkele kilobytes.

Foutberichten

"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

  • Oorzaak: De waarde van de expressie TIMESTAMP BY kan niet worden geconverteerd naar datetime.
  • Portalmelding opgegeven: Ja
  • Niveau van resourcelogboek: waarschuwing
  • Impact: gebeurtenissen met een ongeldig tijdstempel voor invoer worden uit de invoer verwijderd.
  • Logboekgegevens
    • Bericht-id invoeren.
    • Foutbericht.
    • Werkelijke nettolading tot enkele kilobytes.

Foutbericht

"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

  • Oorzaak: De waarde van TIMESTAMP BY OVER timestampColumn is NULL.
  • Portalmelding opgegeven: Ja
  • Niveau van resourcelogboek: waarschuwing
  • Impact: gebeurtenissen met een ongeldige tijdstempelsleutel voor invoer worden uit de invoer verwijderd.
  • Logboekgegevens
    • De werkelijke nettolading tot enkele kilobytes.

Foutbericht

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

LateInputEvent

  • Oorzaak: Het verschil tussen de tijd van de toepassing en de aankomsttijd is groter dan het tolerantievenster voor late aankomst.
  • Portalmelding opgegeven: Nee
  • Niveau van resourcelogboek: informatie
  • Impact: late invoergebeurtenissen worden verwerkt volgens de instelling 'Andere gebeurtenissen verwerken' in de sectie Gebeurtenisvolgorde van de taakconfiguratie. Zie Beleid voor tijdafhandeling voor meer informatie.
  • Logboekgegevens
    • Toepassingstijd en aankomsttijd.
    • Werkelijke nettolading tot enkele kilobytes.

Foutbericht

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

EarlyInputEvent

  • Oorzaak: Het verschil tussen de tijd van de toepassing en de aankomsttijd is groter dan 5 minuten.
  • Portalmelding opgegeven: Nee
  • Niveau van resourcelogboek: informatie
  • Impact: vroege invoergebeurtenissen worden verwerkt volgens de instelling 'Andere gebeurtenissen verwerken' in de sectie Gebeurtenisvolgorde van de taakconfiguratie. Zie Beleid voor tijdafhandeling voor meer informatie.
  • Logboekgegevens
    • Toepassingstijd en aankomsttijd.
    • Werkelijke nettolading tot enkele kilobytes.

Foutbericht

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

OutOfOrderEvent

  • Oorzaak: Gebeurtenis wordt beschouwd als niet in orde volgens het gedefinieerde tolerantievenster voor buiten orde.
  • Portalmelding opgegeven: Nee
  • Niveau van resourcelogboek: informatie
  • Impact: gebeurtenissen die niet op volgorde zijn, worden verwerkt volgens de instelling 'Andere gebeurtenissen verwerken' in de sectie Gebeurtenisvolgorde van de taakconfiguratie. Zie Beleid voor tijdafhandeling voor meer informatie.
  • Logboekgegevens
    • Werkelijke nettolading tot enkele kilobytes.

Foutbericht

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

Fouten met uitvoergegevens

Azure Stream Analytics kan fouten met uitvoergegevens identificeren met of zonder een I/O-aanvraag naar de uitvoersink, afhankelijk van de configuratie. Als er bijvoorbeeld een vereiste kolom ontbreekt, zoals PartitionKey, kan bij het gebruik van Azure Table-uitvoer worden geïdentificeerd zonder een I/O-aanvraag. Voor schendingen van beperkingen in SQL-uitvoer is echter wel een I/O-aanvraag vereist.

Er zijn verschillende gegevensfouten die alleen kunnen worden gedetecteerd nadat de uitvoersink is aangeroepen, waardoor de verwerking kan worden vertraagd. U kunt dit oplossen door de configuratie van uw taak of de query te wijzigen die de gegevensfout veroorzaakt.

OutputDataConversionError.RequiredColumnMissing

  • Oorzaak: de kolom die is vereist voor de uitvoer bestaat niet. Er bestaat bijvoorbeeld geen kolom die is gedefinieerd als Azure Table PartitionKey.
  • Portalmelding opgegeven: Ja
  • Niveau van resourcelogboek: waarschuwing
  • Impact: alle fouten bij het converteren van uitvoergegevens, inclusief ontbrekende vereiste kolommen, worden verwerkt volgens de instelling voor het beleid voor uitvoergegevens .
  • Logboekgegevens
    • De naam van de kolom en de record-id of een deel van de record.

Foutbericht

"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

  • Oorzaak: De kolomwaarde voldoet niet aan de uitvoer. De kolomnaam is bijvoorbeeld geen geldige Azure-tabelkolom.
  • Portalmelding opgegeven: Ja
  • Niveau van resourcelogboek: waarschuwing
  • Impact: alle fouten bij het converteren van uitvoergegevens, inclusief een ongeldige kolomnaam, worden verwerkt volgens de instelling Voor uitvoergegevensbeleid .
  • Logboekgegevens
    • De naam van de kolom en de record-id of een deel van de record.

Foutbericht

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

OutputDataConversionError.TypeConversionError

  • Oorzaak: een kolom kan niet worden geconverteerd naar een geldig type in de uitvoer. De waarde van de kolom is bijvoorbeeld niet compatibel met beperkingen of het type dat is gedefinieerd in de SQL-tabel.
  • Portalmelding opgegeven: Ja
  • Niveau van resourcelogboek: waarschuwing
  • Impact: alle fouten bij het converteren van uitvoergegevens, inclusief typeconversiefout, worden verwerkt volgens de instelling Voor uitvoergegevensbeleid .
  • Logboekgegevens
    • Naam van de kolom.
    • Record-id of een deel van de record.

Foutbericht

"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

  • Oorzaak: de waarde van het bericht is groter dan de ondersteunde uitvoergrootte. Een record is bijvoorbeeld groter dan 1 MB voor een Event Hub-uitvoer.
  • Portalmelding opgegeven: Ja
  • Niveau van resourcelogboek: waarschuwing
  • Impact: alle fouten bij het converteren van uitvoergegevens, inclusief de limiet voor het overschrijden van de recordgrootte, worden verwerkt volgens de beleidsinstelling voor uitvoergegevens .
  • Logboekgegevens
    • Record-id of een deel van de record.

Foutbericht

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

OutputDataConversionError.DuplicateKey

  • Oorzaak: Een record bevat al een kolom met dezelfde naam als een systeemkolom. CosmosDB-uitvoer bijvoorbeeld met een kolom met de naam ID wanneer de id-kolom naar een andere kolom is.
  • Portalmelding opgegeven: Ja
  • Niveau van resourcelogboek: waarschuwing
  • Impact: alle uitvoergegevensconversiefouten, inclusief dubbele sleutel, worden verwerkt volgens de instelling Uitvoergegevensbeleid .
  • Logboekgegevens
    • Naam van de kolom.
    • Record-id of een deel van de record.
"BriefMessage": "Column 'devicePartitionKey' is being mapped to multiple columns."

Volgende stappen