گرههای غنیسازی
گرههای غنیسازی برای بهروزرسانی فرادادههای پیامهای ورودی استفاده میشوند
محاسبه دلتا
Since TB Version 3.2.2
دلتا با توجه به اختلاف بین خوانشهای زمانی قبلی و فعلی محاسبه شده و به پیام اضافه میشود. این محاسبه در چارچوب منبع پیام، مانند دستگاه، دارایی یا مشتری انجام میشود. این ویژگی در کاربردهای هوشمند مانند اندازهگیری هوشمند بسیار مفید است. به عنوان مثال، اگر یک دستگاه اندازهگیری آب، مقدار کل پالسها را یک بار در روز گزارش دهد، محاسبه دلتا به شما امکان میدهد مصرف روزانه را با مقایسه مقدار روز فعلی با مقدار روز قبل محاسبه کنید.
پارامترهای پیکربندی:
- کلید مقدار ورودی (بهطور پیشفرض: ‘pulseCounter’) - مشخص میکند که کدام کلید برای محاسبه دلتا استفاده خواهد شد.
- کلید مقدار خروجی (بهطور پیشفرض: ‘delta’) - مشخص میکند که مقدار دلتا در کدام کلید در پیام غنیشده ذخیره شود.
- اعشار - دقت محاسبه دلتا را تعیین میکند.
- استفاده از کش برای آخرین مقدار (بهطور پیشفرض: ‘enabled’) - امکان کش کردن آخرین مقادیر در حافظه برای محاسبات دلتا کارآمدتر را فراهم میکند.
- اعلام ‘خطا’ در صورت منفی بودن دلتا (بهطور پیشفرض: ‘enabled’) - در صورت منفی بودن مقدار دلتا، باعث ایجاد خطا در پردازش پیام میشود.
- افزودن دوره بین پیامها (بهطور پیشفرض: ‘disabled’) - به صورت اختیاری مقدار دوره زمانی بین پیام فعلی و قبلی را به پیام غنیشده اضافه میکند.
روابط گره قانون:
گره قانون پیامها را با یکی از روابط زیر تولید میکند:
- موفقیت: اگر کلید مشخصشده توسط پارامتر 'کلید مقدار ورودی' در پیام ورودی وجود داشته باشد.
- سایر: اگر کلید مشخصشده توسط پارامتر 'کلید مقدار ورودی' در پیام ورودی وجود نداشته باشد.
- خطا: اگر گزینه 'اعلام ‘خطا’ در صورت منفی بودن دلتا' فعال باشد و محاسبه دلتا مقدار منفی بازگرداند.
بررسی رفتار گره قانون با مثال:
بیایید رفتار گره قانون را با یک پیکربندی خاص بررسی کنیم.
فرض کنید پیامهای بعدی که توسط همان دستگاه ایجاد شدهاند، به ترتیب زیر به گره قانون میرسند:
msg: {"pulseCounter": 42}, metadata: {"ts": "1616510425000"}
msg: {"pulseCounter": 73}, metadata: {"ts": "1616510485000"}
msg: {"temperature": 22}, metadata: {"ts": "1616510486000"}
msg: {"pulseCounter": 42}, metadata: {"ts": "1616510487000"}
خروجی به شرح زیر خواهد بود:
msg: {"pulseCounter": 42, "delta": 0, "periodInMs": 0}, metadata: {"ts": "1616510425000"}, relation: Success
msg: {"pulseCounter": 73, "delta": 31, "periodInMs": 60000}, metadata: {"ts": "1616510485000"}, relation: Success
msg: {"temperature": 22}, metadata: {"ts": "1616510486000"}, relation: Other
msg: {"pulseCounter": 42}, metadata: {"ts": "1616510487000"}, relation: Failure
ویژگیهای مشتری
Since TB Version 2.0
گره، مشتری مرتبط با موجودیت ایجادکننده پیام را پیدا کرده و ویژگیهای مشتری یا آخرین مقدار تلهمتری را به فراداده پیام اضافه میکند.
مدیر میتواند نگاشت بین نام ویژگی اصلی و نام ویژگی در فراداده را پیکربندی کند.
در پیکربندی گره، گزینهای به نام آخرین تلهمتری وجود دارد. اگر این گزینه انتخاب شود، گره آخرین تلهمتری برای کلیدهای پیکربندی شده را دریافت میکند. در غیر این صورت، گره ویژگیهای دامنه سرور را بازیابی میکند.
فراداده پیام خروجی شامل ویژگیهای پیکربندیشده خواهد بود، در صورتی که این ویژگیها وجود داشته باشند. برای دسترسی به ویژگیهای دریافتشده در گرههای دیگر میتوانید از این قالب استفاده کنید: ‘metadata.temperature’.
انواع موجودیتهای ایجادکننده پیام که مجاز هستند عبارتند از: مشتری، کاربر، دارایی، و دستگاه.
اگر نوع موجودیت پشتیبانینشدهای پیدا شود، خطا ایجاد خواهد شد.
اگر موجودیت ایجادکننده پیام، مشتری مشخصی نداشته باشد، زنجیره شکست (Failure) استفاده میشود. در غیر این صورت، زنجیره موفقیت (Success) اعمال خواهد شد.
نکته: از نسخه 3.3.3 به بعد، میتوانید از ${metadataKey} برای دسترسی به مقدار از فراداده و از $[messageKey] برای مقدار از بدنه پیام استفاده کنید.
مثال: فرض کنید فرادادهای به این صورت دارید: {"country": "England"}. علاوه بر این، یک ویژگی دارید که کلید آن نام کشور و مقدار آن پایتخت آن کشور است ({"England": "London"}).
هدف این است که پایتخت کشور را از ویژگی مربوطه بر اساس فراداده به دست آورده و نتیجه را با کلید “city” به فراداده اضافه کنید. برای دستیابی به این هدف، میتوانید از ${country} به عنوان ویژگی منبع و “city” به عنوان ویژگی مقصد استفاده کنید.
نتیجه به این صورت خواهد بود: {"city": "London"}.
در آموزش بعدی میتوانید یک مثال واقعی از استفاده از این گره را مشاهده کنید.
- ارسال ایمیل
ویژگیهای دستگاه
Since TB Version 2.0
این گره با استفاده از پرسوجوی پیکربندیشده، دستگاه مرتبط با موجودیت ایجادکننده پیام را پیدا کرده و ویژگیها (در حوزههای مشتری، اشتراکی، سرور) و آخرین مقدار تلهمتری را به فراداده پیام اضافه میکند.
ویژگیها با پیشوند مربوطه به فراداده اضافه میشوند:
ویژگیهای اشتراکی: shared_
ویژگیهای مشتری: cs_
ویژگیهای سرور: ss_
تلهمتری: بدون پیشوند
به عنوان مثال، ویژگی اشتراکی ‘version’ با نام ‘shared_version’ به فراداده اضافه میشود. ویژگیهای مشتری با پیشوند ‘cs_’ و ویژگیهای سرور با پیشوند ‘ss_’ اضافه میشوند. آخرین مقدار تلهمتری بدون پیشوند به فراداده پیام اضافه میشود.
در پیکربندی 'پرسوجوی روابط دستگاه'، مدیر میتواند جهت و سطح عمق رابطه مورد نیاز را انتخاب کند. همچنین، نوع رابطه با مجموعهای از انواع دستگاههای مورد نیاز قابل پیکربندی است.
اگر چندین موجودیت مرتبط پیدا شوند، تنها اولین موجودیت برای غنیسازی ویژگیها استفاده خواهد شد و سایر موجودیتها نادیده گرفته میشوند.
اگر هیچ موجودیت مرتبطی یافت نشود، زنجیره شکست (Failure) استفاده میشود، در غیر این صورت، زنجیره موفقیت (Success) اعمال خواهد شد.
اگر ویژگی یا تلهمتری یافت نشود، به فراداده پیام اضافه نمیشود، اما پیام همچنان از طریق زنجیره موفقیت هدایت میشود.
فراداده پیام خروجی تنها شامل ویژگیهای پیکربندیشده خواهد بود، در صورتی که این ویژگیها وجود داشته باشند.
برای دسترسی به ویژگیهای دریافتشده در گرههای دیگر، میتوانید از این قالب استفاده کنید: ‘metadata.temperature’.
نکته: از نسخه 2.3.1 به بعد، گره قانون قادر است گزارشدهی خطا را فعال/غیرفعال کند، در صورتی که حداقل یک کلید انتخابشده در پیام خروجی وجود نداشته باشد.
ویژگیهای منشأ پیام
Since TB Version 2.0
ویژگیهای منشأ پیام (در محدودههای مشتری، مشترک، سرور) و آخرین مقدار تلهمتری را به فراداده پیام اضافه کنید.
ویژگیها با پیشوند محدوده به فراداده اضافه میشوند:
- ویژگی مشترک ->
shared_
- ویژگی مشتری ->
cs_
- ویژگی سرور ->
ss_
- تلهمتری -> بدون پیشوند
برای مثال، ویژگی مشترک ‘version’ با نام ‘shared_version’ به فراداده اضافه میشود. ویژگیهای مشتری از پیشوند cs_ و ویژگیهای سرور از پیشوند ss_ استفاده میکنند. آخرین مقدار تلهمتری به صورت مستقیم و بدون پیشوند به فراداده پیام اضافه میشود.
فراداده پیام خروجی حاوی ویژگیهای تنظیمشده در صورتی که وجود داشته باشند، خواهد بود.
برای دسترسی به ویژگیهای بازیابی شده در سایر نودها، میتوانید از این قالب استفاده کنید: ‘metadata.cs_temperature’.
نکته: از نسخه TB 2.3.1، نود قوانین توانایی فعال/غیرفعال کردن گزارش شکست را دارد، در صورتی که حداقل یک کلید انتخاب شده در پیام خروجی وجود نداشته باشد.
برای مشاهده کاربرد واقعی این نود، به آموزشهای زیر مراجعه کنید:
- تبدیل تلهمتری با استفاده از رکورد قبلی
- ارسال ایمیل
فیلدهای منشأ
Since TB Version 2.0
این گره مقادیر فیلدهای موجودیت منشأ پیام را بازیابی کرده و به فراداده پیام اضافه میکند. مدیر میتواند نحوه نگاشت بین نام فیلد و نام ویژگی در فراداده را پیکربندی کند. اگر فیلد مشخص شده جزو فیلدهای موجودیت منشأ پیام نباشد، نادیده گرفته میشود.
انواع منشأ پیامهای مجاز شامل موارد زیر است: مستأجر، مشتری، کاربر، دارایی، دستگاه، هشدار، زنجیره قوانین.
در صورتی که نوع منشأ پیام پشتیبانینشده باشد، از زنجیره شکست استفاده خواهد شد؛ در غیر این صورت، از زنجیره موفقیت استفاده میشود.
اگر مقدار فیلد یافت نشود، به فراداده پیام اضافه نمیشود و همچنان از طریق زنجیره موفقیت هدایت میشود.
فراداده پیام خروجی تنها در صورتی حاوی ویژگیهای پیکربندیشده خواهد بود که موجود باشند.
برای دسترسی به ویژگیهای بازیابیشده در گرههای دیگر میتوانید از قالب ‘metadata.devType’ استفاده کنید.
ویژگیهای مرتبط
Since TB Version 2.0
این گره با استفاده از پرسوجوی پیکربندیشده، موجودیت مرتبط با منشأ پیام را شناسایی کرده و ویژگیها یا آخرین مقدار تلهمتری را به فراداده پیام اضافه میکند.
مدیر میتواند نحوه نگاشت بین نام اصلی ویژگی و نام ویژگی در فراداده را پیکربندی کند.
در بخش تنظیمات «پرسوجوی روابط»، مدیر قادر است جهت رابطه و سطح عمق مورد نیاز را انتخاب کند. همچنین، امکان پیکربندی مجموعهای از فیلترهای رابطه بر اساس نوع رابطه و نوع موجودیتها وجود دارد.
در تنظیمات گره، چکباکسی با عنوان «آخرین تلهمتری» وجود دارد. با انتخاب این گزینه، گره آخرین تلهمتری را برای کلیدهای پیکربندیشده بازیابی میکند؛ در غیر این صورت، گره ویژگیهای محدوده سرور را بازیابی خواهد کرد.
اگر چندین موجودیت مرتبط شناسایی شوند، تنها اولین موجودیت برای افزودن ویژگیها استفاده خواهد شد و سایر موجودیتها حذف خواهند شد.
در صورتی که هیچ موجودیت مرتبطی یافت نشود، از زنجیره شکست استفاده میشود؛ در غیر این صورت، زنجیره موفقیت استفاده خواهد شد.
فراداده پیام خروجی تنها در صورتی شامل ویژگیهای پیکربندیشده خواهد بود که وجود داشته باشند.
برای دسترسی به ویژگیهای بازیابیشده در گرههای دیگر، میتوانید از قالب ‘metadata.tempo’ استفاده کنید.
نکته: از نسخه 3.3.3 TB، شما میتوانید از ${metadataKey} برای دریافت مقدار از فراداده و از $[messageKey] برای دریافت مقدار از بدنه پیام استفاده کنید.
یک نمونه از این ویژگی را میتوانید در توضیحات گره ویژگیهای مشتری مشاهده کنید.
برای دیدن یک مثال واقعی از استفاده این گره، به آموزش بعدی مراجعه کنید:
- پاسخ به فراخوانیهای RPC
ویژگیهای مستأجر
Since TB Version 2.0
این گره مستأجر مرتبط با منشأ پیام را شناسایی کرده و ویژگیهای مستأجر یا آخرین مقدار تلهمتری را به فراداده پیام اضافه میکند.
مدیر میتواند نحوه نگاشت بین نام اصلی ویژگی و نام ویژگی در فراداده را پیکربندی کند.
گزینهای به نام «آخرین تلهمتری» در تنظیمات گره وجود دارد. با انتخاب این گزینه، گره آخرین تلهمتری را برای کلیدهای پیکربندیشده بازیابی میکند؛ در غیر این صورت، گره ویژگیهای محدوده سرور را بازیابی خواهد کرد.
فراداده پیام خروجی تنها در صورتی شامل ویژگیهای پیکربندیشده خواهد بود که موجود باشند. برای دسترسی به ویژگیهای بازیابیشده در گرههای دیگر، میتوانید از قالب ‘metadata.tempo’ استفاده کنید.
انواع منشأ پیامهای مجاز به شرح زیر است: مستأجر، مشتری، کاربر، دارایی، دستگاه، هشدار، زنجیره قوانین.
اگر نوع منشأ پشتیبانینشده باشد، خطا رخ خواهد داد.
در صورت عدم وجود مستأجر در منشأ پیام، از زنجیره شکست استفاده میشود؛ در غیر این صورت، از زنجیره موفقیت استفاده خواهد شد.
نکته: از نسخه 3.3.3 TB، میتوانید از ${metadataKey} برای دریافت مقادیر از فراداده و از $[messageKey] برای دریافت مقادیر از بدنه پیام استفاده کنید.
برای مشاهده نمونهای از این ویژگی، به توضیحات گره ویژگیهای مشتری مراجعه کنید.
تلهمتری منشأ
Since TB Version 2.0
این گره مقادیر تلهمتری منشأ پیام از بازه زمانی خاصی که در تنظیمات گره انتخاب شده است را به فراداده پیام اضافه میکند.
مقادیر تلهمتری به فراداده پیام بدون پیشوند اضافه میشود.
گره قانون دارای سه حالت بازیابی زیر است:
- FIRST: نزدیکترین تلهمتری به ابتدای بازه زمانی را از پایگاه داده بازیابی میکند.
- LAST: نزدیکترین تلهمتری به انتهای بازه زمانی را از پایگاه داده بازیابی میکند.
- ALL: تمام تلهمتریهای موجود در بازه زمانی مشخص شده را از پایگاه داده بازیابی میکند.
اگر حالت بازیابی FIRST یا LAST انتخاب شده باشد، فراداده پیام خروجی شامل عناصر JSON (کلید/مقدار) خواهد بود.
در صورتی که حالت بازیابی ALL انتخاب شود، تلهمتری به صورت یک آرایه بازیابی میشود.
گره قانون قادر است حداکثر ۱۰۰۰ رکورد را به صورت آرایه استخراج کند.
این آرایه شامل اشیاء JSON با تایماستمپ و مقدار خواهد بود.
پایان بازه زمانی باید همیشه قبل از ابتدای بازه زمانی باشد.
اگر گزینه «استفاده از الگوهای بازه زمانی متاداده» انتخاب شده باشد، گره قانون از الگوهای «شروع بازه زمانی» و «پایان بازه زمانی» موجود در متاداده استفاده میکند.
واحدهای الگوها به میلیثانیه از زمان اپوک (۱ ژانویه ۱۹۷۰، ۰۰:۰۰:۰۰ UTC) تنظیم میشود.
- اگر هر الگو در متاداده پیام موجود نباشد، پیام خروجی از طریق زنجیره شکست هدایت میشود.
- همچنین، اگر هر الگو دارای نوع داده نامعتبر باشد، پیام خروجی نیز از طریق زنجیره شکست هدایت خواهد شد.
فراداده پیام خروجی شامل فیلدهای تلهمتری پیکربندیشده خواهد بود، اگر آنها وجود داشته باشند و مربوط به بازه زمانی انتخابشده باشند.
اگر ویژگی یا تلهمتری یافت نشود، به فراداده پیام اضافه نخواهد شد و همچنان از طریق زنجیره موفقیت هدایت میشود.
برای دسترسی به تلهمتری بازیابیشده در گرههای دیگر میتوانید از قالب JSON.parse(metadata.temperature) استفاده کنید.
نکته: از نسخه 2.3 TB، گره قانون این قابلیت را دارد که ترتیب نمونهبرداری تلهمتری را هنگام انتخاب حالت بازیابی: ALL تنظیم کند.
برای مشاهده یک مثال واقعی از کاربرد این گره، به آموزشهای زیر مراجعه کنید:
- محاسبه تغییرات تلهمتری
جزئیات مستأجر
Since TB Version 2.0
گره قانون فیلدها را از جزئیات مستأجر به بدنه پیام یا فراداده پیام اضافه میکند.
در تنظیمات گره، گزینهای به نام «افزودن جزئیات انتخابشده به فراداده پیام» وجود دارد. اگر این گزینه انتخاب شود، فیلدهای موجود به فراداده پیام اضافه میشوند به جای اینکه به دادههای پیام اضافه شوند.
جزئیات انتخابشده با پیشوند tenant_ به فراداده پیام اضافه میشود. پیام خروجی شامل جزئیات پیکربندیشده خواهد بود، در صورتی که آنها وجود داشته باشند.
برای دسترسی به جزئیات بازیابیشده در گرههای دیگر، میتوانید از یکی از قالبهای زیر استفاده کنید:
- metadata.tenant_address
- msg.tenant_address
اگر منشأ پیام مستأجر مشخصشدهای نداشته باشد، از زنجیره شکست استفاده میشود؛ در غیر این صورت، از زنجیره موفقیت استفاده خواهد شد.
جزئیات مشتری
Since TB Version 2.0
گره قانون فیلدها را از جزئیات مشتری به بدنه پیام یا فراداده پیام اضافه میکند.
در تنظیمات گره، گزینهای به نام «افزودن جزئیات انتخابشده به فراداده پیام» وجود دارد. با انتخاب این گزینه، فیلدهای موجود به فراداده پیام اضافه میشوند به جای اینکه به دادههای پیام افزوده شوند.
جزئیات انتخابشده با پیشوند customer_ به فراداده پیام اضافه میشود. پیام خروجی شامل جزئیات پیکربندیشده خواهد بود، در صورتی که آنها وجود داشته باشند.
برای دسترسی به جزئیات بازیابیشده در گرههای دیگر، میتوانید از یکی از قالبهای زیر استفاده کنید:
- metadata.customer_email
- msg.customer_email
انواع منشأ پیامهای مجاز عبارتند از: دارایی، دستگاه، نمای موجودیت.
اگر نوع منشأ پشتیبانینشده باشد، خطا رخ خواهد داد.
اگر منشأ پیام مستأجر مشخصشدهای نداشته باشد، از زنجیره شکست استفاده میشود؛ در غیر این صورت، از زنجیره موفقیت استفاده خواهد شد.