Datenfehler in Azure Stream Analytics

Datenfehler treten auf, wenn Azure Stream Analytics Ihre Streaming-Daten verarbeitet. Diese Fehler treten am häufigsten während der Datendeserialisierung, Serialisierung und Schreibvorgänge auf. Wenn ein solcher Fehler auftritt, schreibt Stream Analytics detaillierte Informationen und Beispielereignisse in die Ressourcenprotokolle. Aktivieren Sie Diagnoseprotokolle in Ihrem Job, um diese zusätzlichen Informationen zu erhalten. In einigen Fällen bieten Portalbenachrichtigungen auch eine Zusammenfassung dieser Informationen.

In diesem Artikel finden Sie eine Übersicht über die verschiedenen Fehlertypen, Ursachen und Details zum Ressourcenprotokoll für Fehler bei der Eingabe oder Ausgabe von Daten.

Ressourcenprotokollschema

Informationen zum Schema der Ressourcenprotokolle finden Sie unter Problembehandlung für Azure Stream Analytics mithilfe von Diagnoseprotokollen. Im folgenden JSON-Codeausschnitt finden Sie einen Beispielwert für das Feld Eigenschaften eines Ressourcenprotokolls für einen Datenfehler.

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

Fehler bei der Eingabe von Daten

InputDeserializerError.UngültigerKompressionstyp

  • Ursache: Der gewählte Eingabekompressionstyp stimmt nicht mit den Daten überein.
  • Portalbenachrichtigung bereitgestellt: Ja
  • Protokollierungsstufe der Ressource: Warnung
  • Auswirkung: Stream Analytics entfernt Nachrichten mit Deserialisierungsfehlern, einschließlich eines ungültigen Kompressionstyps, aus der Eingabe.
  • Protokolldetails:
    • Eingabenachrichtbezeichner. Für Azure Event Hubs sind dies als Kennung die PartitionId, der Offset und die Sequenznummer.

Fehlermeldung

"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

  • Ursache: Der Header der Eingabedaten ist ungültig. Ein Beispiel: Eine CSV-Datei weist Spalten mit doppelten Namen auf.
  • Portalbenachrichtigung bereitgestellt: Ja
  • Protokollierungsebene der Ressource: Warnung
  • Auswirkung: Nachrichten mit Deserialisierungsfehlern, einschließlich eines ungültigen Headers, werden aus der Eingabe entfernt.
  • Protokolldetails:
    • Eingabenachrichtbezeichner.
    • Tatsächliche Nutzlast bis auf einige Kilobytes genau.

Fehlermeldung

"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

  • Ursache: Die Eingabespalten, die du mit CREATE TABLE oder durch TIMESTAMP BY definiert, existieren nicht.
  • Portalbenachrichtigung bereitgestellt: Ja
  • Protokollebene der Ressource: Warnung
  • Auswirkung: Ereignisse mit fehlenden Spalten werden aus der Eingabe entfernt.
  • Protokolldetails:
    • Eingabenachrichtbezeichner.
    • Name der Spalten, die fehlen.
    • Tatsächliche Nutzlast bis auf einige Kilobytes genau.

Fehlermeldungen

"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

  • Ursache: Stream Analytics kann die Eingabe nicht in den Typ umwandeln, den du in der Anweisung CREATE TABLE angegeben hast.
  • Portalbenachrichtigung bereitgestellt: Ja
  • Protokollierungsstufe der Ressource: Warnung
  • Auswirkung: Stream Analytics verwirft Ereignisse mit einem Typkonvertierungsfehler aus der Eingabe.
  • Protokolldetails:
    • Eingabenachrichtbezeichner.
    • Name der Spalte und erwarteter Typ.

Fehlermeldungen

"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

  • Ursache: Die Eingabedaten sind nicht im richtigen Format. Ein Beispiel: Die Eingabe ist in keinem gültigen JSON-Format.
  • Portalbenachrichtigung bereitgestellt: Ja
  • Protokollstufe der Ressource: Warnung
  • Auswirkung: Stream Analytics lässt alle Ereignisse in der Nachricht fallen, nachdem ein Fehler mit ungültigen Daten festgestellt wird.
  • Protokolldetails:
    • Eingabenachrichtbezeichner.
    • Tatsächliche Nutzlast bis auf einige Kilobytes genau.

Fehlermeldungen

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

UngültigerEingabeZeitstempel

  • Ursache: Der Wert des TIMESTAMP BY-Ausdrucks kann nicht in datetime konvertiert werden.
  • Portalbenachrichtigung bereitgestellt: Ja
  • Ressourcenprotokollebene: Warnung
  • Auswirkung: Ereignisse mit ungültigem Eingabezeitstempel werden aus der Eingabe gelöscht.
  • Protokolldetails:
    • Eingabenachrichtbezeichner.
    • Fehlermeldung.
    • Tatsächliche Nutzlast bis auf einige Kilobytes genau.

Fehlermeldung

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

Ungültiger Eingabe-Zeitstempel-Schlüssel

  • Ursache: Der Wert der Zeitstempelspalte TIMESTAMP BY OVER ist NULL.
  • Portalbenachrichtigung bereitgestellt: Ja
  • Protokollierungsstufe der Ressource: Warnung
  • Auswirkung: Ereignisse mit ungültigem Eingabezeitstempelschlüssel werden aus der Eingabe gelöscht.
  • Protokolldetails:
    • Die eigentliche Nutzlast beträgt bis zu ein paar Kilobyte.

Fehlermeldung

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

LateInputEvent

  • Ursache: Der Unterschied zwischen Anwendungszeit und Ankunftszeit ist größer als das Toleranzfenster für späte Ankunft.
  • Portalbenachrichtigung bereitgestellt: Nein
  • Protokollierungsebene der Ressource: Information
  • Auswirkung: Späte Eingabeereignisse werden entsprechend der Einstellung „Handle other events“ (Andere Ereignisse verarbeiten) im Abschnitt „Ereignisreihenfolge“ der Auftragskonfiguration verarbeitet. Weitere Informationen finden Sie unter Zeitmanagementrichtlinien.
  • Protokolldetails:
    • Antragszeit und Eingangszeit
    • Tatsächliche Nutzlast bis auf einige Kilobytes genau.

Fehlermeldung

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

EarlyInputEvent

  • Ursache: Der Unterschied zwischen Anwendungszeit und Ankunftszeit beträgt mehr als fünf Minuten.
  • Portalbenachrichtigung vorhanden: Nein
  • Protokollierungsstufe der Ressource: Information
  • Auswirkung: Frühe Eingabeereignisse werden entsprechend der Einstellung „Handle other events“ (Andere Ereignisse verarbeiten) im Abschnitt „Ereignisreihenfolge“ der Auftragskonfiguration verarbeitet. Weitere Informationen finden Sie unter Zeitmanagementrichtlinien.
  • Protokolldetails:
    • Antragszeit und Eingangszeit
    • Tatsächliche Nutzlast bis auf einige Kilobytes genau.

Fehlermeldung

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

OutOfOrderEvent

  • Ursache: Das Ereignis liegt gemäß dem definierten Toleranzfenster für ungeordnete Ereignisse außerhalb der zulässigen Reihenfolge.
  • Portalbenachrichtigung bereitgestellt: Nein
  • Ressourcenprotokollebene: Information
  • Auswirkung: Der Job verarbeitet Out-of-Order-Events gemäß der Einstellung 'Andere Ereignisse verwalten ' im Abschnitt Event Ordering der Jobkonfiguration. Weitere Informationen finden Sie unter Zeitmanagementrichtlinien.
  • Protokolldetails:
    • Tatsächliche Nutzlast bis auf einige Kilobytes genau.

Fehlermeldung

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

Fehler bei der Ausgabe von Daten

Azure Stream Analytics kann abhängig von der Konfiguration Ausgabedatenfehler mit oder ohne E/A-Anforderung an die Ausgabesenke identifizieren. Zum Beispiel kann Stream Analytics eine fehlende erforderliche Spalte erkennen, zum Beispiel PartitionKey, wenn Sie Azure Table-Ausgabe verwenden, ohne eine I/O-Anfrage. Bei Einschränkungsverletzungen in der SQL-Ausgabe ist jedoch eine E/A-Anforderung nötig.

Stream Analytics kann mehrere Datenfehler erst erkennen, nachdem es den Output Sink aufgerufen hat, was die Verarbeitung verlangsamen kann. Um dieses Problem zu lösen, ändern Sie die Konfiguration Ihres Jobs oder die Abfrage, die den Datenfehler verursacht.

OutputDataConversionError.RequiredColumnMissing

  • Ursache: Die für die Ausgabe erforderliche Spalte ist nicht vorhanden. Beispielsweise ist eine Spalte, die als Azure Table PartitionKey definiert ist, nicht vorhanden.
  • Portalbenachrichtigung bereitgestellt: Ja
  • Protokollierungsstufe der Ressource: Warnung
  • Auswirkungen: Die Einstellung Output Data Policy behandelt alle Fehler bei der Ausgabedatenkonvertierung, einschließlich fehlender erforderlicher Spalten.
  • Protokolldetails:
    • Name der Spalte und entweder die Datensatzkennung oder ein Teil des Datensatzes.

Fehlermeldung

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

AusgabedatenKonvertierungsfehler.SpaltennameUngültig

  • Ursache: Der Spaltenwert entspricht nicht der Ausgabe. Ein Beispiel: Der Spaltenname ist keine gültige Azure-Tabellenspalte.
  • Portalbenachrichtigung vorhanden: Ja
  • Protokollebene der Ressource: Warnung
  • Auswirkung: Alle anderen Fehler bei der Datenkonvertierung, einschließlich Fehlern aufgrund von ungültigen Spaltennamen, werden entsprechend der Einstellung Output Data Policy (Richtlinie für Ausgabedaten) verarbeitet.
  • Protokolldetails:
    • Spaltenname und entweder die Datensatzkennung oder ein Teil des Datensatzes.

Fehlermeldung

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

OutputDataConversionError.TypeConversionError

  • Ursache: Eine Spalte kann in der Ausgabe nicht in einen gültigen Typ konvertiert werden. Ein Beispiel: Der Wert einer Spalte ist nicht kompatibel mit Einschränkungen oder Typen, die in der SQL-Tabelle definiert wurden.
  • Portalbenachrichtigung vorhanden: Ja
  • Protokollebene der Ressource: Warnung
  • Auswirkung: Alle anderen Fehler bei der Datenkonvertierung, einschließlich Fehlern bei der Typkonvertierung, werden entsprechend der Einstellung Output Data Policy (Richtlinie für Ausgabedaten) verarbeitet.
  • Protokolldetails:
    • Name der Spalte.
    • Entweder der Datensatzbezeichner oder ein Teil des Datensatzes.

Fehlermeldung

"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

  • Ursache: Der Wert der Nachricht ist größer als die unterstützte Ausgabegröße. Zum Beispiel ist ein Datensatz bei einer Event Hub-Ausgabe größer als 1 MB.
  • Portalbenachrichtigung vorhanden: Ja
  • Protokollebene der Ressource: Warnung
  • Auswirkung: Alle anderen Fehler bei der Datenkonvertierung, einschließlich Fehlern aufgrund von Überschreitungen der Maximalgröße von Datensätzen, werden entsprechend der Einstellung Output Data Policy (Richtlinie für Ausgabedaten) verarbeitet.
  • Protokolldetails:
    • Entweder der Datensatzbezeichner oder ein Teil des Datensatzes.

Fehlermeldung

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

Ausgabedatenkonvertierungsfehler.DoppelterSchlüssel

  • Ursache: Ein Datensatz enthält bereits eine Spalte mit demselben Namen wie eine Systemspalte. Zum Beispiel gibt Azure Cosmos DB eine Ausgabe mit einer Spalte namens ID aus, wenn die ID-Spalte einer anderen Spalte zugeordnet wird.
  • Portalbenachrichtigung vorhanden: Ja
  • Protokollierungsstufe der Ressource: Warnung
  • Auswirkung: Alle anderen Fehler bei der Datenkonvertierung, einschließlich Fehlern aufgrund von Duplikatschlüsseln, werden entsprechend der Einstellung Output Data Policy (Richtlinie für Ausgabedaten) verarbeitet.
  • Protokolldetails:
    • Name der Spalte.
    • Entweder der Datensatzbezeichner oder ein Teil des Datensatzes.

Fehlermeldung

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

Nächste Schritte