Erros de dados do Azure Stream Analytics

Os erros de dados são erros que ocorrem durante o processamento dos dados. Estes erros ocorrem frequentemente durante operações de serialização, serialização e escrita de dados. Quando ocorrem erros de dados, o Stream Analytics escreve informações detalhadas e eventos de exemplo nos registos de recursos. Ative os registos de diagnóstico na sua tarefa para obter estes detalhes adicionais. Em alguns casos, também é fornecido um resumo destas informações através de notificações do portal.

Este artigo descreve os diferentes tipos de erro, causas e detalhes do registo de recursos para erros de dados de entrada e saída.

Esquema de Registos de Recursos

Veja Resolver problemas do Azure Stream Analytics com registos de diagnósticos para ver o esquema dos registos de recursos. O seguinte JSON é um valor de exemplo para o campo Propriedades de um registo de recursos para um erro de dados.

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

Erros de dados de entrada

InputDeserializerError.InvalidCompressionType

  • Causa: o tipo de compressão de entrada selecionado não corresponde aos dados.
  • Notificação do portal fornecida: Sim
  • Nível de registo de recursos: Aviso
  • Impacto: as mensagens com quaisquer erros de desserialização, incluindo o tipo de compressão inválido, são removidas da entrada.
  • Detalhes do registo
    • Identificador de mensagem de entrada. Para o Hub de Eventos, o identificador é PartitionId, Offset e Sequence Number.

Mensagem de erro

"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: o cabeçalho dos dados de entrada é inválido. Por exemplo, um CSV tem colunas com nomes duplicados.
  • Notificação do portal fornecida: Sim
  • Nível de registo de recursos: Aviso
  • Impacto: as mensagens com erros de desserialização, incluindo cabeçalho inválido, são removidas da entrada.
  • Detalhes do registo
    • Identificador de mensagem de entrada.
    • Payload real até poucos quilobytes.

Mensagem de erro

"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: as colunas de entrada definidas com CREATE TABLE ou através de TIMESTAMP BY não existem.
  • Notificação do portal fornecida: Sim
  • Nível de registo de recursos: Aviso
  • Impacto: os eventos com colunas em falta são removidos da entrada.
  • Detalhes do registo
    • Identificador de mensagem de entrada.
    • Nomes das colunas em falta.
    • Payload real até alguns quilobytes.

Mensagens de erro

"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: não é possível converter a entrada para o tipo especificado na instrução CREATE TABLE.
  • Notificação do portal fornecida: Sim
  • Nível de registo de recursos: Aviso
  • Impacto: os eventos com erro de conversão de tipo são removidos da entrada.
  • Detalhes do registo
    • Identificador de mensagem de entrada.
    • Nome da coluna e do tipo esperado.

Mensagens de erro

"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: Os dados de entrada não estão no formato certo. Por exemplo, a entrada não é JSON válida.
  • Notificação do portal fornecida: Sim
  • Nível de registo de recursos: Aviso
  • Impacto: todos os eventos na mensagem após ter sido encontrado um erro de dados inválido são removidos da entrada.
  • Detalhes do registo
    • Identificador de mensagem de entrada.
    • Payload real até poucos quilobytes.

Mensagens de erro

"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: o valor da expressão TIMESTAMP BY não pode ser convertido em datetime.
  • Notificação do portal fornecida: Sim
  • Nível de registo de recursos: Aviso
  • Impacto: os eventos com carimbo de data/hora de entrada inválido são removidos da entrada.
  • Detalhes do registo
    • Identificador de mensagem de entrada.
    • Mensagem de erro.
    • Payload real até poucos quilobytes.

Mensagem de erro

"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: O valor de TIMESTAMP BY OVER timestampColumn é NULL.
  • Notificação do portal fornecida: Sim
  • Nível de registo de recursos: Aviso
  • Impacto: os eventos com a chave de carimbo de data/hora de entrada inválida são removidos da entrada.
  • Detalhes do registo
    • O payload real até poucos quilobytes.

Mensagem de erro

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

LateInputEvent

  • Causa: a diferença entre a hora da aplicação e a hora de chegada é maior do que a janela de tolerância de chegada tardia.
  • Notificação do portal fornecida: Não
  • Nível de registo de recursos: Informações
  • Impacto: os eventos de entrada tardia são processados de acordo com a definição "Processar outros eventos" na secção Ordenação de Eventos da configuração da tarefa. Para obter mais informações, veja Políticas de Processamento de Tempo.
  • Detalhes do registo
    • Hora da aplicação e hora de chegada.
    • Payload real até poucos quilobytes.

Mensagem de erro

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

EarlyInputEvent

  • Causa: a diferença entre a Hora da aplicação e a Hora de chegada é superior a 5 minutos.
  • Notificação do portal fornecida: Não
  • Nível de registo de recursos: Informações
  • Impacto: os eventos de entrada antecipada são processados de acordo com a definição "Processar outros eventos" na secção Ordenação de Eventos da configuração da tarefa. Para obter mais informações, veja Políticas de Processamento de Tempo.
  • Detalhes do registo
    • Hora da aplicação e hora de chegada.
    • Payload real até poucos quilobytes.

Mensagem de erro

"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: o evento é considerado fora de ordem de acordo com a janela de tolerância fora da ordem definida.
  • Notificação do portal fornecida: Não
  • Nível de registo de recursos: Informações
  • Impacto: os eventos fora de ordem são processados de acordo com a definição "Processar outros eventos" na secção Ordenação de Eventos da configuração da tarefa. Para obter mais informações, veja Políticas de Processamento de Tempo.
  • Detalhes do registo
    • Payload real até poucos quilobytes.

Mensagem de erro

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

Erros de dados de saída

O Azure Stream Analytics pode identificar erros de dados de saída com ou sem um pedido de E/S para o sink de saída, dependendo da configuração. Por exemplo, uma coluna necessária em falta, como PartitionKey, ao utilizar a saída da Tabela do Azure, pode ser identificada sem um pedido de E/S. No entanto, as violações de restrição na saída do SQL requerem um pedido de E/S.

Existem vários erros de dados que só podem ser detetados depois de efetuar uma chamada para o sink de saída, o que pode abrandar o processamento. Para resolver este problema, altere a configuração da tarefa ou a consulta que está a causar o erro de dados.

OutputDataConversionError.RequiredColumnMissing

  • Causa: a coluna necessária para a saída não existe. Por exemplo, uma coluna definida como Azure Table PartitionKey não existe.
  • Notificação do portal fornecida: Sim
  • Nível de registo de recursos: Aviso
  • Impacto: todos os erros de conversão de dados de saída, incluindo a coluna necessária em falta, são processados de acordo com a definição Política de Dados de Saída .
  • Detalhes do registo
    • Nome da coluna e do identificador de registo ou parte do registo.

Mensagem de erro

"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: o valor da coluna não está em conformidade com o resultado. Por exemplo, o nome da coluna não é uma coluna de tabela válida do Azure.
  • Notificação do portal fornecida: Sim
  • Nível de registo de recursos: Aviso
  • Impacto: todos os erros de conversão de dados de saída, incluindo o nome de coluna inválido, são processados de acordo com a definição Política de Dados de Saída .
  • Detalhes do registo
    • Nome da coluna e identificador de registo ou parte do registo.

Mensagem de erro

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

OutputDataConversionError.TypeConversionError

  • Causa: não é possível converter uma coluna num tipo válido na saída. Por exemplo, o valor da coluna é incompatível com as restrições ou o tipo definido na tabela SQL.
  • Notificação do portal fornecida: Sim
  • Nível de registo de recursos: Aviso
  • Impacto: todos os erros de conversão de dados de saída, incluindo o erro de conversão de tipo, são processados de acordo com a definição Política de Dados de Saída .
  • Detalhes do registo
    • Nome da coluna.
    • Identificador de registos ou parte do registo.

Mensagem de erro

"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: o valor da mensagem é maior do que o tamanho de saída suportado. Por exemplo, um registo é superior a 1 MB para uma saída do Hub de Eventos.
  • Notificação do portal fornecida: Sim
  • Nível de registo de recursos: Aviso
  • Impacto: todos os erros de conversão de dados de saída, incluindo o limite de tamanho excedido do registo, são processados de acordo com a definição Política de Dados de Saída .
  • Detalhes do registo
    • Identificador de registos ou parte do registo.

Mensagem de erro

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

OutputDataConversionError.DuplicateKey

  • Causa: um registo já contém uma coluna com o mesmo nome que uma coluna Sistema. Por exemplo, saída do CosmosDB com uma coluna com o nome ID quando a coluna ID é para uma coluna diferente.
  • Notificação do portal fornecida: Sim
  • Nível de registo de recursos: Aviso
  • Impacto: todos os erros de conversão de dados de saída, incluindo a chave duplicada, são processados de acordo com a definição Política de Dados de Saída .
  • Detalhes do registo
    • Nome da coluna.
    • Identificador de registos ou parte do registo.
"BriefMessage": "Column 'devicePartitionKey' is being mapped to multiple columns."

Passos seguintes