Azure Cosmos DB في أحمال عمل IoT

Azure Cosmos DB
Azure Databricks
Azure Functions
Azure IoT Hub
Power BI

توضح هذه المقالة حمل عمل إنترنت الأشياء (IoT) الذي يعتمد على العديد من ميزات خدمة قاعدة بيانات Azure Cosmos DB. Azure Cosmos DB هي قاعدة بيانات متعددة النماذج مُصمَّمة للتوزيع العالمي والمقياس الأفقي.

يغير التوزيع العمومي حجم البيانات وينسخها نسخاً متماثلاً بشفافيةٍ عبر مناطق Azure. يمكنك تغيير حجم معدل النقل والتخزين في جميع أنحاء العالم، ودفع المبلغ الذي تحتاجه فقط. يستوعب تغيير الحجم الفوري المرن أحمال عمل IoT المتنوعة والتي لا يمكن التنبؤ بها دون التهاون في أداء الاستيعاب أو الاستعلام.

يعد Azure Cosmos DB مثاليا لأحمال عمل IoT لأنه قادر على:

  • استيعاب بيانات تتبع الاستخدام للجهاز بمعدلات عالية، وإرجاع الاستعلامات المفهرسة مع زمن انتقال منخفض وقابلية وصول عالية.
  • تخزين تنسيق JSON من موردي أجهزة مختلفين، والذي يوفر مرونة في مخطط الحمولة.
  • باستخدام نقاط نهاية واجهة برمجة التطبيقات المتوافقة مع البروتوكول السلكي لقواعد بيانات Cassandra وMongoDB وSQL وGremlin وغيرها وقواعد بيانات الجدول والدعم المضمن لملفات Jupyter Notebook.

حالات الاستخدام المحتملة

  • استخدم قدرات Azure Cosmos DB المضمنة والموزعة عالميا لتمكين القراءة والكتابة ذات زمن انتقال منخفض لتطبيقات IoT عالية الاستجابة.
  • معالجة البيانات من مجموعةٍ متنوعةٍ من بائعي الأجهزة وأنواع البيانات.

بناء الأنظمة

رسم تخطيطي يوضح دور Azure Cosmos DB في بنية حل Azure IoT.قم بتنزيل ملف Visio لهذه البنية.

تدفق البيانات

  1. ترسل أدوات استشعار IoT وأجهزة Edge الأحداث كتدفقات رسائل من خلال Azure IoT Hub إلى طبقة التحليل والتحويل. يمكن لـ IoT Hub تخزين عمليات دفق البيانات في أقسام لمدة محددة.

  2. تلتقط Azure Databricks مع Apache Spark Structured Streaming الرسائل من IoT Hub في الوقت الحقيقي، ويعالج البيانات استناداً إلى منطق تسلسل العمل، ويرسل البيانات إلى موقع التخزين. يمكن أن يوفر Structured Streaming تحليلات في الوقت الحقيقي، مثل حساب متوسطات التداول أو القيم الدنيا والقصوى على مدار فترات زمنية.

  3. تخزن Azure Cosmos DB رسائل الجهاز كمستندات JSON في مخزن البيانات الساخنة. يمكن لـ Azure Cosmos DB التحقق من صحة مخططات JSON من موردي الأجهزة المختلفين.

    تتكون طبقة التخزين أيضاً من:

    • Azure موقع تخزين كائن ثنائي كبير الحجم. يحفظ توجيه رسائل IoT Hub رسائل الجهاز الخام إلى موقع تخزين Blob، مما يوفر مخزن بيانات بارد غير مكلف وطويل الأجل.
    • Azure SQL Database، لتخزين بيانات المعاملات والارتباطية، مثل بيانات الفوترة وأدوار المستخدم.
    • مستودع بيانات Azure Synapse Analytics، الذي يتم تعبئته بواسطة Azure Data Factory، والذي يجمع البيانات من Azure Cosmos DB وAzure SQL DB.
  4. يحلل Microsoft Power BI مستودع البيانات.

  5. تستخدم طبقة العرض التقديمي البيانات من طبقة التخزين لإنشاء تطبيقات الويب والجوال وواجهة برمجة التطبيقات.

  6. كلما وصلت رسالة جهاز جديدة أو مُحدَّثة، يشغل موجز تغيير Azure Cosmos DB دالة Azure Functions.

  7. تحدد الدالة ما إذا كانت الرسالة تتطلب إجراء جهاز، مثل إعادة التشغيل. إذا كان الأمر كذلك، تتصل الدالة بـ IoT Hub باستخدام واجهة برمجة تطبيقات خدمة IoT Hub، وبدء إجراء الجهاز. يمكن للوظيفة بدء الإجراء باستخدام توائم الجهاز أو السحابة إلى رسائل الجهاز أو الأساليب المباشرة.

المكونات

حمل العمل هذا يستخدم مكونات Azure التالية:

Azure Cosmos DB

يسلط حمل عمل IoT هذا الضوء على Azure Cosmos DB، وهي قاعدة بيانات متعددة النماذج ومُوزَّعة عالمياً. يستخدم حمل العمل ميزات Azure Cosmos DB التالية:

  • مستويات التناسق. تدعم Azure Cosmos DB خمسة مستويات من تناسق القراءة، من الأقوى إلى الأضعف: ثبات قوي وثبات محدود وجلسة، وبادئة متسقة، ونهائي. بوجهٍ عام، يؤدي التناسق الأقوى إلى توفر أقل وزمن انتقال أطول ومعدل نقل أقل. يمكنك اختيار مستوى تناسق استناداً إلى متطلبات حمل العمل لديك.

  • مدة البقاء (TTL). يمكن لـ Azure Cosmos DB حذف العناصر تلقائياً من حاوية بعد فترة زمنية معينة. تتيح هذه الإمكانية لـ Azure Cosmos DB العمل كمخزن بيانات ساخن للبيانات الحديثة، مع تخزين البيانات طويلة الأجل في تخزين Azure Blob البارد.

  • موجز التغيير. ميزة موجز التغيير تخرج قائمة مُرتبة من المستندات التي خضعت للتغيير وبالترتيب الذي تم تعديلها به. يؤدي كل حدث جديد في موجز تغيير حاوية Azure Cosmos DB تلقائياً إلى تشغيل دالة Azure Functions تفاعلية صغيرة. اعتماداً على محتويات مستند JSON، يمكن للدالة الاتصال بواجهة برمجة تطبيقات خدمة Azure IoT Hub وتنفيذ إجراء على الجهاز.

  • وحدات الطلب (RUs). وحدات الطلب هي وحدات حساب تقيس معدل نقل Azure Cosmos DB. يمكنك استخدام وحدات الطلب لتوسيع نطاق Azure Cosmos DB وتقليصه ديناميكياً، مع الحفاظ على التوفر وتحسين التكلفة والأداء.

  • التقسيم. يحدد مفتاح القسم كيفية توجيه Azure Cosmos DB للبيانات في الأقسام. معرف جهاز IoT هو مفتاح القسم المعتاد لتطبيقات IoT.

مكونات Azure الأخرى

يستخدم الحل أيضاً مكونات Azure التالية:

  • يشغل Azure IoT Edge التطبيقات على الحافة، مثل نماذج التعلم الآلي.

  • يعمل Azure IoT Hub كبوابة سحابية، مع استيعاب بيانات تتبع الاستخدام للجهاز على نطاقٍ واسعٍ. يدعم IoT Hub الاتصال مرةً أخرى بالأجهزة، مما يسمح بإرسال الإجراءات من السحابة إلى IoT Edge إلى الجهاز.

  • Azure Databricks مع Spark Structured Streaming هو نظام معالجة دفق قابل للتطوير ومتسامح مع الأخطاء يدعم أحمال عمل الدُفعات والدفق في الأصل. Azure Databricks هي طبقة التحويل والتحليلات، وتتصل بنقطة النهاية المتوافقة مع مركز أحداث IoT Hub باستخدام مكتبة Maven azure-eventhubs-spark_2.11:2.3.6.

  • يوفر Azure Blob Storage تخزين بيانات باردة وقابلة للتطوير وغير مكلفة وطويلة الأجل للبيانات غير المُنظَّمة.

  • Azure SQL Database هي قاعدة البيانات الارتباطية للمعاملات والبيانات الأخرى بخلاف إنترنت الأشياء.

  • Azure Synapse Analytics هو مستودع بيانات ونظام أساسي خاص بالإبلاغ لتخزين بيانات المؤسسة وتحليلات البيانات الضخمة. يحتوي Synapse Analytics على بيانات مُجمَّعة من Azure SQL Database وAzure Cosmos DB.

    يُمكّن Azure Synapse Link لـ Azure Cosmos DB التحليلات القريبة من الوقت الحقيقي عبر البيانات التشغيلية في Azure Cosmos DB، دون أي تأثير أداء أو تكلفة على أحمال عمل المعاملات. يستخدم Synapse Link محركي التحليلات في مساحة عمل Azure Synapse: SQL Serverless و Spark Pools.

  • Power BI عبارة عن مجموعة من أدوات تحليل الأعمال لتحليل البيانات ومشاركة التفاصيل. من الممكن لـ Power BI الاستعلام عن نموذج دلالي مخزن في Azure Analysis Services أو يمكنه الاستعلام عن Azure Synapse مباشرةً.

  • Azure App Service تنشئ تطبيقات الويب والهاتف المحمول. يتيح Azure API App لتطبيقات الجهات الخارجية استخدام واجهات برمجة التطبيقات استناداً إلى البيانات من طبقة التقديم.

  • Azure Functions هو نظام أساسي للحساب بلا خادم مدفوعاً بالأحداث ويمكنه العمل على نطاقٍ واسعٍ في السحابة ودمج الخدمات باستخدام المشغلات وعمليات ربط البيانات. يمكن لـ Azure Functions ترجمة تنسيقات رسائل IoT، أو تشغيل الإجراءات عند الاتصال بموجز تغيير Azure Cosmos DB.

البدائل

  • بدلاً من Azure Databricks، يمكن لطبقة التحويل والتحليلات استخدام HDInsight Storm أو HDInsight Spark أو Azure Stream Analytics لإجراء التحليلات المتدفقة، واستخدام Azure Functions لتحويل البيانات الأساسية للرسائل.

  • يمكن لطبقة تخزين الخدمة استخدام Azure Data Explorer لتخزين رسائل IoT. تحتوي هذه الخدمة أيضاً على قدرات تحليلات ثرية.

الاعتبارات

تحتوي Azure Cosmos DB على حد 20 غيغابايت لقسم منطقي واحد. بالنسبة لمعظم حلول IoT، هذا الحجم كاف. إذا لم يكن ذلك، يمكنك:

  • بادر بتعيين مفتاح القسم إلى حقل اصطناعي، وتعيين قيمة مركبة للحقل، مثل معرف الجهاز + الشهر الحالي والسنة الحالية. تضمن هذه الاستراتيجية العلاقة الأساسية عالية القيمة لتصميم قسم جيد. لمزيدٍ من المعلومات، راجع مقالة اختيار مفتاح القسم.

  • استناداً إلى دورة حياة البيانات، يمكنك نقل بيانات Azure Cosmos DB الأقدم إلى التخزين البارد، مثل Azure Blob Storage. يمكنك استخدام مزيج من موجز التغيير لنسخ البيانات نسخاً متماثلاً إلى التخزين البارد، وTLL لحذف البيانات تلقائياً من حاوية بعد فترةٍ زمنيةٍ معينةٍ.

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