Apache Hive เป็นเฟรมเวิร์กที่อยู่ด้านบนของ Hadoop สำหรับการทำเคียวรีแบบเฉพาะกิจบนข้อมูลใน Hadoop Hive รองรับ HiveQL ซึ่งคล้ายกับ SQL แต่ไม่สนับสนุนโครงสร้างที่สมบูรณ์ของ SQL
Hive covert เคียวรี HiveQL ลงในโปรแกรม Java MapReduce แล้วส่งไปยังคลัสเตอร์ Hadoop ผลลัพธ์เดียวกันสามารถทำได้โดยใช้ HiveQL และ Java MapReduce แต่การใช้ Java MapReduce จะต้องใช้รหัสจำนวนมากในการเขียน / ตรวจแก้จุดบกพร่องเมื่อเทียบกับ HiveQL ดังนั้น HiveQL จึงเพิ่มประสิทธิภาพการทำงานของนักพัฒนา
เพื่อสรุป Hive ผ่านภาษา HiveQL ให้สิ่งที่เป็นนามธรรมในระดับที่สูงกว่าการเขียนโปรแกรม Java MapReduce เช่นเดียวกับสิ่งที่เป็นนามธรรมระดับสูงอื่น ๆ มีค่าใช้จ่ายประสิทธิภาพเล็กน้อยโดยใช้ HiveQL เมื่อเทียบกับ Java MapReduce แต่ชุมชน Hive กำลังทำงานเพื่อ จำกัด ช่องว่างนี้ให้แคบลงสำหรับสถานการณ์ส่วนใหญ่ที่ใช้กันทั่วไป
ในแนวเดียวกัน Pig จะให้สิ่งที่เป็นนามธรรมในระดับที่สูงกว่า MapReduce Pig รองรับ PigLatin สร้างซึ่งถูกแปลงเป็นโปรแกรม Java MapReduce และส่งไปยังคลัสเตอร์ Hadoop
ในขณะที่ HiveQL เป็นภาษาที่ประกาศเช่น SQL, PigLatin เป็นภาษาของการไหลของข้อมูล เอาต์พุตของการสร้าง PigLatin หนึ่งสามารถส่งเป็นอินพุตไปยังการสร้าง PigLatin อื่นและอื่น ๆ
เมื่อเวลาผ่านไป Cloudera ตีพิมพ์สถิติเกี่ยวกับตัวละครของภาระงานในคลัสเตอร์ Hadoop ทั่วไปและสามารถสังเกตได้ง่ายว่างาน Pig และ Hive ประกอบขึ้นเป็นส่วนที่ดีของงานในคลัสเตอร์ Hadoop เนื่องจากประสิทธิภาพของนักพัฒนาซอฟต์แวร์ที่สูงขึ้นทำให้หลาย บริษัท กำลังเลือกใช้บทคัดย่อระดับสูงเช่น Pig และ Hive ดังนั้นเราสามารถเดิมพันได้ว่าจะมีการเปิดงานมากมายรอบรังผึ้งและหมูเมื่อเทียบกับการพัฒนา MapReduce
แม้ว่าหนังสือ Programming Pig ถูกตีพิมพ์ในเดือนตุลาคม 2011 แต่หนังสือ Programming Hive ได้รับการเผยแพร่เร็ว ๆ นี้ในเดือนตุลาคม 2012 สำหรับผู้ที่มีประสบการณ์การทำงานกับ RDBMS การเริ่มต้นใช้งาน Hive จะเป็นตัวเลือกที่ดีกว่าการเริ่มต้นใช้งาน Pig โปรดทราบด้วยว่าการใช้ภาษา PigLatin นั้นไม่ใช่เรื่องยากในการเริ่มต้น
สำหรับคลัสเตอร์ Hadoop พื้นฐานนั้นมีความโปร่งใสไม่ว่าจะส่งงาน Java MapReduce หรือส่งงาน MapReduce ผ่าน Hive และ Pig เนื่องจากลักษณะการทำงานแบบแบ็ตช์ของงาน MapReduce งานที่ส่งผ่าน Hive และ Pig จึงเป็นแบบแบ็ตช์ในลักษณะเดียวกัน
สำหรับความต้องการการตอบสนองแบบเรียลไทม์ Hive และ Pig ไม่ตรงตามข้อกำหนดเนื่องจากลักษณะการทำงานแบบแบตช์ที่กล่าวถึงก่อนหน้านี้ของงาน MapReduce Cloudera พัฒนา Impala ซึ่งมีพื้นฐานมาจาก Dremel (สิ่งพิมพ์จาก Google) สำหรับการสืบค้นแบบเฉพาะกิจที่ด้านบนของ Hadoop Impala สนับสนุนการสืบค้นที่คล้ายกับ SQL และเข้ากันได้กับ HiveQL ดังนั้นแอปพลิเคชันใด ๆ ที่สร้างขึ้นบน Hive ควรทำงานกับการเปลี่ยนแปลงเล็กน้อยกับ Impala ความแตกต่างที่สำคัญระหว่าง Hive และ Impala คือในขณะที่ HiveQL ถูกแปลงเป็นงาน Java MapReduce, Impala ไม่ได้คลุมเคียวรี SQL ลงในงาน Java MapReduce
คุณควรเลือก Pig หรือ Hive ตามความต้องการหรือไม่? นั่นเป็นหัวข้อสำหรับบล็อกอื่น
เผยแพร่ซ้ำโดยได้รับอนุญาตจาก Praveen Sripati บทความต้นฉบับสามารถพบได้ที่นี่: http://www.thecloudavenue.com/2012/12/introduction-to-apache-hive-and-pig.html