Azure 串流分析資料錯誤
資料錯誤是處理資料時發生的錯誤。 這些錯誤最常發生在資料取消序列化、序列化和寫入作業期間。 發生資料錯誤時,串流分析會將詳細資訊和範例事件寫入至資源記錄。 在您的作業中啟用診斷記錄,以取得這些額外的詳細資料。 在某些情況下,也會透過入口網站通知來提供這項資訊的摘要。
本文概述輸入和輸出資料錯誤的不同錯誤類型、原因和資源記錄詳細資料。
資源記錄結構描述
請參閱使用診斷記錄對 Azure 串流分析進行疑難排解,以查看資源記錄的結構描述。 下列 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、偏移和序號。
錯誤訊息
"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 有名稱重複的資料行。
- 提供入口網站通知:是
- 資源記錄層級:警告
- 影響:具有任何還原序列化錯誤的訊息只要包含無效的標頭,都會從輸入中卸除。
- 記錄詳細資料
- 輸入訊息識別碼。
- 實際承載最多達數 KB。
錯誤訊息
"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 BY 定義的輸入資料行不存在。
- 提供入口網站通知:是
- 資源記錄層級:警告
- 影響:遺漏資料行的事件會從輸入中卸除。
- 記錄詳細資料
- 輸入訊息識別碼。
- 遺漏的資料行名稱。
- 實際承載最多達數 KB。
錯誤訊息
"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。
- 提供入口網站通知:是
- 資源記錄層級:警告
- 影響:在發生不正確資料錯誤之後,訊息中的所有事件都會從輸入中卸除。
- 記錄詳細資料
- 輸入訊息識別碼。
- 實際承載最多達數 KB。
錯誤訊息
"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 運算式的值無法轉換成日期時間。
- 提供入口網站通知:是
- 資源記錄層級:警告
- 影響:從輸入中卸除具有無效輸入時間戳記的事件。
- 記錄詳細資料
- 輸入訊息識別碼。
- 錯誤訊息。
- 實際承載最多達數 KB。
錯誤訊息
"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。
- 提供入口網站通知:是
- 資源記錄層級:警告
- 影響:從輸入中卸除具有無效輸入時間戳記索引鍵的事件。
- 記錄詳細資料
- 實際承載最多達數 KB。
錯誤訊息
"BriefMessage": "Unable to get value of TIMESTAMP BY OVER COLUMN"
LateInputEvent
- 原因:應用程式時間與抵達時間之間的差異大於延遲抵達容錯時間範圍。
- 提供入口網站通知:否
- 資源記錄層級:資訊
- 影響:延遲輸入事件會根據作業設定的 [事件排序] 區段中的 [處理其他事件] 設定來處理。 如需詳細資訊,請參閱時間處理原則。
- 記錄詳細資料
- 應用程式時間和抵達時間。
- 實際承載最多達數 KB。
錯誤訊息
"BriefMessage": "Input event with application timestamp '2019-01-01' and arrival time '2019-01-02' was sent later than configured tolerance."
EarlyInputEvent
- 原因:應用程式時間與抵達時間之間的差異大於 5 分鐘。
- 提供入口網站通知:否
- 資源記錄層級:資訊
- 影響:早期輸入事件會根據作業設定的 [事件排序] 區段中的 [處理其他事件] 設定來處理。 如需詳細資訊,請參閱時間處理原則。
- 記錄詳細資料
- 應用程式時間和抵達時間。
- 實際承載最多達數 KB。
錯誤訊息
"BriefMessage": "Input event arrival time '2019-01-01' is earlier than input event application timestamp '2019-01-02' by more than 5 minutes."
OutOfOrderEvent
- 原因:事件會根據定義的順序錯亂容錯時間範圍,被視為順序錯亂。
- 提供入口網站通知:否
- 資源記錄層級:資訊
- 影響:順序錯亂事件會根據作業設定的 [事件排序] 區段中的 [處理其他事件] 設定來處理。 如需詳細資訊,請參閱時間處理原則。
- 記錄詳細資料
- 實際承載最多達數 KB。
錯誤訊息
"Message": "Out of order event(s) received."
輸出資料錯誤
Azure 串流分析可以根據設定來識別輸出資料錯誤,而不一定要對輸出接收提出 I/O 要求。 例如,在使用 Azure 資料表輸出時若遺漏必要的資料行 (如 PartitionKey
),可在不提出 I/O 要求的情況下加以識別。 不過,SQL 輸出中的條件約束違規需要 I/O 要求。
有幾種資料錯誤必須在呼叫輸出接收之後才能偵測到,這可能會使處理速度變慢。 若要解決此問題,請變更作業的設定或造成資料錯誤的查詢。
OutputDataConversionError.RequiredColumnMissing
- 原因:輸出所需的資料行不存在。 例如,定義為 Azure 資料表 PartitionKey 的資料行不存在。
- 提供入口網站通知:是
- 資源記錄層級:警告
- 影響:根據 [輸出資料原則] 設定,會處理所有的輸出資料轉換錯誤,包括遺漏的必要資料行在內。
- 記錄詳細資料
- 資料行的名稱,以及記錄識別碼或記錄的一部分。
錯誤訊息
"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 資料表資料行。
- 提供入口網站通知:是
- 資源記錄層級:警告
- 影響:根據 [輸出資料原則] 設定,會處理所有的輸出資料轉換錯誤,包括無效的資料行名稱在內。
- 記錄詳細資料
- 資料行的名稱,以及記錄識別碼或記錄的一部分。
錯誤訊息
"Message": "Invalid property name #deviceIdValue. Please refer MSDN for Azure table property naming convention."
OutputDataConversionError.TypeConversionError
- 原因:輸出中的資料行無法轉換成有效類型。 例如,資料行的值與 SQL 資料表中定義的條件約束或類型不相容。
- 提供入口網站通知:是
- 資源記錄層級:警告
- 影響:根據 [輸出資料原則] 設定,會處理所有的輸出資料轉換錯誤,包括類型轉換錯誤在內。
- 記錄詳細資料
- 資料行的名稱。
- 記錄識別碼或記錄的一部分。
錯誤訊息
"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 MB。
- 提供入口網站通知:是
- 資源記錄層級:警告
- 影響:根據 [輸出資料原則] 設定,會處理所有的輸出資料轉換錯誤,包括超出大小限制的記錄在內。
- 記錄詳細資料
- 記錄識別碼或記錄的一部分。
錯誤訊息
"BriefMessage": "Single output event exceeds the maximum message size limit allowed (262144 bytes) by Event Hub."
OutputDataConversionError.DuplicateKey
- 原因:記錄已包含與系統資料行同名的資料行。 例如,CosmosDB 輸出中包含名為識別碼的資料行,但另外也有一個識別碼資料行。
- 提供入口網站通知:是
- 資源記錄層級:警告
- 影響:根據 [輸出資料原則] 設定,會處理所有的輸出資料轉換錯誤,包括重複的索引鍵在內。
- 記錄詳細資料
- 資料行的名稱。
- 記錄識別碼或記錄的一部分。
"BriefMessage": "Column 'devicePartitionKey' is being mapped to multiple columns."