Pig: منصة رفيعة المستوى لـ Apache Hadoop
نشرت: 2023-02-22Pig هي منصة عالية المستوى لإنشاء برامج تعمل على Apache Hadoop. يشير المصطلح "Pig" إلى طبقة البنية التحتية للمنصة ، والتي تتكون من برنامج التحويل البرمجي وبيئة التنفيذ ، بالإضافة إلى مجموعة من المشغلين رفيعي المستوى. توفر طبقة البنية التحتية الخاصة بـ Pig مجموعة من الأدوات للمطورين لإنشاء برامج Pig الخاصة بهم وصيانتها وتنفيذها. Pig هو مشروع مفتوح المصدر وهو جزء من نظام Apache Hadoop البيئي . يعتمد نموذج برمجة Pig على تدفق البيانات ، مما يجعل من السهل كتابة البرامج التي تعالج كميات كبيرة من البيانات. تتكون برامج Pig من سلسلة من العوامل التي يتم تنفيذها في رسم بياني لا دوري موجه. تعد Pig خيارًا رائعًا لمعالجة كميات كبيرة من البيانات لأنها قابلة للتطوير وفعالة وسهلة الاستخدام.
كحل NoSQL ، فأنت تحتاج إلى طرق محددة ومحددة مسبقًا لتحليل البيانات والوصول إليها. SQL (UNION ، INTERSECT ، إلخ.) هو تعبير استعلام شائع لا يتم استخدامه كثيرًا في عالم البيانات الضخمة. نظرًا لأنه تم تحسين Hive لمعالجة البيانات الكبيرة والدُفعات ، فمن الأفضل لمس كل صف. تنفق Hive وقتًا ومالًا أقل بكثير على العمليات من Hadoop ، التي تتمتع بميزة الحجم. حتى الاستعلامات الصغيرة في أنظمة التطوير يمكن أن تكون "أوامر" من حيث الحجم أبطأ من الاستعلامات المماثلة على RDBMS. لا تقوم الخلية بتخزين نتائج الاستعلام مؤقتًا. تعد إعادة إرسال استعلام متكرر ممارسة شائعة في MapReduce.
هناك نوعان من Hive: 1) Hive ليست قاعدة بيانات ؛ بدلاً من ذلك ، هو محرك استعلام يدعم أجزاء SQL الخاصة بالاستعلام عن البيانات ب) Hive هي قاعدة بيانات مع دعم SQL ج) Hive هي قاعدة بيانات خاصة بـ SQL. Hive هو نظام مستودع بيانات قائم على SQL لـ Hadoop يتضمن Pig و Python ، من بين أشياء أخرى ؛ يستخدم Hive لتخزين بيانات Hadoop .
هل Pig A Sql؟

لا توجد إجابة صحيحة أو خاطئة على هذا السؤال ، لأنه يعتمد على الرأي الشخصي. قد يعتقد بعض الناس أن الخنزير هو SQL ، بينما قد لا يعتقد البعض الآخر. في النهاية ، الأمر متروك للفرد ليقرر ما إذا كان الخنزير SQL أم لا.
اليوم ، Apache Hive and Pig هما مصطلحان سرعان ما أصبحا مرادفين للبيانات الضخمة. باستخدام هذه الأدوات ، يمكن لمطوري البيانات والمحللين استخدامها لتقليل تعقيد MapReduce مع الحفاظ على مستوى عالٍ من تكامل البيانات. Hive هي بنية تحتية لمستودع البيانات تُعرف أيضًا باسم أداة ETL (الاستخراج والتحميل والتحويل). Apache Hive و Pig و SQL هي ثلاث أدوات شائعة لتحليل البيانات وإدارتها. يجب أن تكون على دراية بالمنصة التي ستكون الأفضل لاحتياجاتك ، وكم مرة يجب عليك استخدامها. لنلقِ نظرة على الطرق الثلاث المختلفة لاستخدام Hive و Pig و SQL في سياق هذه التقنيات الثلاث. لا تزال SQL ملكًا للمجموعة في إدارة وتحليل البيانات الضخمة ، على الرغم من هيمنة Apache Hive و Apache Pig. نظرًا لأن كل منها يؤدي وظيفة محددة ، فإن متطلباتها مصممة خصيصًا للعمل. يعتمد Apache Pig على البرامج النصية ويتطلب معرفة خاصة ، في حين أن Apache Hive هو حل قاعدة البيانات الوحيد الأصلي للمطور.
الخنزير حيوان متعدد الاستخدامات يتمتع بقدر كبير من المرونة. يمكن لـ Pig ، على سبيل المثال ، معالجة ملفات السجل التي تحتوي على بيانات JSON أو XML ، مما يسمح لك بقراءة البيانات. من الممكن أيضًا تخزين البيانات من خدمات الويب في Pig.
يمكن استخدام أنواع بيانات الخرائط ، والمجموعات ، وأنواع بيانات الحقائب بالتبادل. هم قادرون على التعامل مع البيانات من أي مصدر.
هل أداة Pig An Etl؟
لا توجد إجابة محددة لهذا السؤال لأنه يعتمد على كيفية تعريفك لأداة ETL. بشكل عام ، أداة ETL هي تطبيق برمجي يساعدك على استخراج البيانات من مصدر واحد أو أكثر ، وتحويلها إلى تنسيق متوافق مع نظامك المستهدف ، وتحميلها في هذا النظام. قد يقول بعض الناس أن الخنزير هو أداة ETL لأنه يمكنه أداء كل هذه الوظائف. قد يجادل آخرون بأن الخنزير ليس أداة ETL لأنها ليست مصممة خصيصًا لتحويل البيانات. في النهاية ، تعتمد الإجابة على هذا السؤال على تعريفك الخاص لأداة ETL.

كيف يمكنك استخدام الخنزير لمعالجة Etl؟
يمكن وصف تطبيق Pig كنموذج معاملة ETL ، والذي يصف كيفية استخلاص العملية للبيانات من كائن وتحويلها إلى مخزن بيانات استنادًا إلى مجموعة قواعد. يحدد المستخدمون الوظائف المحددة من قبل المستخدم (UDF) للخنزير من أجل استيعاب البيانات من الملفات والتدفقات والمصادر الأخرى.
ما هي أداة الخنزير؟
تقوم منصة أو أداة تعرف باسم Pig بمعالجة مجموعات البيانات الكبيرة. تحتوي هذه المكتبة على مستوى عالٍ من التجريد لمعالجة البيانات في عملية MapReduce. Pig Latin هي لغة برمجة نصية عالية المستوى تُستخدم في عملية الترميز لتطوير أكواد تحليل البيانات.
ما هو الفرق بين الخنزير و SQL؟
SQL Pig Latin و Apache Pig هي لغات إجرائية. SQL هي لغة برمجة نصية ذات طبيعة تعريفية. الأمر متروك تمامًا لـ Apache Pig سواء تم استخدام المخطط أم لا. يمكن تخزين البيانات دون الحاجة إلى مخطط (يتم تخزين أنواع القيم في $ و $ وما إلى ذلك).
هل الخنزير جزء من Hadoop؟
تطبيق Pig Hadoop هو لغة برمجة عالية المستوى يمكن استخدامها لتحليل مجموعات البيانات الضخمة. كان مشروع Pig Hadoop الخاص بـ Yahoo! من أوائل مشاريع Hadoop . بشكل عام ، يؤدي قدرًا كبيرًا من أعمال إدارة البيانات عند تشغيل Hadoop.
في مجال تحليل البيانات الكبيرة ، تعد Pig Hadoop لغة برمجة عالية المستوى. لتحليل البيانات باستخدام Apache Pig ، يجب علينا أولاً كتابة نصوص باستخدام Pig Latin. البرامج النصية التي سيتم تحويلها إلى مهام MapReduce . يتم تحقيق ذلك من خلال استخدام Pig Engine ، وهو ملحق Apache Pig. باتباع الخطوات أدناه ، يمكنك تثبيت Apache Pig على Linux / CentOS / Windows (عبر VM أو Cloudera). الخطوة الأولى هي تنزيل Apache Pig وتثبيته. الخطوة الثانية هي تغيير متغيرات بيئة Apache Pig باستخدام ملف bashrc.
في الخطوة 3 ، حدد إصدار Pig . يمكن حفظ هذا الملف في دليل آخر بعد نقله. الخطوة الخامسة هي تشغيل Grunt Shell (البرنامج النصي المستخدم لتشغيل Pig Latin) بالنقر فوق الأمر Pig.
لماذا تعتبر Pig Latin أفضل لغة برمجة عالية المستوى لتحليل البيانات
تمت كتابة كود تحليل البيانات Pig Latin بلغة نصية عالية المستوى. إنها لغة شبيهة بـ SQL تهدف إلى معالجة تدفقات البيانات المتوازية.
مثال خنزير أباتشي
Pig هي منصة عالية المستوى لإنشاء برامج تعمل على Apache Hadoop. تسمى لغة هذه المنصة Pig Latin. يمكن لـ Pig تنفيذ وظائف Hadoop الخاصة بها في MapReduce أو Tez أو Spark. يقوم Pig Latin بتجريد البرمجة من لغة MapReduce Java إلى تدوين يجعل برمجة MapReduce أسهل. على سبيل المثال ، عبارة Pig Latin التالية تكافئ كود Java MapReduce أعلاه: A = LOAD 'mydata' USING PigStorage ('،') AS (id: int، name: chararray، age: int، gpa: float)؛ تفريغ أ ؛