データエラーは、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
}
入力データ エラー
入力デシリアライザエラー.無効な圧縮タイプ
- 原因:選択した入力圧縮タイプがデータと一致しない。
- ポータル通知提供:はい
- リソース ログ レベル:警告
- 影響:Stream Analyticsは、無効な圧縮タイプを含むデシリアライズエラーを含むメッセージを入力から削除します。
- ログ詳細:
- 入力メッセージ識別子。 Azure Event Hubsの場合、識別子はPartitionId、Offset、シーケンス番号です。
エラー メッセージ
"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 に名前が重複する列があります。
- ポータル通知提供:はい
- リソース ログ レベル:警告
- 影響:無効ヘッダーを含むデシリアル化エラーを含むメッセージは入力から削除されます。
- ログ詳細:
- 入力メッセージの識別子。
- 実際のペイロードは最大で数キロバイトです。
エラー メッセージ
"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で定義した入力列が存在しません。 - ポータル通知提供:はい
- リソース ログ レベル:警告
- 影響:列の欠落を含むイベントは入力から削除されます。
- ログ詳細:
- 入力メッセージの識別子。
- 不足している列の名前。
- 実際のペイロードは最大で数キロバイトです。
エラー メッセージ
"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
- 原因: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は、無効なデータエラーに遭遇した後、メッセージ内のすべてのイベントを除外します。
- ログ詳細:
- 入力メッセージ識別子。
- 実際のペイロードは最大で数キロバイトです。
エラー メッセージ
"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"
無効な入力タイムスタンプ
- 原因: TIMESTAMP BY 式の値を datetime に変換できません。
- ポータル通知提供:はい
- リソース ログ レベル:警告
- 影響:無効な入力タイムスタンプを含むイベントは入力から削除されます。
- ログ詳細:
- 入力メッセージの識別子。
- エラー メッセージ。
- 実際のペイロードは最大で数キロバイトです。
エラー メッセージ
"BriefMessage": "Unable to get timestamp for resource 'https:\\/\\/exampleBlob.blob.core.windows.net\\/inputfolder\\/csv.txt ' due to error 'Cannot convert string to datetime'"
無効な入力タイムスタンプキー
- 原因: TIMESTAMP BY OVER timestampColumn の値が NULL です。
- ポータル通知提供:はい
- リソース ログ レベル:警告
- 影響:無効な入力タイムスタンプ キーを含むイベントは入力から削除されます。
- ログ詳細:
- 実際のペイロードは数キロバイトまでです。
エラー メッセージ
"BriefMessage": "Unable to get value of TIMESTAMP BY OVER COLUMN"
LateInputEvent
- 原因:施布時間と到着時間の差が遅延許容範囲を上回る。
- ポータル通知提供:いいえ
- リソース ログ レベル: 情報
- 影響: 遅延入力イベントは、ジョブ構成の [イベント順序] セクションの [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分以上大きい。
- ポータル通知提供:いいえ
- リソース ログ レベル: 情報
- 影響: 早期入力イベントは、ジョブ構成の [イベント順序] セクションの [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
- 原因:イベントが定義された順序の乱れ許容範囲に従って順序が狂っている。
- ポータル通知提供:いいえ
- リソース ログ レベル: 情報
- 影響:ジョブは、ジョブ構成のイベント順序付けセクションにある「Handle other events」設定に従って、順序が乱れたイベントを処理します。 詳細については 「時間管理ポリシー」をご覧ください。
- ログ詳細:
- 実際のペイロードは最大で数キロバイトです。
エラー メッセージ
"Message": "Out of order event(s) received."
出力データ エラー
Azure Stream Analytics では、構成に応じて、出力シンクへの I/O 要求の有無にかかわらず、出力データ エラーを特定できます。 例えば、Stream AnalyticsはAzure Table出力を使った際に、I/OリクエストなしにPartitionKeyなどの必要な列を特定できます。 ただし、SQL 出力の制約違反には、I/O 要求が必要です。
ストリームアナリティクスは出力シンクを呼び出した後にのみ複数のデータエラーを検出できるため、処理速度が遅くなることがあります。 この問題を解決するには、ジョブの設定やデータエラーを引き起こすクエリを変更してください。
出力データ変換エラー: 必須の列がありません
- 原因: 出力に必要な列が存在しません。 たとえば、Azure Table PartitionKey として定義されている列は存在しません。
- ポータル通知提供:はい
- リソース ログ レベル:警告
- 影響: 出力データポリシー 設定は、必要な列の欠落を含むすべての出力データ変換エラーを処理します。
- ログ詳細:
- 列の名前と、レコード 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."
出力データ変換エラー.列名が無効です
- 原因: 列の値が出力に準拠していません。 たとえば、列名が有効な Azure テーブル列ではありません。
- ポータル通知提供:はい
- リソース ログ レベル:警告
- 影響: 無効な列名を含むすべての出力データ変換エラーは、[Output Data Policy](出力データ ポリシー) の設定に従って処理されます。
- ログ詳細:
- 列の名前と、レコード ID またはレコードの一部。
エラー メッセージ
"Message": "Invalid property name #deviceIdValue. Please refer MSDN for Azure table property naming convention."
出力データ変換エラー.型変換エラー
- 原因: 列を出力で有効な型に変換できません。 たとえば、列の値が、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."
出力データ変換エラー.レコードサイズ制限を超えました
- 原因: メッセージの値がサポートされている出力サイズを超えています。 例えば、イベントハブの出力でレコードが1MBを超える場合、
- ポータル通知提供:はい
- リソース ログ レベル:警告
- 影響: レコードのサイズ制限超過を含むすべての出力データ変換エラーは、[Output Data Policy](出力データ ポリシー) の設定に従って処理されます。
- ログ詳細:
- レコード ID またはレコードの一部。
エラー メッセージ
"BriefMessage": "Single output event exceeds the maximum message size limit allowed (262144 bytes) by Event Hub."
データ出力変換エラー.重複キー
- 原因:レコードにはすでにシステムカラムと同じ名前のカラムが含まれています。 例えば、Azure Cosmos DBはIDという名前の列を出力しますが、その列が別の列に割り当てられています。
- ポータル通知提供:はい
- リソース ログ レベル:警告
- 影響: 重複キーを含むすべての出力データ変換エラーは、[Output Data Policy](出力データ ポリシー) の設定に従って処理されます。
- ログ詳細:
- 列の名前です。
- レコード ID またはレコードの一部。
エラー メッセージ
"BriefMessage": "Column 'devicePartitionKey' is being mapped to multiple columns."