أسلوب بنية (هيكل) البيانات الضخمة

Azure Data Lake Analytics
Azure IoT

تصميم البيانات الضخمة للتعامل مع استيعاب ومعالجة وتحليل البيانات الضخمة جداً أو المعقدة لأنظمة قواعد البيانات التقليدية.

Logical diagram of a big data architecture style

تتضمن حلول البيانات الضخمة عادةً نوعاً واحداً أو أكثر من أنواع حِمل العمل التالية:

  • معالجة دفعة من ملفات مصادر البيانات الضخمة الثابتة.
  • معالجة في الوقت الحقيقي للبيانات الضخمة أثناء الحركة.
  • الاستكشاف التفاعلي للبيانات الضخمة.
  • التحليلات التنبؤية والتعلم الآلي.

تشتمل معظم هياكل البيانات الضخمة على بعض أو كل المكونات التالية:

  • مصادر البيانات: تبدأ جميع حلول البيانات الضخمة بمصدر واحد أو أكثر من مصادر البيانات. تتضمن الأمثلة ما يلي:

    • مخازن بيانات التطبيق، مثل قواعد البيانات العلائقية.
    • الملفات الثابتة التي تنتجها التطبيقات، مثل ملفات سجل خادم الويب.
    • مصادر البيانات في الوقت الحقيقي، مثل أجهزة إنترنت الأشياء.
  • تخزين البيانات: عادةً ما يتم تخزين البيانات لعمليات المعالجة المجمعة في مخزن ملفات موزع يمكن أن يحتوي على كميات كبيرة من الملفات الكبيرة بتنسيقات مختلفة. غالباً ما يُطلق على هذا النوع من المخازن مستودع البيانات. تتضمن خيارات تنفيذ Azure Storage Data Lake Store هذا أو حاويات البيانات الثنائية الكبيرة في Azure Storage.

  • المعالجة المجمّعة: نظراً لأن مجموعات البيانات كبيرة جداً، يجب على حل البيانات الضخمة غالباً معالجة ملفات البيانات باستخدام وظائف مجمعة طويلة الأمد لتصفية البيانات وتجميعها وإعدادها للتحليل. عادةً ما تتضمن هذه الوظائف قراءة ملفات المصدر ومعالجتها وكتابة الإخراج إلى ملفات جديدة. تتضمن الخيارات تشغيل وظائف U-SQL في Azure Data Lake Analytics، باستخدام Apache Hive أو Pig أو وظائف Map/Reduce المخصصة في مجموعة HDInsight Hadoop، أو استخدام برامج Java أو Scala أو Python في مجموعة HDInsight Spark.

  • عرض الرسائل في الوقت الحقيقي: إذا كان الحل يتضمن مصادر في الوقت الحقيقي، فيجب أن تتضمن البنية طريقة لتسجيل الرسائل في الوقت الحقيقي وتخزينها لمعالجة البث. قد يكون هذا مخزناً بسيطاً للبيانات، حيث يتم إسقاط الرسائل الواردة في مجلد للمعالجة. ومع ذلك، يحتاج العديد من الحلول إلى مخزن استيعاب رسائل للعمل كمخزن مؤقت للرسائل، ولدعم معالجة التوسع، والتسليم الموثوق، ودلالات انتظار الرسائل الأخرى. تشتمل الخيارات على مراكز الأحداث وAzure IoT Hubs وKafka.

  • تدفق المعالجة: بعد التقاط الرسائل في الوقت الحقيقي، يجب أن يعالجها الحل عن طريق تصفية البيانات وتجميعها وإعدادها بطريقة أخرى للتحليل. ثم تتم كتابة بيانات التدفق المُعالجة إلى متلقي إخراج. يوفر Azure Stream Analytics خدمة معالجة دفق مُدارة تستند إلى استعلامات SQL التي تعمل بشكل دائم على تدفقات غير محدودة. يمكنك أيضا استخدام مصدر مفتوح تقنيات دفق Apache مثل Spark Streaming في مجموعة HDInsight.

  • مخزن البيانات التحليلية: يعمل العديد من حلول البيانات الضخمة على تجهيز البيانات للتحليل ثم خدمة البيانات التي تمت معالجتها بتنسيق منظم يمكن الاستعلام عنه باستخدام الأدوات التحليلية. يمكن أن يكون مخزن البيانات التحليلية المستخدم لخدمة هذه الاستعلامات عبارة عن مستودع بيانات علاقي على غرار Kimball، كما هو موضح في معظم حلول ذكاء الأعمال التقليدية (BI). بدلاً من ذلك، يمكن تقديم البيانات من خلال تقنية NoSQL ذات زمن انتقال منخفض مثل HBase، أو قاعدة بيانات Apache Hive تفاعلية توفر تجريداً بيانات التعريف الوصفية على ملفات البيانات في مخزن البيانات الموزع. يوفر Azure Synapse Analytics خدمة مُدارة لتخزين البيانات واسعة النطاق ومستندة إلى السحابة. يدعم HDInsight Interactive Apache Hive وHBase وSpark SQL، والتي يمكن استخدامها أيضاً لخدمة البيانات للتحليل.

  • التحليل وإعداد التقارير: الهدف من معظم حلول البيانات الضخمة هو توفير نتائج تحليلات حول البيانات من خلال التحليل وإعداد التقارير. لتمكين المستخدمين من تحليل البيانات، قد تتضمن البنية طبقة نمذجة بيانات، مثل مكعب OLAP متعدد الأبعاد أو نموذج بيانات جدولي في Azure Analysis Services. قد يدعم أيضاً ذكاء الأعمال ذاتية الخدمة، باستخدام تقنيات النمذجة والتمثيل في Microsoft Power BI أو Microsoft Excel. يمكن أن يأخذ التحليل وإعداد التقارير أيضاً شكل استكشاف البيانات التفاعلي بواسطة علماء البيانات أو محللي البيانات. بالنسبة لهذه السيناريوهات، تدعم العديد من خدمات Azure مفكرات الملاحظات التحليلية، مثل Jupyter، ما يمكّن هؤلاء المستخدمين من الاستفادة من مهاراتهم الحالية مع Python أو R. لاستكشاف البيانات على نطاق واسع، يمكنك استخدام Microsoft R Server، إما مستقل أو مع Spark.

  • التنظيم: تتكون معظم حلول البيانات الضخمة من عمليات معالجة البيانات المتكررة، المغلفة في تدفقات العمل، والتي تحول بيانات المصدر، وتنقل البيانات بين مصادر ومتلقيين متعددين، وتحميل البيانات التي تمت معالجتها في مخزن بيانات تحليلي، أو تدفع بالنتائج مباشرة إلى تقرير أو لوحة تحكم. للتنفيذ التلقائي فيما يخص عمليات سير العمل هذه، يمكنك استخدام تقنية التزامن مثل Azure Data Factory أو Apache Oozie وSqoop.

تتضمن Azure العديد من الخدمات التي يمكن استخدامها في بنية البيانات الضخمة. تنقسم تقريباً إلى فئتين:

  • الخدمات المدارة، بما في ذلك Azure Data Lake Store وAzure Data Lake Analytics وAzure Synapse Analytics وAzure Stream Analytics وAzure Event Hubs وAzure IoT Hub وAzure Data Factory.
  • تقنيات مفتوحة المصدر تستند إلى منصة Apache Hadoop، بما في ذلك HDFS وHBase وHive وSpark وOozie وSqoop وKafka. تتوفر هذه التقنيات على Azure في خدمة Azure HDInsight.

هذه الخيارات ليست متعارضة، والعديد من الحلول تجمع بين تقنيات مفتوحة المصدر وخدمات Azure.

متى تستخدم هذه البنية

ضع في اعتبارك أسلوب البنية هذا عندما تحتاج إلى:

  • تخزين البيانات ومعالجتها بكميات كبيرة جداً بالنسبة لقاعدة البيانات التقليدية.
  • تحويل البيانات غير المهيكلة للتحليل وإعداد التقارير.
  • يمكنك تسجيل ومعالجة وتحليل تدفقات البيانات غير المحدودة في الوقت الحقيقي أو بزمن انتقال منخفض.
  • استخدم Azure التعلم الآلي أو خدمات Azure المعرفية.

المزايا

  • خيارات التكنولوجيا. يمكنك مزج خدمات Azure المُدارة وتقنيات Apache ومطابقتها في مجموعات HDInsight، للاستفادة من المهارات الحالية أو استثمارات التكنولوجيا.
  • الأداء من خلال التوازي. تستفيد حلول البيانات الضخمة من التوازي، ما يتيح حلولاً عالية الأداء تتناسب مع أحجام كبيرة من البيانات.
  • مقياس مرن. تدعم جميع المكونات في بنية البيانات الضخمة التوفير على نطاق واسع، بحيث يمكنك ضبط الحل الخاص بك لأحمال العمل الصغيرة أو الكبيرة، والدفع مقابل الموارد التي تستخدمها فقط.
  • إمكانية التشغيل التفاعلي مع الحلول الحالية. تُستخدم مكونات بنية البيانات الضخمة أيضاً لمعالجة إنترنت الأشياء وحلول ذكاء الأعمال للمؤسسات، ما يتيح لك إنشاء حل متكامل عبر أحمال عمل البيانات.

تحديات

  • التعقيد. يمكن أن تكون حلول البيانات الضخمة معقدة للغاية، مع وجود العديد من المكونات للتعامل مع استيعاب البيانات من مصادر بيانات متعددة. قد يكون إنشاء عمليات البيانات الضخمة واختبارها واستكشاف الأخطاء وإصلاحها أمراً صعباً. علاوة على ذلك، قد يكون هناك عدد كبير من إعدادات التكوين عبر أنظمة متعددة يجب استخدامها لتحسين الأداء.
  • مجموعة المهارات. يتسم العديد من تقنيات البيانات الضخمة بدرجة عالية من التخصص، ويستخدم أطراً ولغات ليست نموذجية لهياكل التطبيقات الأكثر عمومية. من ناحية أخرى، تعمل تقنيات البيانات الضخمة على تطوير واجهات برمجة تطبيقات جديدة تعتمد على لغات أكثر رسوخاً. على سبيل المثال، تستند لغة U-SQL في Azure Data Lake Analytics إلى مجموعة من Transact-SQL وC #. وبالمثل، تتوفر واجهات برمجة التطبيقات المستندة إلى SQL لـ Apache Hive وHBase وSpark.
  • النضج التكنولوجي. يتطور العديد من التقنيات المستخدمة في البيانات الضخمة. في حين أن تقنيات Hadoop الأساسية مثل Apache Hive and Pig قد استقرت، فإن التقنيات الناشئة مثل Spark تقدم تغييرات وتحسينات واسعة النطاق مع كل إصدار جديد. تعد الخدمات المُدارة مثل Azure Data Lake Analytics وAzure Data Factory حديثة نسبياً، مقارنة بخدمات Azure الأخرى، ومن المحتمل أن تتطور بمرور الوقت.
  • الأمان. تعتمد حلول البيانات الضخمة عادةً على تخزين جميع البيانات الثابتة في مستودع بيانات مركزية. قد يكون تأمين الوصول إلى هذه البيانات أمراً صعباً، خاصةً عندما يجب استيعاب البيانات واستهلاكها بواسطة تطبيقات ومنصات متعددة.

أفضل الممارسات

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

  • بيانات التقسيم. تحدث معالجة الدُفعات عادةً وفقاً لجدول زمني متكرر - على سبيل المثال، أسبوعياً أو شهرياً. ملفات بيانات التقسيم، وهياكل البيانات مثل الجداول، بناءً على الفترات الزمنية التي تتطابق مع جدول المعالجة. يعمل ذلك على تبسيط استيعاب البيانات وجدولة الوظائف، كما يسهل استكشاف الأخطاء وإصلاحها. أيضاً، يمكن أن يؤدي تقسيم الجداول المستخدمة في استعلامات Apache Hive أو U-SQL أو SQL إلى تحسين أداء الاستعلام بشكل ملحوظ.

  • تطبيق دلالات الوصف المنطقي عند القراءة. يتيح لك استخدام مستودع البيانات دمج تخزين الملفات بتنسيقات متعددة، سواء كانت منظمة أو شبه منظمة أو غير منظمة البنية. استخدم دلالات schema-on-read، التي تعرض مخططاً على البيانات أثناء معالجة البيانات، وليس عند تخزين البيانات. يؤدي ذلك إلى زيادة المرونة في الحل، ومنع الازدحام أثناء استيعاب البيانات الناتجة عن التحقق من صحة البيانات وفحص النوع.

  • معالجة البيانات في مكانها. غالباً ما تستخدم حلول BI التقليدية عملية استخراج وتحويل وتحميل (ETL) لنقل البيانات إلى مستودع بيانات. باستخدام كميات أكبر من البيانات، ومجموعة أكبر من التنسيقات، تستخدم حلول البيانات الضخمة بشكل عام أشكالاً مختلفة من ETL، مثل التحويل والاستخراج والتحميل (TEL). باستخدام هذا النهج، تتم معالجة البيانات داخل مخزن البيانات الموزع، وتحويلها إلى الهيكل المطلوب، قبل نقل البيانات المحولة إلى مخزن بيانات تحليلي.

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

  • موارد نظام المجموعة المنفصلة. عند توزيع مجموعات HDInsight، ستحقق عادةً أداءً أفضل من خلال توفير موارد مجموعة منفصلة لكل نوع من أحمال العمل. على سبيل المثال، رغم أن مجموعات Spark تتضمن Hive، إذا كنت بحاجة إلى إجراء معالجة مكثفة باستخدام كل من Apache Hive وSpark، فيجب أن تفكر في توزيع مجموعات Spark وHadoop المخصصة المنفصلة. وبالمثل، إذا كنت تستخدم HBase وStorm لمعالجة تدفق منخفض زمن الوصول وApache Hive لمعالجة الدُفعات، ففكر في مجموعات منفصلة لـ Storm وHBase وHadoop.

  • تنظيم عرض البيانات. في بعض الحالات، قد تكتب تطبيقات الأعمال الحالية ملفات بيانات لمعالجة الدُفعات مباشرةً في حاويات تخزين البيانات الثنائية الكبيرة في Azure، حيث يمكن استهلاكها بواسطة HDInsight أو Azure Data Lake Analytics. ومع ذلك، ستحتاج غالباً إلى تنظيم استيعاب البيانات من مصادر البيانات المحلية أو الخارجية في مستودع البيانات. استخدم سير عمل أو تدفق متزامن، مثل تلك التي يدعمها Azure Data Factory أو Oozie، لتحقيق ذلك بطريقة يمكن التنبؤ بها ويمكن إدارتها مركزياً.

  • فرك البيانات الحساسة مبكراً. يجب أن يقوم سير عمل استيعاب البيانات بتنظيف البيانات الحساسة في وقت مبكر من العملية، لتجنب تخزينها في مستودع البيانات.

بنية (هيكل) إنترنت الأشياء

إنترنت الأشياء (IoT) هي مجموعة فرعية متخصصة من حلول البيانات الضخمة. يوضح الرسم البياني التالي بنية منطقية محتملة لإنترنت الأشياء. يؤكد الرسم التخطيطي على مكونات تدفق الأحداث في البنية.

Diagram of an IoT architecture

تستوعب البوابة السحابية أحداث الجهاز على حدود السحابة، باستخدام نظام مراسلة موثوق به وذي زمن انتقال منخفض.

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

بعد الاستيعاب، تمر الأحداث عبر واحد أو أكثر من معالجات التدفق التي يمكنها توجيه البيانات (على سبيل المثال، إلى التخزين) أو إجراء التحليلات والمعالجة الأخرى.

فيما يلي بعض أنواع المعالجة الشائعة. (هذه القائمة ليست شاملة بالتأكيد.)

  • كتابة بيانات الحدث في التخزين البارد، للأرشفة أو لتحليلات الدُفعات.

  • تحليلات المسار السريع، وتحليل تدفق الأحداث في الوقت الحقيقي (القريب)، لاكتشاف الحالات الشاذة، أو التعرف على الأنماط عبر النوافذ الزمنية المتغيرة، أو تشغيل التنبيهات عند حدوث حالة معينة في الدفق.

  • التعامل مع أنواع خاصة من الرسائل التي لا تتبع عن بُعد من الأجهزة، مثل الإخطارات والإنذارات.

  • التعلّم الآلي.

تعرض المربعات المظللة باللون الرمادي مكونات نظام إنترنت الأشياء التي لا ترتبط مباشرة بتدفق الأحداث، ولكنها مضمنة هنا للتأكد من اكتمالها.

  • يعد سجل الجهاز قاعدة بيانات للأجهزة المتوفرة، بما في ذلك معرفات الجهاز وبيانات التعريف للجهاز عادةً، مثل الموقع.

  • تعد واجهة برمجة التطبيقات (API) الاحتياطية واجهة خارجية شائعة لتوفير الأجهزة الجديدة وتسجيلها.

  • تسمح بعض حلول إنترنت الأشياء بإرسال رسائل الأوامر والتحكم إلى الأجهزة.

قدم هذا القسم عرضاً عالي المستوى جداً لإنترنت الأشياء، ويوجد العديد من التفاصيل الدقيقة والتحديات التي تجب مراعاتها. للحصول على مناقشة بنيوية مرجعية أكثر تفصيلاً، راجع Microsoft Azure IoT Reference Architecture (تنزيل ملف PDF).

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