آموزش: داده های IoT indusrtrial لاجورد را به ADX بکشید

ساخت وبلاگ

پلت فرم IOT صنعتی Azure (IIOT) ماژول های لبه و میکروسروس های ابری را با بسیاری از خدمات Azure PaaS ترکیب می کند تا قابلیت های کشف دارایی صنعتی را فراهم کند و داده ها را از این دارایی ها با استفاده از OPC UA جمع آوری کند. Azure Data Explorer (ADX) یک مقصد طبیعی برای داده های IIOT با ویژگی های تجزیه و تحلیل داده است که امکان اجرای نمایش داده های انعطاف پذیر روی داده های مصرف شده از سرورهای OPC UA متصل به مرکز IoT را از طریق ناشر OPC فراهم می کند. اگرچه یک خوشه ADX می تواند داده ها را مستقیماً از IOT HUB بخورد ، پلت فرم IIOT پردازش بیشتر داده ها را انجام می دهد تا قبل از قرار دادن آن در قطب های رویداد ارائه شده هنگام استقرار کامل از میکروسرویس ها ، آن را مفیدتر کند (به بستر IIOT مراجعه کنید. معماری).

در این آموزش ، شما می آموزید که چگونه:

  • یک جدول در ADX ایجاد کنید
  • مرکز رویداد را به خوشه ADX وصل کنید
  • داده ها را در ADX تجزیه و تحلیل کنید

چگونه می توان داده ها را در خوشه ADX در دسترس قرار داد تا آن را به طور مؤثر پرس و جو کند

اگر به فرمت پیام از مراکز رویداد نگاه کنیم (همانطور که توسط کلاس microsoft. azure. iiot. opcua. subscriber. models. monitoreditemmessagemodel تعریف شده است) ، می توانیم به ساختاری که برای طرح جدول ADX نیاز داریم ، مشاهده کنیم.

Structure

در زیر مراحلی که ما باید داده ها را در خوشه ADX در دسترس قرار دهیم و داده ها را به طور مؤثر پرس و جو کنیم.

  1. یک خوشه ADX ایجاد کنید. اگر یک خوشه ADX در حال حاضر با پلت فرم IIOT تهیه نشده اید ، یا دوست دارید از یک خوشه متفاوت استفاده کنید ، مراحل را در اینجا دنبال کنید.
  2. همانطور که در اینجا توضیح داده شده است ، مصرف جریان را در خوشه ADX فعال کنید.
  3. با دنبال کردن مراحل اینجا ، یک پایگاه داده ADX ایجاد کنید.

برای مرحله زیر ، ما از رابط وب ADX برای اجرای نمایش داده های لازم استفاده خواهیم کرد. همانطور که در لینک توضیح داده شده است ، حتماً خوشه خود را به رابط وب اضافه کنید.

  1. یک جدول در ADX ایجاد کنید تا داده های مصرف شده را وارد کنید. اگرچه می توان از کلاس MonitoredItemMessAgemodel برای تعریف طرحواره جدول ADX استفاده کرد ، توصیه می شود که ابتدا داده ها را به یک جدول مرحله ای با یک ستون از نوع پویا وارد کنید. این به ما انعطاف پذیری بیشتری در رسیدگی به داده ها و پردازش در جداول دیگر (به طور بالقوه ترکیب آن با سایر منابع داده) می دهد که نیاز به موارد استفاده چندگانه را ارائه می دهد. پرس و جو ADX زیر جدول مرحله بندی "iiot_stage" را با یک ستون "بار بار" ایجاد می کند ،

ما همچنین باید یک نقشه برداری از مصرف JSON را اضافه کنیم تا به خوشه دستور دهیم تا کل پیام JSON را از مرکز رویداد در جدول مرحله بندی قرار دهد ،

  1. جدول ما اکنون آماده دریافت داده ها از مراکز رویداد است.
  2. از دستورالعمل ها در اینجا استفاده کنید تا مراکز رویداد را به خوشه ADX وصل کنید و شروع به مصرف داده ها در جدول مرحله بندی ما کنید. ما فقط باید اتصال را ایجاد کنیم زیرا در حال حاضر یک قطب رویدادی داریم که توسط پلت فرم IIOT تهیه شده است.
  3. پس از تأیید اتصال ، داده ها به جدول ما جریان می یابند و پس از یک تأخیر کوتاه می توانیم بررسی داده ها را در جدول خود شروع کنیم. از پرس و جو زیر در رابط وب ADX استفاده کنید تا به یک نمونه داده از 10 ردیف نگاه کنید. ما در اینجا می توانیم ببینیم که چگونه داده های موجود در بار شبیه به کلاس MonitoredItemSageModel است که قبلاً ذکر شد.

Query

  1. Let us now run some analytics on this data by parsing the Dynamic data in the ‘payload’ column directly. In this example, we'll compute the average of the telemetry identified by the “DisplayName”: “PositiveTrendData”, over time windows of 10 minutes, on all the records ingested since a specific time point (defined by the variable min_t) let min_t = datetime(2020-10-23); iiot_stage | where todatetime(payload.Timestamp)>min_t |جایی که toString (payload. displayName) == 'positivetrenddata' |خلاصه کردن event_avg = avg (todouble (payload. value)) توسط bin (todatetime (payload. timestamp) ، 10 متر)

از آنجا که ستون "Payload" ما شامل یک نوع داده پویا است ، ما باید در زمان پرس و جو تبدیل داده ها را انجام دهیم تا محاسبات ما بر روی انواع داده های صحیح انجام شود.

Payload Timestamp

همانطور که قبلاً نیز اشاره کردیم ، مصرف داده های OPC UA در یک جدول مرحله بندی با یک ستون "پویا" به ما انعطاف پذیری می بخشد. با این حال ، نیاز به اجرای تبدیل نوع داده در زمان پرس و جو می تواند منجر به تأخیر در اجرای نمایش داده شود به ویژه اگر حجم داده بزرگ باشد و در صورت وجود نمایش داده های همزمان همزمان باشد. در این مرحله می توانیم جدول دیگری را با انواع داده هایی که قبلاً تعیین شده است ایجاد کنیم ، به طوری که از تبدیل نوع داده زمان پرس و جو جلوگیری می کنیم.

  1. یک جدول جدید برای داده های تجزیه شده ایجاد کنید که شامل یک انتخاب محدود از محتوای "بار بار" در جدول مرحله بندی است. ما برای هر یک از انواع داده های مورد انتظار که در تله متری ما انتظار می رود یک ستون ارزشی ایجاد کرده ایم.
  1. یک تابع (در سطح پایگاه داده) ایجاد کنید تا داده های مورد نیاز از جدول مرحله بندی را طرح کنید. در اینجا ما موارد "Timestamp" ، "PublisherId" ، "DisplayName" ، "Datatype" و "nodeid" را از ستون "Payload" انتخاب می کنیم و اینها را به عنوان "tag_timestamp" ، "tag_publisherid" ، "برچسب" ، "tag_datatype" انتخاب می کنیم.'tag_nodeid'. مورد "مقدار" به عنوان سه بخش مختلف بر اساس "Datatype" پیش بینی شده است.

برای کسب اطلاعات بیشتر در مورد نقشه برداری از انواع داده ها در ADX ، به اینجا مراجعه کنید ، و برای عملکردهای ADX می توانید از اینجا شروع کنید.

  1. با استفاده از یک خط مشی به روزرسانی ، عملکرد را از مرحله قبلی در جدول تجزیه شده اعمال کنید. به روزرسانی خط مشی به ADX دستور می دهد تا هر زمان که داده های جدید در جدول منبع وارد شوند ، بر اساس یک پرس و جو تحول که روی داده های وارد شده در جدول منبع وارد می شود ، به طور خودکار داده ها را به یک جدول هدف اضافه کند. ما می توانیم از پرس و جو زیر برای اختصاص جدول تجزیه شده به عنوان مقصد و جدول مرحله به عنوان منبع خط مشی به روزرسانی تعریف شده توسط عملکردی که در مرحله قبل ایجاد کرده ایم استفاده کنیم.

به محض اجرای پرس و جو فوق ، داده ها شروع می شوند و جدول مقصد "Iiot_Parsed" را شروع می کنند. ما می توانیم به داده های موجود در "iiot_parsed به شرح زیر" نگاه کنیم.

Parsed Table

  1. بگذارید اکنون ببینیم که چگونه می توانیم تحلیلی را که در یک مرحله قبل انجام دادیم تکرار کنیم. میانگین تله متری مشخص شده توسط "DisplayName" را محاسبه کنید: "positivetrenddata" ، با گذشت زمان ویندوز 10 دقیقه ، در تمام سوابق ناشی از یک نقطه زمانی خاص (تعریف شده توسط متغیر min_t). از آنجا که اکنون مقادیر برچسب "positvetrenddata" را که در ستونی از نوع داده های مضاعف ذخیره شده است ، داریم ، انتظار داریم در عملکرد پرس و جو بهبود یابد.

Repeat analytics

  1. بگذارید سرانجام عملکرد پرس و جو را در هر دو مورد مقایسه کنیم. ما می توانیم زمان لازم برای اجرای پرس و جو را با استفاده از "آمار" در UI ADX (که می تواند در بالای نتایج پرس و جو قرار داشته باشد) پیدا کنیم.

Query performance 1

Query performance 2

می توانیم ببینیم که پرس و جو که از جدول تجزیه شده استفاده می کند ، تقریباً دو برابر سریعتر از جدول مرحله بندی است. در این مثال ، ما یک مجموعه داده کوچک داریم و هیچ سؤال همزمان در حال اجرا نیست ، بنابراین تأثیر آن در زمان اجرای پرس و جو عالی نیست ، اما برای یک بار کاری واقع بینانه تأثیر زیادی بر عملکرد خواهد داشت. به همین دلیل مهم است که جدا کردن انواع داده های مختلف در ستون های مختلف را در نظر بگیرید.

خط مشی به روزرسانی فقط روی داده هایی که پس از تنظیم خط مشی در جدول مرحله بندی مصرف می شوند ، کار می کند و در مورد داده های از قبل موجود اعمال نمی شود. این باید مورد توجه قرار گیرد که مثلاً ما باید خط مشی به روزرسانی را تغییر دهیم. جزئیات کامل را می توان در مستندات ADX یافت.

مراحل بعدی

اکنون که یاد گرفته اید که چگونه مقادیر پیش فرض پیکربندی را تغییر دهید ، می توانید

راهنمای تجارت فارکس...
ما را در سایت راهنمای تجارت فارکس دنبال می کنید

برچسب : نویسنده : نسیم خاکسار بازدید : <-PostHit-> تاريخ : چهارشنبه 7 تير 1402 ساعت: 13:28