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."

下一步