كيفية استيعاب البيانات باستخدام Azure Stream Analytics في Azure Cosmos DB ل PostgreSQL
ينطبق على: Azure Cosmos DB ل PostgreSQL (مدعوم بملحق قاعدة بيانات Citus إلى PostgreSQL)
Azure Stream Analytics هو محرك تحليلات ومعالجة أحداث في الوقت الفعلي تم تصميمه لمعالجة كميات كبيرة من بيانات التدفق السريع من الأجهزة وأجهزة الاستشعار ومواقع الويب. كما أنها متاحة في وقت تشغيل Azure IoT Edge، مما يتيح معالجة البيانات على أجهزة IoT.
يتألق 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. لا تتناول هذه المقالة إعداد المحاكي.
في مدخل Microsoft Azure، قم بتوسيع قائمة المدخل في أعلى اليسار وحدد Create a resource.
حدد "Analytics"> "Stream Analytics job" من قائمة النتائج.
املأ صفحة وظيفة Stream Analytics الجديدة بالمعلومات التالية:
- Subscription - حدد اشتراك Azure الذي تريد استخدامه لهذه الوظيفة.
- مجموعة الموارد - حدد نفس مجموعة الموارد مثل مركز IoT الخاص بك.
- الاسم - أدخل اسما لتحديد وظيفة Stream Analytics.
- المنطقة - حدد منطقة Azure لاستضافة وظيفة Stream Analytics. استخدم الموقع الجغرافي الأقرب إلى المستخدمين للحصول على أداء أفضل وتقليل تكلفة نقل البيانات.
- بيئة الاستضافة - حدد السحابة للتوزيع على سحابة Azure، أو Edge للنشر على جهاز IoT Edge.
- وحدات الدفق - حدد عدد وحدات الدفق لموارد الحوسبة التي تحتاجها لتنفيذ المهمة.
حدد مراجعة + إنشاء، ثم حدد إنشاء. يجب أن تشاهد إعلام النشر قيد التقدم في أعلى اليمين.
تكوين مدخلات الوظيفة.
بمجرد اكتمال توزيع الموارد، انتقل إلى وظيفة Stream Analytics. حدد Inputs>Add stream input>IoT Hub.
املأ صفحة مركز "انترنت الأشياء" بالقيم التالية:
- الاسم المستعار للإدخل - أدخل اسما لتعريف إدخال الوظيفة.
- الاشتراك - حدد اشتراك Azure الذي يحتوي على حساب IoT Hub الخاص بك.
- IoT Hub – حدد اسم مركز IoT الخاص بك.
حدد حفظ.
بمجرد إضافة دفق الإدخال، يمكنك أيضا التحقق من مجموعة البيانات المتدفقة أو تنزيلها. تعرض التعليمات البرمجية التالية البيانات لحدث مثال:
{ "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": "aaaa0000-bb11-2222-33cc-444444dddddd", "ConnectionDeviceId": "sim000001", "ConnectionDeviceGenerationId": "637842405470327268", "EnqueuedTime": "2022-04-25T13:49:11.7060000Z" } }
تكوين إخراج الوظيفة.
في صفحة وظيفة Stream Analytics، حدد Outputs>Add>PostgreSQL database (preview).
املأ الصفحة الخاصة بـ Azure PostgreSQL بالقيم التالية:
- الاسم المستعار للإخراج - أدخل اسما لتعريف إخراج الوظيفة.
- حدد توفير إعدادات قاعدة بيانات PostgreSQL يدويا وأدخل اسم المجال المؤهل بالكامل للخادم وقاعدة البيانات والجدول واسم المستخدم وكلمة المرور. من مجموعة بيانات المثال، استخدم الجدول device_data.
حدد حفظ.
تعريف استعلام التحويل.
في صفحة وظيفة Stream Analytics، حدد Query من القائمة اليسرى.
بالنسبة لهذا البرنامج التعليمي، يمكنك استيعاب الأحداث البديلة فقط من IoT Hub إلى Azure Cosmos DB ل PostgreSQL، لتقليل حجم البيانات الإجمالي. انسخ الاستعلام التالي والصقه في جزء الاستعلام:
select counter, iothub.connectiondeviceid, iothub.correlationid, iothub.connectiondevicegenerationid, iothub.enqueuedtime from [src-iot-hub] where counter%2 = 0;
حدد "حفظ الاستعلام".
إشعار
يمكنك استخدام الاستعلام ليس فقط لعينة البيانات، ولكن أيضا لاستخراج السمات المطلوبة من دفق البيانات. يعد خيار الاستعلام المخصص مع Stream Analytics مفيدا في المعالجة المسبقة/تحويل البيانات قبل استيعابها في قاعدة البيانات.
ابدأ وظيفة Stream Analytics وتحقق من المخرجات.
ارجع إلى صفحة "نظرة عامة على المهمة" وحدد "ابدأ".
في صفحة Start job ، حدد Now لوقت بدء إخراج الوظيفة، ثم حدد Start.
تستغرق المهمة بعض الوقت لبدء المرة الأولى، ولكن بمجرد تشغيلها تستمر في العمل مع وصول البيانات. بعد بضع دقائق، يمكنك الاستعلام عن نظام المجموعة للتحقق من تحميل البيانات.
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.