خنزير أباتشي

أباتشي بيج [ 1 ] منصة عالية المستوى لإنشاء برامج تعمل على أباتشي هادوب . تُسمى لغة هذه المنصة بيج لاتين . [ 1 ] يمكن لبيج تنفيذ مهام هادوب باستخدام ماب ريديوس ، أو أباتشي تيز، أو أباتشي سبارك . [ 2 ] تُجرّد بيج لاتين البرمجة من نمط جافا ماب ريديوس إلى تدوين يجعل برمجة ماب ريديوس عالية المستوى، على غرار لغة SQL لأنظمة إدارة قواعد البيانات العلائقية . يمكن توسيع بيج لاتين باستخدام دوال مُعرّفة من قِبل المستخدم (UDFs) يمكن للمستخدم كتابتها بلغات جافا ، أو بايثون ، أو جافا سكريبت ، أو روبي، أو جروفي [ 3 ] ثم استدعاؤها مباشرةً من اللغة.

تاريخ

طُوِّر برنامج Apache Pig في الأصل [ 4 ] في قسم الأبحاث في ياهو حوالي عام 2006، ليوفر للباحثين طريقةً مخصصةً لإنشاء وتنفيذ مهام MapReduce على مجموعات بيانات ضخمة جدًا. وفي عام 2007 [ 5 ] ، نُقل إلى مؤسسة برمجيات أباتشي .

إصدارتاريخ الإصدار الأصليأحدث إصدارتاريخ الإصدار [ 6 ]
غير مدعوم: 0.12008-09-110.1.12008-12-05
غير مدعوم: 0.22009-04-080.2.02009-04-08
غير مدعوم: 0.32009-06-250.3.02009-06-25
غير مدعوم: 0.429-08-20090.4.029-08-2009
غير مدعوم: 0.529-09-20090.5.029-09-2009
غير مدعوم: 0.62010-03-010.6.02010-03-01
غير مدعوم: 0.72010-05-130.7.02010-05-13
غير مدعوم: 0.82010-12-170.8.124-04-2011
غير مدعوم: 0.92011-07-290.9.22012-01-22
غير مدعوم: 0.102012-01-220.10.12012-04-25
غير مدعوم: 0.112013-02-210.11.12013-04-01
غير مدعوم: 0.122013-10-140.12.12014-04-14
غير مدعوم: 0.132014-07-040.13.02014-07-04
غير مدعوم: 0.142014-11-200.14.02014-11-20
غير مدعوم: 0.152015-06-060.15.02015-06-06
غير مدعوم: 0.162016-06-080.16.02016-06-08
غير مدعوم: 0.172017-06-190.17.02017-06-19
أحدث إصدار: 0.182025-09-150.18.02025-09-25
أسطورة:
غير مدعوم
مدعوم
أحدث إصدار
نسخة معاينة
الإصدار المستقبلي

تسمية

فيما يتعلق بتسمية لغة البرمجة Pig، فقد تم اختيار الاسم بشكل عشوائي، وبقي الاسم شائعاً لأنه سهل التذكر والتهجئة، فضلاً عن كونه اسماً جديداً. [ 7 ] [ 8 ] [ 9 ]

يُروى أن الباحثين العاملين على المشروع أطلقوا عليه في البداية اسم "اللغة" فقط. وعندما احتاجوا إلى اسمٍ ما، اقترح أحدهم اسم "بيج" (خنزير)، فاستقرّ الاسم. إنه اسمٌ غريبٌ لكنه لا يُنسى وسهل التهجئة. ورغم أن البعض أشار إلى أن الاسم يبدو متكلفًا أو سخيفًا، إلا أنه وفّر لنا نظام تسميةٍ مسليًا، مثل "لغة الخنزير" (Pig Latin) للغة، و"جرانت" (Grunt) للواجهة البرمجية، و"بيجي بانك" (PiggyBank) للمستودع المشترك الشبيه بـ CPAN.

آلان غيتس، دانيال داي، "ما هو بيغ؟"، برمجة بيغ، الطبعة الثانية (نوفمبر 2017)

مثال

فيما يلي مثال على برنامج " عد الكلمات " بلغة بيج لاتين:

input_lines = LOAD '/tmp/my-copy-of-all-pages-on-internet' AS ( line: chararray ); -- استخراج الكلمات من كل سطر ووضعها في مجموعة بيانات، ثم تسطيح المجموعة للحصول على كلمة واحدة في كل صف words = FOREACH input_lines GENERATE FLATTEN ( TOKENIZE ( line )) AS word; -- تصفية أي كلمات تحتوي على مسافات بيضاء فقط filtered_words = FILTER words BY word MATCHES '\\w+' ; -- إنشاء مجموعة لكل كلمة word_groups = GROUP filtered_words BY word; -- حساب عدد الإدخالات في كل مجموعة word_count = FOREACH word_groups GENERATE COUNT ( filtered_words ) AS count , group AS word; -- ترتيب السجلات حسب العدد ordered_word_count = ORDER word_count BY count DESC ; STORE ordered_word_count INTO '/tmp/number-of-words-on-internet' ;

سيقوم البرنامج المذكور أعلاه بإنشاء مهام تنفيذية متوازية يمكن توزيعها عبر أجهزة متعددة في مجموعة Hadoop لحساب عدد الكلمات في مجموعة بيانات مثل جميع صفحات الويب على الإنترنت.

مقارنة بين Pig و SQL

بالمقارنة مع لغة SQL، فإن Pig

  1. يحتوي على نموذج علائقي متداخل،
  2. يستخدم التقييم الكسول ،
  3. يستخدم عمليات الاستخراج والتحويل والتحميل (ETL).
  4. يستطيع تخزين البيانات في أي نقطة خلال مسار البيانات ،
  5. يعلن عن خطط التنفيذ ،
  6. يدعم تقسيمات خط الأنابيب، مما يسمح لسير العمل بالاستمرار على طول الرسوم البيانية الموجهة غير الدورية بدلاً من خطوط الأنابيب المتسلسلة بشكل صارم.

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

لغة Pig Latin إجرائية وتتناسب بسلاسة مع نموذج خط الأنابيب، بينما لغة SQL تصريحية . في SQL، يمكن للمستخدمين تحديد ضرورة ربط البيانات من جدولين، ولكن ليس تحديد آلية الربط المستخدمة (يمكنك تحديد آلية الربط في SQL، وبالتالي "... بالنسبة للعديد من تطبيقات SQL، قد لا يمتلك كاتب الاستعلام المعرفة الكافية بالبيانات أو الخبرة الكافية لتحديد خوارزمية ربط مناسبة"). تتيح Pig Latin للمستخدمين تحديد آلية الربط أو جوانب منها لاستخدامها في تنفيذ البرنامج النصي بعدة طرق. [ 11 ] في الواقع، تشبه برمجة Pig Latin تحديد خطة تنفيذ الاستعلام، مما يسهل على المبرمجين التحكم بشكل صريح في تدفق مهمة معالجة البيانات. [ 12 ]

تتمحور لغة SQL حول الاستعلامات التي تُنتج نتيجة واحدة. تتعامل SQL مع الأشجار بشكل طبيعي، لكنها لا تملك آلية مدمجة لتقسيم تدفق معالجة البيانات وتطبيق عوامل تشغيل مختلفة على كل تدفق فرعي. يصف نص Pig Latin رسمًا بيانيًا موجهًا غير دوري (DAG) بدلاً من خط أنابيب. [ 11 ]

تُعدّ قدرة لغة Pig Latin على تضمين كود المستخدم في أي مرحلة من مراحل معالجة البيانات مفيدةً لتطوير هذه العمليات. في حال استخدام لغة SQL، يجب أولاً استيراد البيانات إلى قاعدة البيانات، ثم يمكن البدء بعملية التنظيف والتحويل. [ 11 ]

انظر أيضاً

مراجع

  1. 1 2 "هادوب: أباتشي بيج" . تم الاطلاع عليه في 2 سبتمبر 2011 .
  2. " [ PIG-4167 ] التنفيذ الأولي لـ Pig على Spark - ASF JIRA" . issues.apache.org . تم الاطلاع عليه بتاريخ 29-12-2018 .
  3. "وظائف المستخدم المعرفة في Pig" . تم الاطلاع عليه في 3 مايو 2013 .
  4. "مدونة ياهو: بيج - الطريق إلى لغة برمجة عالية المستوى وفعالة لهادوب" . مؤرشف من الأصل في 3 فبراير 2016. تم الاطلاع عليه في 23 مايو 2015 .
  5. "الخنزير في حاضنة مؤسسة برمجيات أباتشي" . مؤرشف من الأصل في 3 فبراير 2016. تم الاطلاع عليه في 23 مايو 2015 .
  6. "إطلاق خنازير الأباتشي" . أباتشي . تم الاسترجاع في 13 مارس 2019 .
  7. "1. ما هو Pig؟ - برمجة Pig، الطبعة الثانية [ كتاب ] " . www.oreilly.com . تم الاطلاع عليه بتاريخ 1 أغسطس 2021 .
  8. غيتس، آلان (2016). برمجة بيغ . دانيال داي ( الطبعة الثانية). سيباستوبول، كاليفورنيا. ISBN  978-1-4919-3706-8. OCLC 964523786 . {{cite book}}: CS1 maint: موقع الناشر مفقود ( رابط )
  9. غيتس، آلان (27 يوليو 2021). "أسئلة حول تميمة الخنزير" . قائمة بريد مستخدمي الخنزير (قائمة بريدية). مؤرشف من الأصل في 1 أغسطس 2021. تم الاسترجاع في 1 أغسطس 2021 .
  10. "اتصالات جمعية الحوسبة الآلية: MapReduce وأنظمة إدارة قواعد البيانات المتوازية: أصدقاء أم أعداء؟" (ملف PDF) . مؤرشف من الأصل (ملف PDF) في 1 يوليو 2015. تم الاطلاع عليه في 23 مايو 2015 .
  11. ١ ٢ ٣ "فريق تطوير ياهو بيج: مقارنة بين لغة بيج لاتين ولغة SQL لبناء مسارات معالجة البيانات" . مؤرشف من الأصل في ٣٠ مايو ٢٠١٥. تم الاطلاع عليه في ٢٣ مايو ٢٠١٥ .
  12. "ACM SigMod 08: Pig Latin: A Not-So-Foreign Language for Data Processing" (PDF) . تم الاطلاع عليه بتاريخ 23 مايو 2015 .