資料錯誤發生在 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
}
輸入資料錯誤
輸入反序列化錯誤。無效的壓縮類型
- 原因:你選擇的輸入壓縮類型與資料不符。
- 提供入口網站通知:是
- 資源記錄層級:警告
- 影響:Stream Analytics 會從輸入中丟棄任何反序列化錯誤(包括壓縮類型無效)的訊息。
- 日誌詳情:
- 輸入訊息識別碼。 對於 Azure 事件中樞,識別碼為 PartitionID、Offset 和 Sequence Number。
錯誤訊息
"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
- 原因:你用或透過
TIMESTAMP BY定義CREATE TABLE的輸入欄位不存在。 - 提供入口網站通知:是
- 資源記錄層級:警告
- 影響:缺少資料行的事件會從輸入中被捨棄。
- 日誌詳情:
- 輸入訊息識別碼。
- 遺漏的資料行名稱。
- 實際酬載高達幾 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"
輸入反序列化錯誤.類型轉換錯誤
- 原因:Stream Analytics 無法將輸入轉換成你在語句中
CREATE TABLE指定的類型。 - 提供入口網站通知:是
- 資源記錄層級:警告
- 影響:Stream Analytics 會從輸入中移除帶有類型轉換錯誤的事件。
- 日誌詳情:
- 輸入訊息識別碼。
- 資料行名稱和預期類型。
錯誤訊息
"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."
輸入解序器錯誤.無效資料
- 原因:輸入資料格式不正確。 例如,輸入不是有效的 JSON。
- 提供入口網站通知:是
- 資源記錄層級:警告
- 影響:Stream Analytics 在遇到無效資料錯誤後,會刪除訊息中的所有事件。
- 日誌詳情:
- 輸入訊息識別碼。
- 實際酬載高達幾 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
- 原因:申請時間與抵達時間的差距超過五分鐘。
- 提供入口網站通知:否
- 資源記錄層級:資訊
- 影響:早期輸入事件會根據作業設定的 [事件排序] 區段中的 [處理其他事件] 設定來處理。 欲了解更多資訊,請參閱 時間處理政策。
- 日誌詳情:
- 應用程式時間和抵達時間。
- 實際酬載高達幾 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 要求的情況下,識別輸出資料中的錯誤。 例如,Stream Analytics 可以在使用 Azure Table 輸出時,識別缺少的必填欄位PartitionKey,例如 ,且無需 I/O 請求。 不過,SQL 輸出中的條件約束違規需要 I/O 要求。
串流分析只有在呼叫輸出匯後才能偵測多項資料錯誤,這會減緩處理速度。 要解決這個問題,請更改你工作的設定或導致資料錯誤的查詢。
輸出資料轉換錯誤:缺少必要欄位
- 原因:輸出所需的資料行不存在。 例如,定義為 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."
輸出資料轉換錯誤。欄位名稱無效
- 原因:資料行值不符合輸出的規範。 例如,資料行名稱不是有效的 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."
輸出資料轉換錯誤.記錄超出大小限制
- 原因:訊息的值大於支援的輸出大小。 例如,對於事件中樞輸出,記錄大小超過 1 MB。
- 提供入口網站通知功能:是
- 資源記錄層級:警告
- 影響:根據 [輸出資料原則] 設定,會處理所有的輸出資料轉換錯誤,包括超出大小限制的記錄在內。
- 日誌詳情:
- 記錄識別碼或記錄的一部分。
錯誤訊息
"BriefMessage": "Single output event exceeds the maximum message size limit allowed (262144 bytes) by Event Hub."
輸出資料轉換錯誤.重複鍵
- 原因:紀錄中已有與系統欄位名稱相同的欄位。 例如,當識別碼資料行對應至不同資料行時,具有名為識別碼之資料行的 Azure Cosmos DB 輸出。
- 提供入口網站通知:是
- 資源記錄層級:警告
- 影響:所有輸出資料轉換錯誤(包括重複鍵)都會依照 輸出資料原則 設定處理。
- 日誌詳情:
- 欄名稱。
- 記錄識別碼或記錄的一部分。
錯誤訊息
"BriefMessage": "Column 'devicePartitionKey' is being mapped to multiple columns."