استخراج وتحويل وتحميل (ETL) على نطاق واسع
الاستخراج والتحويل والتحميل (ETL) هي العملية التي يتم من خلالها الحصول على البيانات من مصادر مختلفة. يتم جمع البيانات في موقع قياسي وتنظيفها ومعالجتها. في النهاية، يتم تحميل البيانات في مخزن بيانات يمكن الاستعلام عنها منه. تقوم ETL القديمة بمعالجة بيانات الاستيراد وتنظيفها في مكانها ثم تخزينها في محرك بيانات ارتباط. مع Azure HDInsight، تدعم مجموعة متنوعة من مكونات بيئة Apache Hadoop ETL على نطاق واسع.
يتم تلخيص استخدام HDInsight في عملية ETL من خلال خط التدفق هذا:
تستكشف الأقسام التالية كل مرحلة من مراحل ETL والمكونات المرتبطة بها.
التزامن
يمتد التنظيم عبر جميع مراحل خط تدفق ETL. غالباً ما تتضمن وظائف ETL في HDInsight العديد من المنتجات المختلفة التي تعمل جنباً إلى جنب مع بعضها البعض. على سبيل المثال:
- يمكنك استخدام Apache Hive لتنظيف جزء من البيانات، وApache Pig لتنظيف جزء آخر.
- يمكنك استخدام Azure Data Factory لتحميل البيانات في Azure SQL Database من Azure Data Lake Store.
هناك حاجة إلى التنسيق لتشغيل الوظيفة المناسبة في الوقت المناسب.
Apache Oozie
Apache Oozie هو نظام تنسيق سير عمل يدير وظائف Hadoop. يعمل Oozie داخل مجموعة HDInsight ويتكامل مع Hadoop stack. يدعم Oozie وظائف Hadoop لـ Apache Hadoop MapReduce وPig وHive وSqoop. يمكنك استخدام Oozie لجدولة المهام الخاصة بنظام ما، مثل برامج Java أو برامج shell النصية.
لمزيد من المعلومات، راجع استخدم Apache Oozie مع Apache Hadoop لتحديد سير عمل وتشغيله على HDInsight. راجع أيضاً تفعيل خط تدفق البيانات.
Azure Data Factory
يوفر Azure Data Factory إمكانات التنسيق في شكل نظام أساسي كخدمة (PaaS). Azure Data Factory هي خدمة تكامل بيانات قائمة على السحابة. يسمح لك بإنشاء تدفقات عمل تعتمد على البيانات لتنظيم وأتمتة حركة البيانات وتحويل البيانات.
استخدم Azure Data Factory من أجل:
- إنشاء وجدولة سير العمل المستند إلى البيانات. تستوعب خطوط التدفق هذه البيانات من مخازن بيانات متباينة.
- معالجة البيانات وتحويلها باستخدام خدمات الحوسبة مثل HDInsight أو Hadoop. يمكنك أيضاً استخدام Spark أو Azure Data Lake Analytics أو Azure Batch أو Azure Machine Learning لهذه الخطوة.
- انشر بيانات الإخراج إلى مخازن البيانات، مثل Azure Synapse Analytics، لتستخدمها تطبيقات BI.
لمزيد من المعلومات حول Azure Data Factory، راجع الوثائق.
استيعاب تخزين الملفات وتخزين النتائج
يتم عادةً تحميل ملفات بيانات المصدر في موقع على Azure Storage أو Azure Data Lake Storage. عادةً ما تكون الملفات بتنسيق ثابت، مثل CSV. لكن يمكن أن تكون بأي شكل.
تخزين Azure
يحتوي Azure Storage على أهداف تكيفية محددة. راجع أهداف قابلية التوسع والأداء لتخزين Blob لمزيد من المعلومات. بالنسبة لمعظم العقد التحليلية، يتم قياس مساحة تخزين Azure بشكل أفضل عند التعامل مع العديد من الملفات الأصغر. طالما أنك ضمن حدود حسابك، يضمن Azure Storage نفس الأداء، بغض النظر عن حجم الملفات. يمكنك تخزين تيرابايت من البيانات والحصول على أداء متسق. هذه العبارة صحيحة، سواء كنت تستخدم مجموعة فرعية أو كل البيانات.
يحتوي Azure Storage على عدة أنواع من النقط. يعد append blob خياراً رائعاً لتخزين سجلات الويب أو بيانات المستشعر.
يمكن توزيع نقاط متعددة عبر العديد من الخوادم لتوسيع نطاق الوصول إليها. لكن يتم تقديم النقطة الواحدة من خلال خادم واحد فقط. على الرغم من إمكانية تجميع الكرات الثنائية الكبيرة منطقياً في حاويات البيانات الثنائية الكبيرة، إلا أنه لا توجد تأثيرات على التقسيم من هذه المجموعة.
يحتوي Azure Storage على طبقة WebHDFS API لتخزين البيانات الثنائية الكبيرة. يمكن لجميع خدمات HDInsight الوصول إلى الملفات الموجودة في تخزين Azure Blob لتنظيف البيانات ومعالجة البيانات. هذا مشابه لكيفية استخدام هذه الخدمات لنظام الملفات الموزعة Hadoop (HDFS).
عادةً ما يتم استيعاب البيانات في Azure Storage من خلال PowerShell أو Azure Storage SDK أو AzCopy.
Azure Data Lake Storage Gen2
يعد Azure Data Lake Storage مستودعاً مُداراً عالي النطاق لبيانات التحليلات. إنه متوافق مع نموذج تصميم مشابه لـ HDFS ويستخدمه. يوفر Data Lake Storage قدرة غير محدودة على التكيف مع السعة الإجمالية وحجم الملفات الفردية. إنه اختيار جيد عند العمل بملفات كبيرة، لأنه يمكن تخزينها عبر عقد متعددة. يتم تقسيم البيانات في Data Lake Storage خلف الكواليس. يمكنك الحصول على إنتاجية هائلة لتشغيل وظائف تحليلية مع الآلاف من المنفذين المتزامنين الذين يقومون بقراءة وكتابة مئات التيرابايت من البيانات بكفاءة.
يتم عادةً استيعاب البيانات في Data Lake Storage من خلال Azure Data Factory. يمكنك أيضاً استخدام Data Lake Storage SDKs أو خدمة AdlCopy أو Apache DistCp أو Apache Sqoop. تعتمد الخدمة التي تختارها على مكان البيانات. إذا كان موجوداً في مجموعة Hadoop موجودة، فيمكنك استخدام Apache DistCp أو خدمة AdlCopy أو Azure Data Factory. بالنسبة للبيانات في تخزين Azure Blob، يمكنك استخدام Azure Data Lake Storage .NET SDK أو Azure PowerShell أو Azure Data Factory.
تم تحسين Data Lake Storage لاستيعاب الأحداث من خلال Azure Event Hubs.
اعتبارات لكلا خياري التخزين
لتحميل مجموعات البيانات في نطاق تيرابايت، يمكن أن يكون زمن انتقال الشبكة مشكلة كبيرة. هذا صحيح بشكل خاص إذا كانت البيانات تأتي من موقع محلي. في مثل هذه الحالات، يمكنك استخدام هذه الخيارات:
Azure ExpressRoute: أنشئ اتصالات خاصة بين مراكز بيانات Azure والبنية التحتية المحلية. توفر هذه الاتصالات خياراً موثوقاً به لنقل كميات كبيرة من البيانات. لمزيد من المعلومات، راجع وثائق Azure ExpressRoute.
تحميل البيانات من محركات الأقراص الثابتة يمكنك استخدام خدمة Azure Import/Export لشحن محركات الأقراص الثابتة ببياناتك إلى مركز بيانات Azure. يتم تحميل بياناتك أولاً إلى مساحة تخزين Azure Blob. يمكنك بعد ذلك استخدام Azure Data Factory أو أداة AdlCopy لنسخ البيانات من تخزين Azure Blob إلى تخزين Data Lake.
Azure Synapse Analytics
يعد Azure Synapse Analytics خياراً مناسباً لتخزين النتائج المعدة. يمكنك استخدام Azure HDInsight لأداء تلك الخدمات لتحليلات Azure Synapse.
Azure Synapse Analytics عبارة عن مخزن قاعدة بيانات ارتباطية تم تحسينه لأحمال العمل التحليلية. يتم قياسه على أساس الجداول المقسمة. يمكن تقسيم الجداول عبر عقد متعددة. يتم تحديد العقد في وقت الإنشاء. يمكنهم التوسع بعد الحقيقة، لكن هذه عملية نشطة قد تتطلب نقل البيانات. لمزيد من المعلومات، راجع إدارة الحساب في Azure Synapse Analytics.
Apache HBase
Apache HBase هو متجر مفاتيح/قيمة متاح في Azure HDInsight. إنها قاعدة بيانات مفتوحة المصدر NoSQL مبنية على Hadoop وتم تصميمها على غرار Google BigTable. يوفر HBase وصولاً عشوائياً عالي الأداء واتسّاقاً قوياً لكميات كبيرة من البيانات غير المهيكلة وشبه المنظمة.
نظراً لأن HBase هي قاعدة بيانات غير مخطط لها، فلن تحتاج إلى تعريف الأعمدة وأنواع البيانات قبل استخدامها. يتم تخزين البيانات في صفوف الجدول، ويتم تجميعها حسب عائلة الأعمدة.
تتسع التعليمة البرمجية مفتوحة المصدر خطياً لتشمل بيتا بايت من البيانات على آلاف العقد. يعتمد HBase على تكرار البيانات ومعالجة الدُفعات والميزات الأخرى التي توفرها التطبيقات الموزعة في بيئة Hadoop.
HBase هي وجهة جيدة لأجهزة الاستشعار وبيانات السجل لتحليلها في المستقبل.
تعتمد قابلية التكيف HBase على عدد العقد في مجموعة HDInsight.
قواعد بيانات Azure SQL
يقدم Azure ثلاث قواعد بيانات علائقية PaaS:
- تعدAzure SQL Database أحد تطبيقات Microsoft SQL Server. لمزيد من المعلومات حول الأداء، راجع ضبط الأداء في Azure SQL Database.
- Azure Database for MySQL هي تطبيق لـ Oracle MySQL.
- تعدAzure Database for PostgreSQL أحد تطبيقات PostgreSQL.
أضف المزيد من وحدة المعالجة المركزية والذاكرة لتوسيع نطاق هذه المنتجات. يمكنك أيضاً اختيار استخدام الأقراص المتميزة مع المنتجات لتحسين أداء الإدخال/الإخراج.
Azure Analysis Services
Azure Analysis Services عبارة عن محرك بيانات تحليلي يُستخدم في دعم القرار وتحليلات الأعمال. يوفر البيانات التحليلية لتقارير الأعمال وتطبيقات العميل مثل Power BI. تعمل البيانات التحليلية أيضاً مع Excel وتقارير SQL Server Reporting Services وأدوات تصور البيانات الأخرى.
قياس مكعبات التحليل عن طريق تغيير المستويات لكل مكعب على حدة. لمزيد من المعلومات، راجع أسعار خدمات تحليل Azure.
استخراج وتحميل
بعد وجود البيانات في Azure، يمكنك استخدام عديد من الخدمات لاستخراجها وتحميلها في منتجات أخرى. يدعم HDInsight Sqoop وFlume.
Apache Sqoop
Apache Sqoop هي أداة مصممة لنقل البيانات بكفاءة بين مصادر البيانات المهيكلة وشبه المهيكلة وغير المهيكلة.
يستخدم Sqoop MapReduce لاستيراد البيانات وتصديرها، لتوفير عملية متوازية والتسامح مع الخطأ.
Apache Flume
Apache Flume هي خدمة موزعة وموثوقة ومتاحة لجمع كميات كبيرة من بيانات السجل وتجميعها ونقلها بكفاءة. تعتمد بنيتها المرنة على تدفق تدفقات البيانات. Flume قوي ومتحمل للأخطاء مع آليات موثوقية قابلة للضبط. لديها عديد من آليات تجاوز الفشل والاسترداد. يستخدم Flume نموذج بيانات بسيطاً قابلاً للتوسيع يسمح بالتطبيق التحليلي عبر الإنترنت.
لا يمكن استخدام Apache Flume مع Azure HDInsight. ولكن، يمكن أن يستخدم تثبيت Hadoop المحلي Flume لإرسال البيانات إلى تخزين Azure Blob أو تخزين Azure Data Lake. لمزيد من المعلومات، راجع استخدام Apache Flume مع HDInsight.
تحويل
بعد وجود البيانات في الموقع المختار، تحتاج إلى تنظيفها أو دمجها أو تحضيرها لنمط استخدام محدد. Hive وPig وSpark SQL كلها خيارات جيدة لهذا النوع من العمل. كلها مدعومة على HDInsight.