قوائم انتظار ناقل الخدمة الناتجة من Azure Stream Analytics

توفر قوائم انتظار حافلة الخدمة تسليم رسالة FIFO إلى واحد أو أكثر من المستهلكين المتنافسين. عادةً ما يتم استلام الرسائل ومعالجتها من قِبل أجهزة الاستقبال بالترتيب الزمني الذي تمت إضافتها به إلى قائمة الانتظار. يتم استلام كل رسالة ومعالجتها من قِبل مستهلك واحد فقط.

في مستوى التوافق 1.2، يستخدم Azure Stream Analytics بروتوكول المراسلة المتقدم لبروتوكول انتظار الرسائل (AMQP) للكتابة إلى قوائم انتظار ومواضيع ناقل الخدمة. يمكنك AMQP من إنشاء تطبيقات مختلطة عبر الأنظمة الأساسية باستخدام بروتوكول قياسي مفتوح.

تكوين الإخراج

يسرد الجدول التالي أسماء الخصائص وأوصافها لإنشاء إخراج قائمة انتظار.

اسم الخاصية الوصف
اسم مستعار للإخراج اسم مألوف يُستخدم في الاستعلامات لتوجيه إخراج الاستعلام إلى قائمة انتظار "Service Bus".
مساحة اسم Service Bus حاوية لمجموعة من كيانات المراسلة.
⁧⁩اسم قائمة الانتظار⁧⁩ اسم قائمة انتظار Service Bus.
اسم نهج قائمة الانتظار عند إنشاء قائمة انتظار، يمكنك أيضا إنشاء نهج وصول مشترك في علامة التبويب تكوين في قائمة الانتظار . تحتوي كل سياسة وصول مشتركة على اسم وأذونات تقوم بتعيينها ومفاتيح وصول.
مفتاح نهج قائمة الانتظار مفتاح الوصول المشترك المستخدم لمصادقة الوصول إلى مساحة اسم ناقل الخدمة.
تنسيق تسلسل الأحداث تنسيق التسلسل لبيانات الإخراج. يتم دعم JSON وCSV وAvro.
الترميز بالنسبة إلى CSV وJSON، فإن تنسيق UTF-8 هو تنسيق الترميز الوحيد المدعوم في الوقت الحالي.
المحدِد ينطبق فقط على تسلسل CSV. يدعم Stream Analytics عددا من المحددات الشائعة لتسلسل البيانات بتنسيق CSV. القيم المدعومة هي الفاصلة، والفاصلة المنقوطة، والمسافة، وعلامة الجدولة، والشريط العمودي.
تنسيق ينطبق فقط على نوع JSON. يحدد الخط المنفصل أن الإخراج يتم تنسيقه عن طريق فصل كل كائن JSON بواسطة سطر جديد. إذا قمت بتحديد خط منفصل، قراءة JSON كائنا واحدا في كل مرة. المحتوى بأكمله في حد ذاته لن يكون JSON صالحا. يحدد الصفيف أن الإخراج منسق كصفيف من كائنات JSON.
أعمدة الملكية ‏‏اختياري. أعمدة مفصولة بفواصل يجب إرفاقها كخصائص مستخدم للرسالة الصادرة بدلاً من الحمولة. مزيد من المعلومات حول هذه الميزة موجودة في القسم خصائص بيانات التعريف المخصصة للإخراج.
أعمدة خصائص النظام ‏‏اختياري. أزواج القيم الرئيسية لخصائص النظام وأسماء الأعمدة المقابلة التي يجب إرفاقها بالرسالة الصادرة بدلاً من الحمولة.

يعتمد عدد الأقسام على رمز SKU لناقل الخدمة وحجمه. مفتاح القسم هو قيمة عدد صحيح فريد لكل قسم.

التقسيم

يتم اختيار التقسيم تلقائيا. يعتمد عدد الأقسام على رمز SKU لناقل الخدمة وحجمه. مفتاح القسم هو قيمة عدد صحيح فريد لكل قسم. عدد كتاب الإخراج هو نفسه عدد الأقسام في قائمة انتظار الإخراج.

حجم دفعة الإخراج

الحد الأقصى لحجم الرسالة هو 256 كيلوبايت لكل رسالة للطبقة القياسية و 1 ميغابايت للطبقة Premium. لمزيد من المعلومات، راجع حدود ناقل الخدمة. للتحسين، استخدم حدثا واحدا لكل رسالة.

خصائص بيانات التعريف المخصصة للإخراج

يمكنك إرفاق أعمدة الاستعلام كخصائص مستخدم إلى رسائلك الصادرة. لا تدخل هذه الأعمدة في الحمولة. الخصائص موجودة في شكل قاموس على رسالة الإخراج. المفتاح هو اسم العمود والقيمة هي قيمة العمود في قاموس الخصائص. يتم دعم جميع أنواع بيانات Stream Analytics باستثناء Record وArray.

في المثال التالي، تتم إضافة الحقول DeviceIdDeviceStatus إلى بيانات التعريف.

  1. استخدم الاستعلام التالي:

    select *, DeviceId, DeviceStatus from iotHubInput
    
  2. تكوين DeviceId,DeviceStatus كأعمدة خاصية في الإخراج.

    Property columns

الصورة التالية هي لخصائص رسالة الإخراج المتوقعة التي تم فحصها في EventHub باستخدام مستكشف ناقل الخدمة.

Event custom properties

خصائص النظام

يمكنك إرفاق أعمدة الاستعلام كخصائص النظام برسائل قائمة انتظار ناقل الخدمة الصادرة أو رسائل الموضوع.

لا تنتقل هذه الأعمدة إلى الحمولة بدلا من ذلك ، يتم ملء خاصية نظام BrokeredMessage المقابلة بقيم عمود الاستعلام. يتم دعم خصائص النظام هذه - MessageId, ContentType, Label, PartitionKey, ReplyTo, SessionId, CorrelationId, To, ForcePersistence, TimeToLive, ScheduledEnqueueTimeUtc.

يتم تحليل قيم السلسلة الخاصة بهذه الأعمدة كنوع قيمة لخاصية النظام المقابلة ويتم التعامل مع أي حالات فشل في التحليل على أنها أخطاء في البيانات. يتم توفير هذا الحقل كتنسيق كائن JSON. التفاصيل حول هذا التنسيق هي كما يلي:

  • محاط بأقواس معقوفة {}.
  • مكتوبة في أزواج مفتاح/قيمة.
  • يجب أن تكون المفاتيح والقيم عبارة عن سلاسل.
  • المفتاح هو اسم خاصية النظام والقيمة هي اسم عمود الاستعلام.
  • المفاتيح والقيم مفصولة بنقطتين.
  • يتم فصل كل زوج مفتاح/قيمة بفاصلة.

يوضح هذا كيفية استخدام هذه الخاصية -

  • الاستعلام: select *, column1, column2 INTO queueOutput FROM iotHubInput
  • أعمدة خصائص النظام: { "MessageId": "column1", "PartitionKey": "column2"}

يؤدي هذا إلى تعيين MessageId على رسائل قائمة انتظار Service Bus مع قيم column1 ويتم تعيين PartitionKey مع قيم column2.

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