ما هي أنماط التكوين في Azure IoT Data Processor Preview؟
هام
معاينة عمليات Azure IoT - التي تم تمكينها بواسطة Azure Arc قيد المعاينة حاليا. يجب عدم استخدام برنامج المعاينة هذا في بيئات الإنتاج.
للحصول على الشروط القانونية التي تنطبق على ميزات Azure الموجودة في الإصدار التجريبي، أو المعاينة، أو التي لم يتم إصدارها بعد في التوفر العام، راجع شروط الاستخدام التكميلية لمعاينات Microsoft Azure.
عدة أنواع من التكوين شائعة في مراحل البنية الأساسية لبرنامج ربط العمليات التجارية المتعددة. توضح هذه المقالة أنماط تكوين المسار والدفعة والقوالب وإعادة المحاولة والمدة.
المسار
تستخدم العديد من مراحل البنية الأساسية لبرنامج ربط العمليات التجارية مسارا لتحديد موقع في الرسالة حيث يجب قراءة البيانات أو كتابتها إليها. لتعريف هذه المواقع، يمكنك استخدام Path
حقل يستخدم بناء جملة jq:
- يتم تعريف المسار كسلسلة في واجهة المستخدم، ويستخدم بناء جملة jq .
- يتم تعريف مسار بالنسبة لجذر رسالة معالج البيانات. يشير المسار
.
إلى الرسالة بأكملها. - تبدأ جميع المسارات ب
.
. - يمكن أن يكون كل جزء من المسار:
.<identifier>
لمفتاح كائن أبجدي رقمي مثل.topic
.."<identifier>"
لمفتاح عنصر عشوائي مثل."asset-id"
.["<identifier>"]
لمفتاح عنصر عشوائي مثل["asset-id"]
.[<index>]
لفهرس صفيف مثل[2]
.
- يمكن ربط الشرائح لتشكيل مسارات معقدة.
يجب أن تتوافق مقاطع المسار الفردية مع التعبيرات العادية التالية:
النمط | Regex | مثال |
---|---|---|
.<identifier> |
\.[a-zA-Z_][a-zA-Z0-9_]* |
.topic |
."<identifier>" |
\."(\\"\|[^"])*" |
."asset-id" |
["<identifier>"] |
\["(\\"\|[^"])*"\] |
["asset-id"] |
[<index>] |
\[-?[0-9]+\] |
[2] |
لمعرفة المزيد، راجع المسارات في دليل jq.
أمثلة المسار
المسارات التالية هي أمثلة تستند إلى بنية الرسالة لمعالج البيانات القياسي:
.systemProperties
ارجاع:{ "partitionKey": "foo", "partitionId": 5, "timestamp": "2023-01-11T10:02:07Z" }
.payload.humidity
ارجاع:10
.userProperties[0]
ارجاع:{ "key": "prop1", "value": "value1" }
.userProperties[0].value
ارجاع:value1
المدة
تتطلب عدة مراحل تعريف مدة الفترة الزمنية. على سبيل المثال، النوافذ في مرحلة تجميعية ومهلات في مرحلة الاستدعاء. تستخدم هذه المراحل حقلا Duration
لتمثيل هذه القيمة.
تستخدم العديد من مراحل البنية الأساسية لبرنامج ربط العمليات التجارية مدة زمنية. على سبيل المثال، تحتوي المرحلة التجميعية على خاصية windows وتحتوي مراحل الاستدعاء على خاصية المهلات. لتعريف هذه الفترة الزمنية Duration
، يمكنك استخدام حقل:
المدة هي قيمة سلسلة بالتنسيق <number><char><number><char>
التالي حيث يمكن أن يكون 'char':
h
:ساعهm
:دقيقهs
:الثانيهms
:ميلي ثانيهus
،µs
: ميكرو ثانيةns
: نانو ثانية
أمثلة المدة
2h
1h10m30s
3m9ms400ns
القوالب
تتطلب عدة مراحل تعريف سلسلة بمزيج من القيم الديناميكية والثابتة. تستخدم هذه المراحل قيم القالب .
تستخدم قوالب معالج البيانات بناء جملة Mustache لتعريف القيم الديناميكية في السلاسل.
قيم النظام الديناميكية المتوفرة للاستخدام في القوالب هي:
instanceId
: معرف مثيل معالج البيانات.pipelineId
: معرف البنية الأساسية لبرنامج ربط العمليات التجارية الذي تعد المرحلة جزءا منه.YYYY
: السنة الحالية.MM
: الشهر الحالي.DD
: التاريخ الحالي.HH
: الساعة الحالية.mm
: الدقيقة الحالية.
حاليا، يمكنك استخدام القوالب لتعريف مسارات الملفات في مرحلة الوجهة.
الحقول الثابتة والديناميكية
تتطلب بعض المراحل تعريف القيم التي يمكن أن تكون سلاسل ثابتة أو قيمة ديناميكية مشتقة Path
من في رسالة. لتعريف هذه القيم، يمكنك استخدام الحقول الثابتة أو الديناميكية .
تتم كتابة الحقل الثابت أو الديناميكي دائما ككائن مع type
حقل يحتوي على إحدى القيمتين: static
أو dynamic
. يختلف المخطط استنادا type
إلى .
الحقول الثابتة
التعريف الثابت هو قيمة ثابتة ل type
هي static
. يتم الاحتفاظ بالقيمة الفعلية في value
.
الحقل | نوع | الوصف | مطلوبة | افتراضي | مثال |
---|---|---|---|---|---|
النوع | سلسلة const | نوع الحقل. | نعم | - | static |
قيمة | أي | القيمة الثابتة التي يجب استخدامها للتكوين (عادة سلسلة). | نعم | - | "static" |
توضح الأمثلة التالية بعض تعريفات الحقول الثابتة:
{
"some-field": {
"type": "static",
"value": "some-static-value"
}
}
{
"some-boolean-field": {
"type": "static",
"value": true
}
}
{
"some-complex-field": {
"type": "static",
"value": {
"some": [
"nested",
"data"
]
}
}
}
الحقول الديناميكية
القيمة الثابتة ل type
هي dynamic
. القيمة هي مسار jq.
الحقل | نوع | الوصف | مطلوبة | افتراضي | مثال |
---|---|---|---|---|---|
النوع | سلسلة const | نوع الحقل | نعم | - | dynamic |
قيمة | مسار | المسار في كل رسالة حيث يمكن استرداد قيمة للحقل ديناميكيا. | نعم | - | .systemProperties.partitionKey |
يوضح المثال التالي تعريف حقل ديناميكي:
{
"some-field": {
"type": "dynamic",
"value": ".systemProperties.topic"
}
}
إعادة المحاولة
يمكن أن تستخدم المراحل التي تستدعي الخدمات الخارجية عمليات إعادة المحاولة للتعامل مع حالات الفشل المؤقتة وتحسين الموثوقية. يمكنك تجاوز نهج إعادة المحاولة الافتراضي عند تكوين مرحلة.
هناك أربعة نهج محتملة لإعادة المحاولة:
default
: نهج إعادة المحاولة الافتراضي هو استخدام إعادة محاولة التراجع الأسي مع ثلاث محاولات وفاصل إعادة المحاولة الأولي 500 مللي ثانية.none
: لا يتم تنفيذ أي محاولات.fixed
: يعيد نهج إعادة المحاولة الثابت محاولة عدد ثابت من المرات مع فاصل زمني ثابت بين كل إعادة محاولة.exponential
: يقوم نهج إعادة المحاولة الأسي بإعادة المحاولة لعدد ثابت من المرات مع فاصل زمني متزايد بشكل كبير بين كل إعادة محاولة.
إذا اخترت default
أو none
، فلن تحتاج إلى توفير أي تكوين إضافي. إذا اخترت fixed
أو exponential
، يجب توفير المزيد من التكوين:
ثابت
الحقل | نوع | الوصف | مطلوب؟ | الإعداد الافتراضي | مثال |
---|---|---|---|---|---|
type |
سلسلة | اسم نوع إعادة المحاولة: fixed |
نعم | غير متوفر | fixed |
interval |
المدة | الفترة الزمنية الأولية بين كل إعادة محاولة. | لا | 500ms |
2s |
maxRetries |
العدد الصحيح | عدد مرات إعادة المحاولة، من 1 إلى 20 |
لا | 3 |
20 |
المتزايد
الحقل | نوع | الوصف | مطلوب؟ | الإعداد الافتراضي | مثال |
---|---|---|---|---|---|
type |
سلسلة | اسم نوع إعادة المحاولة: exponential |
نعم | غير متوفر | exponential |
interval |
المدة | الفترة الزمنية الأولية بين كل إعادة محاولة. | لا | 500ms |
2s |
maxRetries |
العدد الصحيح | عدد مرات إعادة المحاولة، من 1 إلى 20 |
لا | 3 |
20 |
maxInterval |
المدة | الحد الأقصى للفترة الزمنية بين كل إعادة محاولة. | لا | بلا | 100s |
يتم حساب أوقات إعادة المحاولة الأسية كما يلي: إذا بدأ الفاصل الزمني ب 500ms
، فإن فواصل إعادة المحاولة القليلة التالية هي randInt(500ms, 500ms * 2^1)
، ، randInt(500ms, 500ms * 2^2)
... ، randInt(500ms, 500ms * 2^maxRetries)
.
دُفعة
تتيح لك العديد من الوجهات في مرحلة الإخراج إرسال الرسائل المجمعة قبل كتابتها إلى الوجهة. تستخدم هذه الوجهات الدفعة لتحديد معلمات الدفعات.
حاليا، يمكنك تعريف الدفعة استنادا إلى الوقت. لتعريف الإرسال في دفعات، تحتاج إلى تحديد الفاصل الزمني والمسار. Path
يحدد أي جزء من الرسالة الواردة لتضمينه في الإخراج المجمع.
الحقل | نوع | الوصف | مطلوبة | افتراضي | مثال |
---|---|---|---|---|---|
الوقت | المدة | المدة التي تستغرقها البيانات المجمعة | لا | 60s (في الوجهات التي يتم فيها فرض الإرسال في دفعات) |
120s |
المسار | مسار | المسار إلى القيمة في كل رسالة لتضمينها في الإخراج. | لا | .payload |
.payload.output |
المحتوى ذو الصلة
الملاحظات
https://aka.ms/ContentUserFeedback.
قريبًا: خلال عام 2024، سنتخلص تدريجيًا من GitHub Issues بوصفها آلية إرسال ملاحظات للمحتوى ونستبدلها بنظام ملاحظات جديد. لمزيد من المعلومات، راجعإرسال الملاحظات وعرضها المتعلقة بـ