كيفية استيعاب البيانات باستخدام Azure Stream Analytics في Azure Cosmos DB ل PostgreSQL

ينطبق على: Azure Cosmos DB ل PostgreSQL (مدعوم بملحق قاعدة بيانات Citus إلى PostgreSQL)

Azure Stream Analytics هو محرك تحليلات ومعالجة أحداث في الوقت الفعلي تم تصميمه لمعالجة كميات كبيرة من بيانات التدفق السريع من الأجهزة وأجهزة الاستشعار ومواقع الويب. كما أنها متاحة في وقت تشغيل Azure IoT Edge، مما يتيح معالجة البيانات على أجهزة IoT.

رسم تخطيطي يوضح بنية Stream Analytics مع Azure Cosmos DB ل PostgreSQL.

يتألق Azure Cosmos DB ل PostgreSQL في أحمال العمل في الوقت الحقيقي مثل IoT. بالنسبة لأحمال العمل هذه، يمكن أن يعمل Stream Analytics كبديل بدون تعليمات برمجية، وأداء وقابل للتطوير للمعالجة المسبقة للبيانات ودفقها من Azure Event Hubs وAzure IoT Hub وAzure Blob Storage إلى Azure Cosmos DB ل PostgreSQL.

خطوات إعداد Stream Analytics

إشعار

تستخدم هذه المقالة Azure IoT Hub كمصدر بيانات مثال، ولكن التقنية قابلة للتطبيق على أي مصدر آخر يدعمه Stream Analytics. أيضا، تأتي بيانات العرض التوضيحي التالية من Azure IoT Device Telemetry Simulator. لا تتناول هذه المقالة إعداد المحاكي.

  1. في مدخل Microsoft Azure، قم بتوسيع قائمة المدخل في أعلى اليسار وحدد Create a resource.

  2. حدد "Analytics"> "Stream Analytics job" من قائمة النتائج.

  3. املأ صفحة وظيفة Stream Analytics الجديدة بالمعلومات التالية:

    • Subscription - حدد اشتراك Azure الذي تريد استخدامه لهذه الوظيفة.
    • مجموعة الموارد - حدد نفس مجموعة الموارد مثل مركز IoT الخاص بك.
    • الاسم - أدخل اسما لتحديد وظيفة Stream Analytics.
    • المنطقة - حدد منطقة Azure لاستضافة وظيفة Stream Analytics. استخدم الموقع الجغرافي الأقرب إلى المستخدمين للحصول على أداء أفضل وتقليل تكلفة نقل البيانات.
    • بيئة الاستضافة - حدد السحابة للتوزيع على سحابة Azure، أو Edge للنشر على جهاز IoT Edge.
    • وحدات الدفق - حدد عدد وحدات الدفق لموارد الحوسبة التي تحتاجها لتنفيذ المهمة.
  4. حدد مراجعة + إنشاء، ثم حدد إنشاء. يجب أن تشاهد إعلام النشر قيد التقدم في أعلى اليمين.

    لقطة شاشة تعرض نموذج وظيفة Stream Analytics.

  5. تكوين مدخلات الوظيفة.

    لقطة شاشة توضح تكوين إدخال الوظيفة في Stream Analytics.

    1. بمجرد اكتمال توزيع الموارد، انتقل إلى وظيفة Stream Analytics. حدد Inputs>Add stream input>IoT Hub.

    2. املأ صفحة مركز "انترنت الأشياء" بالقيم التالية:

      • الاسم المستعار للإدخل - أدخل اسما لتعريف إدخال الوظيفة.
      • الاشتراك - حدد اشتراك Azure الذي يحتوي على حساب IoT Hub الخاص بك.
      • IoT Hub – حدد اسم مركز IoT الخاص بك.
    3. حدد حفظ.

    4. بمجرد إضافة دفق الإدخال، يمكنك أيضا التحقق من مجموعة البيانات المتدفقة أو تنزيلها. تعرض التعليمات البرمجية التالية البيانات لحدث مثال:

      {
         "deviceId": "sim000001",
         "time": "2022-04-25T13:49:11.6892185Z",
         "counter": 1,
         "EventProcessedUtcTime": "2022-04-25T13:49:41.4791613Z",
         "PartitionId": 3,
         "EventEnqueuedUtcTime": "2022-04-25T13:49:12.1820000Z",
         "IoTHub": {
           "MessageId": null,
           "CorrelationId": "990407b8-4332-4cb6-a8f4-d47f304397d8",
           "ConnectionDeviceId": "sim000001",
           "ConnectionDeviceGenerationId": "637842405470327268",
           "EnqueuedTime": "2022-04-25T13:49:11.7060000Z"
         }
      }
      
  6. تكوين إخراج الوظيفة.

    1. في صفحة وظيفة Stream Analytics، حدد Outputs>Add>PostgreSQL database (preview).

      لقطة شاشة توضح تحديد إخراج قاعدة بيانات PostgreSQL.

    2. املأ الصفحة الخاصة بـ Azure PostgreSQL بالقيم التالية:

      • الاسم المستعار للإخراج - أدخل اسما لتعريف إخراج الوظيفة.
      • حدد توفير إعدادات قاعدة بيانات PostgreSQL يدويا وأدخل اسم المجال المؤهل بالكامل للخادم وقاعدة البيانات والجدول واسم المستخدم وكلمة المرور. من مجموعة بيانات المثال، استخدم الجدول device_data.
    3. حدد حفظ.

    تكوين مخرجات الوظيفة في Azure Stream Analytics.

  7. تعريف استعلام التحويل.

    استعلام التحويل في Azure Stream Analytics.

    1. في صفحة وظيفة Stream Analytics، حدد Query من القائمة اليسرى.

    2. بالنسبة لهذا البرنامج التعليمي، يمكنك استيعاب الأحداث البديلة فقط من IoT Hub إلى Azure Cosmos DB ل PostgreSQL، لتقليل حجم البيانات الإجمالي. انسخ الاستعلام التالي والصقه في جزء الاستعلام:

      select
         counter,
         iothub.connectiondeviceid,
         iothub.correlationid,
         iothub.connectiondevicegenerationid,
         iothub.enqueuedtime
      from
         [src-iot-hub]
      where counter%2 = 0;
      
    3. حدد "حفظ الاستعلام".

      إشعار

      يمكنك استخدام الاستعلام ليس فقط لعينة البيانات، ولكن أيضا لاستخراج السمات المطلوبة من دفق البيانات. يعد خيار الاستعلام المخصص مع Stream Analytics مفيدا في المعالجة المسبقة/تحويل البيانات قبل استيعابها في قاعدة البيانات.

  8. ابدأ وظيفة Stream Analytics وتحقق من المخرجات.

    1. ارجع إلى صفحة "نظرة عامة على المهمة" وحدد "ابدأ".

    2. في صفحة Start job ، حدد Now لوقت بدء إخراج الوظيفة، ثم حدد Start.

    3. تستغرق المهمة بعض الوقت لبدء المرة الأولى، ولكن بمجرد تشغيلها تستمر في العمل مع وصول البيانات. بعد بضع دقائق، يمكنك الاستعلام عن نظام المجموعة للتحقق من تحميل البيانات.

      citus=> SELECT * FROM public.device_data LIMIT 10;
      
       counter | connectiondeviceid |            correlationid             | connectiondevicegenerationid |         enqueuedtime
      ---------+--------------------+--------------------------------------+------------------------------+------------------------------
             2 | sim000001          | 7745c600-5663-44bc-a70b-3e249f6fc302 | 637842405470327268           | 2022-05-25T18:24:03.4600000Z
             4 | sim000001          | 389abfde-5bec-445c-a387-18c0ed7af227 | 637842405470327268           | 2022-05-25T18:24:05.4600000Z
             6 | sim000001          | 3932ce3a-4616-470d-967f-903c45f71d0f | 637842405470327268           | 2022-05-25T18:24:07.4600000Z
             8 | sim000001          | 4bd8ecb0-7ee1-4238-b034-4e03cb50f11a | 637842405470327268           | 2022-05-25T18:24:09.4600000Z
            10 | sim000001          | 26cebc68-934e-4e26-80db-e07ade3775c0 | 637842405470327268           | 2022-05-25T18:24:11.4600000Z
            12 | sim000001          | 067af85c-a01c-4da0-b208-e4d31a24a9db | 637842405470327268           | 2022-05-25T18:24:13.4600000Z
            14 | sim000001          | 740e5002-4bb9-4547-8796-9d130f73532d | 637842405470327268           | 2022-05-25T18:24:15.4600000Z
            16 | sim000001          | 343ed04f-0cc0-4189-b04a-68e300637f0e | 637842405470327268           | 2022-05-25T18:24:17.4610000Z
            18 | sim000001          | 54157941-2405-407d-9da6-f142fc8825bb | 637842405470327268           | 2022-05-25T18:24:19.4610000Z
            20 | sim000001          | 219488e5-c48a-4f04-93f6-12c11ed00a30 | 637842405470327268           | 2022-05-25T18:24:21.4610000Z
      (10 rows)
      

إشعار

ميزة اختبار الاتصال غير مدعومة حاليا ل Azure Cosmos DB ل PostgreSQL وقد تطرح خطأ، حتى عندما يعمل الاتصال بشكل جيد.

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

تعرف على كيفية إنشاء لوحة معلومات في الوقت الحقيقي باستخدام Azure Cosmos DB ل PostgreSQL.