Azure 串流分析資料錯誤

資料錯誤發生在 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."

下一步