Ошибки данных в Azure Stream Analytics
Ошибки данных — это ошибки, возникающие при обработке данных. Они чаще всего связаны с операциями десериализации, сериализации и записи данных. При возникновении ошибок данных Stream Analytics записывает подробные сведения и примеры событий в журналы ресурсов. Для доступа к этим дополнительным сведениям включите в задание журналы диагностики. В некоторых случаях сводка этих сведений также доступна в уведомлениях портала.
В этой статье описаны различные типы ошибок ввода и вывода данных, их причины и соответствующие детали в журнале ресурсов.
Схема журналов ресурсов
Схема журналов ресурсов приведена в статье Устранение неполадок Azure Stream Analytics с помощью журналов диагностики. Следующий код JSON — это пример значения для поля Свойства журнала ресурсов для ошибки данных.
{
"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
}
Ошибки входных данных
InputDeserializerError.InvalidCompressionType
- Причина: выбранный тип сжатия входных данных не соответствует данным.
- Уведомление на портале: да
- Уровень журнала ресурсов: предупреждение
- Влияние: сообщения с ошибками десериализации, включая недопустимый тип сжатия, удаляются из входных данных.
- Сведения о журнале
- Идентификатор входного сообщения. Для концентратора событий идентификаторами являются PartitionId, Offset и порядковый номер.
Сообщение об ошибке
"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
- Причина: недопустимый заголовок входных данных. Например, в CSV-файле есть столбцы с повторяющимися именами.
- Уведомление на портале: да
- Уровень журнала ресурсов: предупреждение
- Влияние: сообщения с ошибками десериализации, включая недопустимый заголовок, удаляются из входных данных.
- Сведения о журнале
- Идентификатор входного сообщения.
- Фактические полезные данные объемом до нескольких килобайт.
Сообщение об ошибке
"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
- Причина: входные столбцы, определенные с помощью CREATE TABLE или TIMESTAMP, не существуют.
- Уведомление на портале: да
- Уровень журнала ресурсов: предупреждение
- Влияние: события с отсутствующими столбцами удаляются из входных данных.
- Сведения о журнале
- Идентификатор входного сообщения.
- Имена отсутствующих столбцов.
- Фактические полезные данные объемом до нескольких килобайт.
Сообщения об ошибках
"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
- Причина: не удалось преобразовать входные данные в тип, указанный в операторе CREATE TABLE.
- Уведомление на портале: да
- Уровень журнала ресурсов: предупреждение
- Влияние: события с ошибкой преобразования типа удаляются из входных данных.
- Сведения о журнале
- Идентификатор входного сообщения.
- Имя столбца и ожидаемый тип.
Сообщения об ошибках
"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
- Причина: входные данные имеют неправильный формат. Например, входные данные не являются допустимыми кодом JSON.
- Уведомление на портале: да
- Уровень журнала ресурсов: предупреждение
- Влияние: события в сообщении после обнаружения ошибки недопустимых данных удаляются из входного потока.
- Сведения о журнале
- Идентификатор входного сообщения.
- Фактические полезные данные объемом до нескольких килобайт.
Сообщения об ошибках
"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
- Причина: значение выражения TIMESTAMP BY не может быть преобразовано в тип DateTime.
- Уведомление на портале: да
- Уровень журнала ресурсов: предупреждение
- Влияние: события с недопустимой входной меткой времени удаляются из входных данных.
- Сведения о журнале
- Идентификатор входного сообщения.
- Сообщение об ошибке.
- Фактические полезные данные объемом до нескольких килобайт.
Сообщение об ошибке
"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
- Причина: значение TIMESTAMP BY OVER timestampColumn равно NULL.
- Уведомление на портале: да
- Уровень журнала ресурсов: предупреждение
- Влияние: события с недопустимым ключом входной метки времени удаляются из входных данных.
- Сведения о журнале
- Фактические полезные данные объемом до нескольких килобайт.
Сообщение об ошибке
"BriefMessage": "Unable to get value of TIMESTAMP BY OVER COLUMN"
LateInputEvent
- Причина: разница между временем приложения и временем поступления больше, чем окно допустимой задержки поступления.
- Уведомление на портале: нет
- Уровень ведения журнала ресурсов: информация
- Влияние: события позднего поступления входных данных обрабатываются в соответствии со значением параметра "Handle other events" (Обрабатывать другие события) в разделе "Упорядочение событий" в конфигурации задания. Дополнительные сведения см. в статье о политиках обработки времени.
- Сведения о журнале
- Время приложения и время поступления.
- Фактические полезные данные объемом до нескольких килобайт.
Сообщение об ошибке
"BriefMessage": "Input event with application timestamp '2019-01-01' and arrival time '2019-01-02' was sent later than configured tolerance."
EarlyInputEvent
- Причина: разница между временем приложения и временем поступления больше 5 минут.
- Уведомление на портале: нет
- Уровень ведения журнала ресурсов: информация
- Влияние: события раннего поступления входных данных обрабатываются в соответствии со значением параметра "Handle other events" (Обрабатывать другие события) в разделе "Упорядочение событий" в конфигурации задания. Дополнительные сведения см. в статье о политиках обработки времени.
- Сведения о журнале
- Время приложения и время поступления.
- Фактические полезные данные объемом до нескольких килобайт.
Сообщение об ошибке
"BriefMessage": "Input event arrival time '2019-01-01' is earlier than input event application timestamp '2019-01-02' by more than 5 minutes."
OutOfOrderEvent
- Причина: событие определяется как имеющее неправильный порядок в соответствии с заданным интервалом для событий, полученных в неправильном порядке.
- Уведомление на портале: нет
- Уровень ведения журнала ресурсов: информация
- Влияние: события, поступающие в неправильном порядке, обрабатываются в соответствии со значением параметра "Handle other events" (Обрабатывать другие события) в разделе "Упорядочение событий" в конфигурации задания. Дополнительные сведения см. в статье о политиках обработки времени.
- Сведения о журнале
- Фактические полезные данные объемом до нескольких килобайт.
Сообщение об ошибке
"Message": "Out of order event(s) received."
Ошибки выходных данных
Azure Stream Analytics выявляет ошибки выходных данных с запросом ввода-вывода или без него в приемнике вывода в зависимости от конфигурации. Например, отсутствие обязательного столбца, такого как PartitionKey
, при использовании выходных данных таблицы Azure может быть обнаружено без запроса ввода-вывода. В то же время для обнаружения нарушений ограничений в выходных данных SQL потребуется запрос ввода-вывода.
Некоторые ошибки данных могут быть обнаружены только после вызова к приемнику выходных данных, что способно замедлить обработку. Чтобы устранить эту проблему, измените конфигурацию задания или запрос, который вызывает ошибку данных.
OutputDataConversionError.RequiredColumnMissing
- Причина: обязательный столбец выходных данных не существует. Например, это может быть столбец, определенный как PartitionKey в таблице Azure.
- Уведомление на портале: да
- Уровень журнала ресурсов: предупреждение
- Влияние: все ошибки преобразования выходных данных, включая отсутствие обязательных столбцов, обрабатываются в соответствии со значением параметра Output Data Policy (Политика выходных данных).
- Сведения о журнале
- Имя столбца и идентификатор либо часть записи.
Сообщение об ошибке
"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
- Причина: значение столбца не соответствует выходным данным. Например, имя столбца не является допустимым столбцом таблицы Azure.
- Уведомление на портале: да
- Уровень журнала ресурсов: предупреждение
- Влияние: все ошибки преобразования выходных данных, включая недопустимые имена столбцов, обрабатываются в соответствии со значением параметра Output Data Policy (Политика выходных данных).
- Сведения о журнале
- Имя столбца и идентификатор либо часть записи.
Сообщение об ошибке
"Message": "Invalid property name #deviceIdValue. Please refer MSDN for Azure table property naming convention."
OutputDataConversionError.TypeConversionError
- Причина: столбец в выходных данных не может быть преобразован к допустимому типу. Например, значение столбца несовместимо с ограничениями или типами, заданными в таблице SQL.
- Уведомление на портале: да
- Уровень журнала ресурсов: предупреждение
- Влияние: все ошибки преобразования выходных данных, включая ошибки преобразования типов, обрабатываются в соответствии со значением параметра Output Data Policy (Политика выходных данных).
- Сведения о журнале
- Имя столбца.
- Идентификатор или часть записи.
Сообщение об ошибке
"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
- Причина: значение сообщения больше, чем поддерживаемый размер выходных данных. Например, для выходных данных концентратора событий запись больше 1 МБ.
- Уведомление на портале: да
- Уровень журнала ресурсов: предупреждение
- Влияние: все ошибки преобразования выходных данных, включая превышение допустимого размера записи, обрабатываются в соответствии со значением параметра Output Data Policy (Политика выходных данных).
- Сведения о журнале
- Идентификатор или часть записи.
Сообщение об ошибке
"BriefMessage": "Single output event exceeds the maximum message size limit allowed (262144 bytes) by Event Hub."
OutputDataConversionError.DuplicateKey
- Причина: запись уже содержит столбец с тем же именем, что и системный столбец. Например, в выходных данных CosmosDB есть столбец ID, когда используется другой столбец идентификатора.
- Уведомление на портале: да
- Уровень журнала ресурсов: предупреждение
- Влияние: все ошибки преобразования выходных данных, включая дублирующиеся ключ, обрабатываются в соответствии со значением параметра Output Data Policy (Политика выходных данных).
- Сведения о журнале
- Имя столбца.
- Идентификатор или часть записи.
"BriefMessage": "Column 'devicePartitionKey' is being mapped to multiple columns."