أخطاء بيانات Azure Stream Analytics

إن أخطاء البيانات أخطاء تحدث في أثناء معالجة البيانات. وتحدث هذه الأخطاء غالباً في أثناء عمليات إلغاء تسلسل البيانات وإنشاء تسلسل لها وكتابتها. عند حدوث أخطاء في البيانات، يكتب Stream Analytics معلومات مفصلة وأمثلة للأحداث إلى سجلات الموارد. تمكين سجلات التشخيص في المهمة للحصول على هذه التفاصيل الإضافية. في بعض الحالات، يتوفر أيضًا ملخص لهذه المعلومات من خلال إعلامات المدخل.

توضح هذه المقالة تفاصيل أنواع الأخطاء المختلفة وأسبابها وسجل الموارد في أخطاء بيانات الإدخال والإخراج.

مخطط سجلات الموارد

راجع استكشاف أخطاء Azure Stream Analytics وإصلاحها باستخدام سجلات التشخيص لمراجعة مخطط سجلات الموارد. فيما يلي مثال على خطأ في البيانات في قيمة JSON في الحقل Properties لسجل الموارد.

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

  • السبب: لا يتطابق نوع ضغط الإدخال المحدد مع البيانات.
  • إعلام المدخل المتوفر: نعم
  • مستوى سجل الموارد: تحذير
  • التأثير: تسقط الرسائل التي تحتوي على أي أخطاء بإلغاء التسلسل شاملة نوع الضغط غير الصالح من الإدخال.
  • تفاصيل السجل
    • معرف رسالة الإدخال. في Event Hub، المعرف هو 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 على أعمدة بأسماء مكررة.
  • إعلام المدخل المتوفر: نعم
  • مستوى سجل الموارد: تحذير
  • التأثير: تسقط الرسائل التي تحتوي على أي أخطاء بإلغاء التسلسل شاملة عنوان غير صالح من الإدخال.
  • تفاصيل السجل
    • معرف رسالة الإدخال.
    • يصل حجم البيانات الأساسية إلى بضعة كيلوبايتات.

رسالة الخطأ

"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

  • السبب: يتعذر تحويل الإدخال إلى النوع المحدد في عبارة 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 صالح.
  • إعلام المدخل المتوفر: نعم
  • مستوى سجل الموارد: تحذير
  • التأثير: تسقط جميع الأحداث الواردة في الرسالة بعد حدوث خطأ البيانات غير الصالحة من الإدخال.
  • تفاصيل السجل
    • معرف رسالة الإدخال.
    • يصل حجم البيانات الأساسية إلى بضعة كيلوبايتات.

رسائل خطأ

"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 إلى التاريخ والوقت.
  • إعلام المدخل المتوفر: نعم
  • مستوى سجل الموارد: تحذير
  • التأثير: تسقط الأحداث التي بها الطابع الزمني للإدخال غير الصالح من الإدخال.
  • تفاصيل السجل
    • معرف رسالة الإدخال.
    • رسالة الخطأ.
    • يصل حجم البيانات الأساسية إلى بضعة كيلوبايتات.

رسالة الخطأ

"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

  • السبب: الفرق بين وقت التطبيق ووقت الوصول أكبر من إطار التسامح مع الوصول المتأخر.
  • إعلام المدخل المتوفر: لا
  • مستوى سجل الموارد: معلومات
  • التأثير: تعالَج أحداث الإدخال المتأخرة وفقاً لإعداد معالجة الأحداث الأخرى «Handle other events» في قسم «Event Ordering» في تكوين المهمة. لمزيد من المعلومات، راجع نهج معالجة الوقت.
  • تفاصيل السجل
    • وقت التطبيق ووقت الوصول.
    • يصل حجم البيانات الأساسية إلى بضعة كيلوبايتات.

رسالة الخطأ

"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» في قسم «Event Ordering» في تكوين المهمة. لمزيد من المعلومات، راجع نهج معالجة الوقت.
  • تفاصيل السجل
    • وقت التطبيق ووقت الوصول.
    • يصل حجم البيانات الأساسية إلى بضعة كيلوبايتات.

رسالة الخطأ

"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» في قسم «Event Ordering» في تكوين المهمة. لمزيد من المعلومات، راجع نهج معالجة الوقت.
  • تفاصيل السجل
    • يصل حجم البيانات الأساسية إلى بضعة كيلوبايتات.

رسالة الخطأ

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

أخطاء بيانات الإخراج

يمكن أن يحدد Azure Stream Analytics أخطاء بيانات الإخراج مع أو من دون طلب الإدخال/الإخراج إلى متلقي الإخراج اعتماداً على التكوين. على سبيل المثال، يمكن تحديد فقدان العمود المطلوب، مثل PartitionKey، عند استخدام إخراج Azure Table دون طلب الإدخال/الإخراج. ومع ذلك، خرق القيد في إخراج SQL يشترط طلب الإدخال/الإخراج.

ثمة أخطاء بيانات عديدة لا يمكن الكشف عنها إلا بعد إجراء استدعاء لمتلقي الإخراج، ما قد يبطئ عملية المعالجة. لحل هذه المشكلة، قم بتغيير تكوين المهمة أو الاستعلام الذي يسبب خطأ البيانات.

OutputDataConversionError.RequiredColumnMissing

  • السبب: العمود المطلوب للإخراج غير موجود. على سبيل المثال، العمود المعرف على أنه Azure Table PartitionKey غير موجود.
  • إعلام المدخل المتوفر: نعم
  • مستوى سجل الموارد: تحذير
  • التأثير: تعالَج جميع أخطاء تحويل بيانات الإخراج بما في ذلك العمود المطلوب المفقود وفقاً لإعداد نهج بيانات الإخراج Output Data Policy.
  • تفاصيل السجل
    • اسم العمود وإما معرف السجل أو جزء من السجل.

رسالة الخطأ

"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.
  • تفاصيل السجل
    • اسم العمود وإما معرف السجل أو جزء من السجل.

رسالة الخطأ

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

OutputDataConversionError.TypeConversionError

  • السبب: لا يمكن تحويل العمود إلى نوع صالح في الإخراج. على سبيل المثال، قيمة العمود لا تتوافق مع القيود أو النوع المحدد في جدول SQL.
  • إعلام المدخل المتوفر: نعم
  • مستوى سجل الموارد: تحذير
  • التأثير: تعالَج جميع أخطاء تحويل بيانات الإخراج بما في ذلك خطأ تحويل النوع وفقاً لإعداد Output Data Policy.
  • تفاصيل السجل
    • اسم العمود.
    • إما معرف السجل أو جزء من السجل.

رسالة الخطأ

"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 لإخراج Event Hub.
  • إعلام المدخل المتوفر: نعم
  • مستوى سجل الموارد: تحذير
  • التأثير: تعالَج جميع أخطاء تحويل بيانات الإخراج بما في ذلك السجل الذي تجاوز حد الحجم وفقاً لإعداد Output Data Policy.
  • تفاصيل السجل
    • إما معرف السجل أو جزء من السجل.

رسالة الخطأ

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

OutputDataConversionError.DuplicateKey

  • السبب: يحتوي السجل بالفعل على عمود بنفس اسم عمود النظام. على سبيل المثال، إخراج CosmosDB بعمود يسمى ID بينما العمود ID هو عمود مختلف.
  • إعلام المدخل المتوفر: نعم
  • مستوى سجل الموارد: تحذير
  • التأثير: تعالَج جميع أخطاء تحويل بيانات الإخراج بما في ذلك المفتاح المكرر وفقاً لإعداد Output Data Policy.
  • تفاصيل السجل
    • اسم العمود.
    • إما معرف السجل أو جزء من السجل.
"BriefMessage": "Column 'devicePartitionKey' is being mapped to multiple columns."

الخطوات التالية