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

  • 原因: 選択された入力圧縮タイプがデータに一致しません。
  • ポータル通知提供:はい
  • リソース ログ レベル:警告
  • 影響:無効な圧縮の種類を含む、すべての逆シリアル化エラーを含むメッセージは入力から削除されます。
  • ログの詳細
    • 入力メッセージ ID。 Event Hub の場合、識別子はパーティション ID、オフセット、シーケンス番号になります。

エラー メッセージ

"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 に名前が重複する列があります。
  • ポータル通知提供:はい
  • リソース ログ レベル:警告
  • 影響:無効なヘッダーを含む、すべての逆シリアル化エラーを含むメッセージは入力から削除されます。
  • ログの詳細
    • 入力メッセージ ID。
    • 実際のペイロードは最大で数キロバイトです。

エラー メッセージ

"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 で定義された入力列が存在しません。
  • ポータル通知提供:はい
  • リソース ログ レベル:警告
  • 影響:列の欠落を含むイベントは入力から削除されます。
  • ログの詳細
    • 入力メッセージ ID。
    • 不足している列の名前。
    • 実際のペイロードは最大で数キロバイトです。

エラー メッセージ

"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 ステートメントで指定された型に入力を変換できません。
  • ポータル通知提供:はい
  • リソース ログ レベル:警告
  • 影響:型変換エラーを含むイベントは入力から削除されます。
  • ログの詳細
    • 入力メッセージ ID。
    • 列の名前と予想される型。

エラー メッセージ

"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 ではありません。
  • ポータル通知提供:はい
  • リソース ログ レベル:警告
  • 影響:無効なデータ エラーが発生した後のメッセージ内のすべてのイベントは入力から削除されます。
  • ログの詳細
    • 入力メッセージ ID。
    • 実際のペイロードは最大で数キロバイトです。

エラー メッセージ

"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 に変換できません。
  • ポータル通知提供:はい
  • リソース ログ レベル:警告
  • 影響:無効な入力タイムスタンプを含むイベントは入力から削除されます。
  • ログの詳細
    • 入力メッセージ ID。
    • エラー メッセージ。
    • 実際のペイロードは最大で数キロバイトです。

エラー メッセージ

"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

  • 原因: アプリケーション時間と到着時刻の差が到着遅延許容範期間を超えています。
  • ポータル通知提供:いいえ
  • リソース ログ レベル:Information
  • 影響: 遅延入力イベントは、ジョブ構成の [イベント順序] セクションの [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 分以上あります。
  • ポータル通知提供:いいえ
  • リソース ログ レベル:Information
  • 影響: 早期入力イベントは、ジョブ構成の [イベント順序] セクションの [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

  • 原因: 定義されている許容範囲が正しくないため、イベントが順序逸脱であると見なされます。
  • ポータル通知提供:いいえ
  • リソース ログ レベル:Information
  • 影響: 順不同のイベントは、ジョブ構成の [イベント順序] セクションの [Handle other events](他のイベントの処理) の設定に従って処理されます。 詳細については、時間処理ポリシーに関するページを参照してください。
  • ログの詳細
    • 実際のペイロードは最大で数キロバイトです。

エラー メッセージ

"Message": "Out of order event(s) received."

出力データ エラー

Azure Stream Analytics では、構成に応じて、出力シンクへの I/O 要求の有無にかかわらず、出力データ エラーを特定できます。 たとえば、Azure テーブル出力を使用するときに、PartitionKey などの必須の列が不足していることを、I/O 要求を行わずに特定できます。 ただし、SQL 出力の制約違反には、I/O 要求が必要です。

出力シンクへの呼び出しを行った後にのみ検出できるデータ エラーがいくつかあり、これにより、処理が遅くなる可能性があります。 これを解決するには、ジョブの構成またはデータ エラーを引き起こしているクエリを変更します。

OutputDataConversionError.RequiredColumnMissing

  • 原因: 出力に必要な列が存在しません。 たとえば、Azure Table PartitionKey として定義されている列が存在しません。
  • ポータル通知提供:はい
  • リソース ログ レベル:警告
  • 影響: 必須列の欠落を含むすべての出力データ変換エラーは、[Output Data Policy](出力データ ポリシー) の設定に従って処理されます。
  • ログの詳細
    • 列の名前と、レコード ID またはレコードの一部。

エラー メッセージ

"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](出力データ ポリシー) の設定に従って処理されます。
  • ログの詳細
    • 列の名前と、レコード ID またはレコードの一部。

エラー メッセージ

"Message": "Invalid property name #deviceIdValue. Please refer MSDN for Azure table property naming convention."

OutputDataConversionError.TypeConversionError

  • 原因: 列を出力で有効な型に変換できません。 たとえば、列の値が、SQL テーブルに定義されている制約や型と互換性がありません。
  • ポータル通知提供:はい
  • リソース ログ レベル:警告
  • 影響: 型変換エラーを含むすべての出力データ変換エラーは、[Output Data Policy](出力データ ポリシー) の設定に従って処理されます。
  • ログの詳細
    • 列の名前です。
    • レコード ID またはレコードの一部。

エラー メッセージ

"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 を超えています。
  • ポータル通知提供:はい
  • リソース ログ レベル:警告
  • 影響: レコードのサイズ制限超過を含むすべての出力データ変換エラーは、[Output Data Policy](出力データ ポリシー) の設定に従って処理されます。
  • ログの詳細
    • レコード ID またはレコードの一部。

エラー メッセージ

"BriefMessage": "Single output event exceeds the maximum message size limit allowed (262144 bytes) by Event Hub."

OutputDataConversionError.DuplicateKey

  • 原因: あるレコードに、System 列と同じ名前の列が既に含まれています。 たとえば、CosmosDB 出力に ID という名前の列がありますが、ID 列は別の列の名前です。
  • ポータル通知提供:はい
  • リソース ログ レベル:警告
  • 影響: 重複キーを含むすべての出力データ変換エラーは、[Output Data Policy](出力データ ポリシー) の設定に従って処理されます。
  • ログの詳細
    • 列の名前です。
    • レコード ID またはレコードの一部。
"BriefMessage": "Column 'devicePartitionKey' is being mapped to multiple columns."

次の手順