Errori dei dati di Analisi di flusso di Azure

Gli errori dei dati sono errori che si verificano durante l'elaborazione dei dati. Questi errori si verificano più spesso durante la de-serializzazione, la serializzazione e le operazioni di scrittura dei dati. Quando si verificano errori di dati, Analisi di flusso scrive informazioni dettagliate ed eventi di esempio nei log delle risorse. Abilitare i log di diagnostica nel processo per ottenere questi dettagli aggiuntivi. In alcuni casi, viene fornito anche un riepilogo di queste informazioni tramite le notifiche del portale.

Questo articolo descrive i diversi tipi di errore, le cause e i dettagli del log delle risorse per gli errori di dati di input e output.

Schema dei log delle risorse

Vedere Risolvere i problemi di Analisi di flusso di Azure usando i log di diagnostica per visualizzare lo schema per i log delle risorse. Il codice JSON seguente è un valore di esempio per il campo Proprietà di un log delle risorse per un errore di dati.

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

Errori dati di input

InputDeserializerError.InvalidCompressionType

  • Causa: il tipo di compressione di input selezionato non corrisponde ai dati.
  • Notifica del portale fornita: Sì
  • Livello di log delle risorse: avviso
  • Impatto: i messaggi con eventuali errori di deserializzazione, incluso il tipo di compressione non valido, vengono eliminati dall'input.
  • Dettagli del log
    • Identificatore del messaggio di input. Per Hub eventi, l'identificatore è PartitionId, Offset e Numero di sequenza.

Messaggio di errore

"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

  • Causa: l'intestazione dei dati di input non è valida. Ad esempio, un file CSV contiene colonne con nomi duplicati.
  • Notifica del portale fornita: Sì
  • Livello di log delle risorse: avviso
  • Impatto: i messaggi con eventuali errori di deserializzazione, inclusa l'intestazione non valida, vengono eliminati dall'input.
  • Dettagli del log
    • Identificatore del messaggio di input.
    • Payload effettivo fino a pochi kilobyte.

Messaggio di errore

"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

  • Causa: le colonne di input definite con CREATE TABLE o TIMESTAMP BY non esistono.
  • Notifica del portale fornita: Sì
  • Livello di log delle risorse: avviso
  • Impatto: gli eventi con colonne mancanti vengono eliminati dall'input.
  • Dettagli del log
    • Identificatore del messaggio di input.
    • Nomi delle colonne mancanti.
    • Payload effettivo fino a pochi kilobyte.

Messaggi di errore

"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

  • Causa: impossibile convertire l'input nel tipo specificato nell'istruzione CREATE TABLE.
  • Notifica del portale fornita: Sì
  • Livello di log delle risorse: avviso
  • Impatto: gli eventi con errore di conversione del tipo vengono eliminati dall'input.
  • Dettagli del log
    • Identificatore del messaggio di input.
    • Nome della colonna e tipo previsto.

Messaggi di errore

"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

  • Causa: i dati di input non sono nel formato corretto. Ad esempio, l'input non è JSON valido.
  • Notifica del portale fornita: Sì
  • Livello di log delle risorse: avviso
  • Impatto: tutti gli eventi nel messaggio dopo che è stato rilevato un errore di dati non validi vengono eliminati dall'input.
  • Dettagli del log
    • Identificatore del messaggio di input.
    • Payload effettivo fino a pochi kilobyte.

Messaggi di errore

"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

  • Causa: il valore dell'espressione TIMESTAMP BY non può essere convertito in datetime.
  • Notifica del portale fornita: Sì
  • Livello di log delle risorse: avviso
  • Impatto: gli eventi con timestamp di input non valido vengono eliminati dall'input.
  • Dettagli del log
    • Identificatore del messaggio di input.
    • Messaggio di errore.
    • Payload effettivo fino a pochi kilobyte.

Messaggio di errore

"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

  • Causa: il valore di TIMESTAMP BY OVER timestampColumn è NULL.
  • Notifica del portale fornita: Sì
  • Livello di log delle risorse: avviso
  • Impatto: gli eventi con chiave timestamp di input non valida vengono eliminati dall'input.
  • Dettagli del log
    • Payload effettivo fino a pochi kilobyte.

Messaggio di errore

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

LateInputEvent

  • Causa: la differenza tra l'ora dell'applicazione e l'ora di arrivo è maggiore della finestra di tolleranza di arrivo in ritardo.
  • Notifica del portale fornita: No
  • Livello di log delle risorse: informazioni
  • Impatto: gli eventi di input tardivi vengono gestiti in base all'impostazione "Gestire altri eventi" nella sezione Ordinamento eventi della configurazione del processo. Per altre informazioni, vedere Criteri di gestione del tempo.
  • Dettagli del log
    • Ora dell'applicazione e ora di arrivo.
    • Payload effettivo fino a pochi kilobyte.

Messaggio di errore

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

EarlyInputEvent

  • Causa: la differenza tra l'ora dell'applicazione e l'ora di arrivo è maggiore di 5 minuti.
  • Notifica del portale fornita: No
  • Livello di log delle risorse: informazioni
  • Impatto: gli eventi di input anticipato vengono gestiti in base all'impostazione "Gestire altri eventi" nella sezione Ordinamento eventi della configurazione del processo. Per altre informazioni, vedere Criteri di gestione del tempo.
  • Dettagli del log
    • Ora dell'applicazione e ora di arrivo.
    • Payload effettivo fino a pochi kilobyte.

Messaggio di errore

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

OutOfOrderEvent

  • Causa: l'evento viene considerato non ordinato in base alla finestra di tolleranza fuori ordine definita.
  • Notifica del portale fornita: No
  • Livello di log delle risorse: informazioni
  • Impatto: gli eventi non in ordine vengono gestiti in base all'impostazione "Gestire altri eventi" nella sezione Ordinamento eventi della configurazione del processo. Per altre informazioni, vedere Criteri di gestione del tempo.
  • Dettagli del log
    • Payload effettivo fino a pochi kilobyte.

Messaggio di errore

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

Errori dati di output

Analisi di flusso di Azure può identificare gli errori di output dei dati con o senza una richiesta di I/O al sink di output a seconda della configurazione. Ad esempio, manca una colonna obbligatoria, ad esempio PartitionKey, quando si usa l'output tabella di Azure può essere identificata senza una richiesta di I/O. Tuttavia, le violazioni dei vincoli nell'output SQL richiedono una richiesta di I/O.

Sono presenti diversi errori di dati che possono essere rilevati solo dopo aver effettuato una chiamata al sink di output, che può rallentare l'elaborazione. Per risolvere questo problema, modificare la configurazione del processo o la query che causa l'errore di dati.

OutputDataConversionError.RequiredColumnMissing

  • Causa: la colonna richiesta per l'output non esiste. Ad esempio, una colonna definita come Tabella di Azure PartitionKey non esiste.
  • Notifica del portale fornita: Sì
  • Livello di log delle risorse: avviso
  • Impatto: tutti gli errori di conversione dei dati di output, inclusa la colonna necessaria mancante, vengono gestiti in base all'impostazione dei criteri dei dati di output.
  • Dettagli del log
    • Nome della colonna e identificatore di record o parte del record.

Messaggio di errore

"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

  • Causa: il valore della colonna non è conforme all'output. Ad esempio, il nome della colonna non è una colonna di tabella di Azure valida.
  • Notifica del portale fornita: Sì
  • Livello di log delle risorse: avviso
  • Impatto: tutti gli errori di conversione dei dati di output, incluso il nome di colonna non valido, vengono gestiti in base all'impostazione Criteri dati di output.
  • Dettagli del log
    • Nome della colonna e identificatore di record o parte del record.

Messaggio di errore

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

OutputDataConversionError.TypeConversionError

  • Causa: non è possibile convertire una colonna in un tipo valido nell'output. Ad esempio, il valore della colonna non è compatibile con vincoli o tipo definito nella tabella SQL.
  • Notifica del portale fornita: Sì
  • Livello di log delle risorse: avviso
  • Impatto: tutti gli errori di conversione dei dati di output, incluso l'errore di conversione dei tipi, vengono gestiti in base all'impostazione dei criteri dei dati di output.
  • Dettagli del log
    • Nome della colonna.
    • Identificatore di record o parte del record.

Messaggio di errore

"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

  • Causa: il valore del messaggio è maggiore delle dimensioni di output supportate. Ad esempio, un record è maggiore di 1 MB per un output di Hub eventi.
  • Notifica del portale fornita: Sì
  • Livello di log delle risorse: avviso
  • Impatto: tutti gli errori di conversione dei dati di output, incluso il limite di dimensioni superato, vengono gestiti in base all'impostazione dei criteri dei dati di output.
  • Dettagli del log
    • Identificatore di record o parte del record.

Messaggio di errore

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

OutputDataConversionError.DuplicateKey

  • Causa: un record contiene già una colonna con lo stesso nome di una colonna di sistema. Ad esempio, l'output di CosmosDB con una colonna denominata ID quando la colonna ID è in una colonna diversa.
  • Notifica del portale fornita: Sì
  • Livello di log delle risorse: avviso
  • Impatto: tutti gli errori di conversione dei dati di output, inclusa la chiave duplicata, vengono gestiti in base all'impostazione dei criteri dei dati di output.
  • Dettagli del log
    • Nome della colonna.
    • Identificatore di record o parte del record.
"BriefMessage": "Column 'devicePartitionKey' is being mapped to multiple columns."

Passaggi successivi