Apache Hive היא מסגרת שיושבת בראש Hadoop לביצוע שאילתות אד-הוק על נתונים בהודו. כוורת תומכת ב- HiveQL, הדומה ל- SQL, אך אינה תומכת במבנים השלמים של SQL.
כוורת מכסה את שאילתת HiveQL לתוכנית Java MapReduce ואז מגישה אותה לאשכול Hadoop. ניתן להגיע לאותה תוצאה באמצעות HiveQL ו- Java MapReduce, אך שימוש ב- Java MapReduce ידרוש הרבה קוד לכתיבה / ניפוי באגים בהשוואה ל- HiveQL. לכן, HiveQL מגדילה את תפוקת המפתחים.
לסיכום, Hive, באמצעות שפת HiveQL, מספקת הפשטה ברמה גבוהה יותר על תכנות Java MapReduce. כמו בכל הפשטה אחרת ברמה גבוהה, יש מעט תקורה בביצועים באמצעות HiveQL בהשוואה ל- Java MapReduce, אך קהילת Hive פועלת לצמצום פער זה ברוב התרחישים הנפוצים.
לאורך אותו קו, חזיר מספק הפשטה ברמה גבוהה יותר על MapReduce. חזיר תומך במבני PigLatin, שהומרו לתוכנית Java MapReduce ואז מוגשים לאשכול Hadoop.
בעוד HiveQL היא שפה הצהרתית כמו SQL, PigLatin היא שפת זרימת נתונים. ניתן לשלוח את הפלט של מבנה PigLatin אחד כקלט למבנה PigLatin אחר וכן הלאה.
זמן מה לאחר מכן, קלודרה פרסמה נתונים סטטיסטיים על אופי עומסי העבודה באשכול Hadoop טיפוסי וניתן יהיה לראות בקלות כי עבודות חזיר וכוורת מהוות חלק טוב מהעבודות באשכול Hadoop. בגלל התפוקה הגבוהה יותר של המפתחים, חברות רבות בוחרות בתקצירים ברמה גבוהה יותר כמו חזיר וכוורת. אז אנחנו יכולים להמר שיהיו הרבה פתיחות עבודה סביב כוורת וחזיר בהשוואה לפיתוח MapReduce.
אף על פי שספר חזיר התכנות פורסם באוקטובר 2011, ספר התכנות כוורת ראה אור לאחרונה יותר, באוקטובר 2012. עבור מי שיש לו ניסיון בעבודה עם RDBMS, תחילת העבודה עם כוייב הייתה אפשרות טובה יותר מאשר להתחיל עם חזיר. שימו לב גם ששפת PigLatin אינה קשה מאוד להתחיל איתה.
עבור אשכול Hadoop שעומד בבסיס, שקוף בין אם מוגשת ג'וב Java MapReduce או הגשת עבודה ב- MapReduce דרך Hive and Pig. בגלל האופי המכוון האצווה של משרות MapReduce, העבודות המוגשות באמצעות Hive and Pig הן גם אוריינטציה של אצווה.
לדרישות תגובה בזמן אמת, כוורת וחזיר אינן עונות על הדרישות בגלל האופי המוצהר הקודם של קבוצות המשרות של MapReduce. קלודרה פיתחה את אימפלה, שמבוססת על דרמל (פרסום מגוגל) לשאילתות אד-הוק אינטראקטיביות בראש הדואופ. אימפלה תומך בשאילתות דמויות SQL ותואם ל- HiveQL. אז כל היישומים הבנויים על גבי כוייב צריכים לעבוד עם שינויים מינימליים עם אימפלה. ההבדל העיקרי בין כוורת לאימפלה הוא שבעוד ש- HiveQL מומרת למשרות Java MapReduce, אימפלה לא ממירה את שאילתת SQL למשרות Java MapReduce.
האם כדאי לך ללכת עם חזיר או כוורת לדרישה מסוימת? זה נושא לבלוג אחר.
פרסם מחדש ברשותו של פרביין סירפטי. מאמר מקורי ניתן למצוא כאן: http://www.thecloudavenue.com/2012/12/introduction-to-apache-hive-and-pig.html