Apache Pig - ภาพรวม
Apache Pig คืออะไร?
Apache Pig เป็นนามธรรมเหนือ MapReduce เป็นเครื่องมือ / แพลตฟอร์มที่ใช้ในการวิเคราะห์ชุดข้อมูลขนาดใหญ่ที่แสดงเป็นกระแสข้อมูล โดยทั่วไปจะใช้หมูกับHadoop; เราสามารถดำเนินการจัดการข้อมูลทั้งหมดใน Hadoop โดยใช้ Apache Pig
ในการเขียนโปรแกรมวิเคราะห์ข้อมูล Pig ให้ภาษาระดับสูงที่เรียกว่า Pig Latin. ภาษานี้จัดเตรียมตัวดำเนินการต่างๆโดยใช้ซึ่งโปรแกรมเมอร์สามารถพัฒนาฟังก์ชันของตนเองสำหรับการอ่านเขียนและประมวลผลข้อมูล
เพื่อวิเคราะห์ข้อมูลโดยใช้ Apache Pigโปรแกรมเมอร์ต้องเขียนสคริปต์โดยใช้ภาษา Pig Latin สคริปต์ทั้งหมดเหล่านี้ถูกแปลงเป็นแผนที่และลดงานภายใน Apache Pig มีส่วนประกอบที่เรียกว่าPig Engine ที่ยอมรับสคริปต์ Pig Latin เป็นอินพุตและแปลงสคริปต์เหล่านั้นเป็นงาน MapReduce
ทำไมเราต้องใช้ Apache Pig?
โปรแกรมเมอร์ที่ไม่ค่อยเก่ง Java มักใช้ในการต่อสู้กับ Hadoop โดยเฉพาะอย่างยิ่งในขณะที่ทำงาน MapReduce ใด ๆ Apache Pig เป็นประโยชน์สำหรับโปรแกรมเมอร์ทุกคน
การใช้ Pig Latinโปรแกรมเมอร์สามารถทำงาน MapReduce ได้อย่างง่ายดายโดยไม่ต้องพิมพ์โค้ดที่ซับซ้อนใน Java
Apache Pig ใช้ multi-query approachซึ่งจะช่วยลดความยาวของรหัส ตัวอย่างเช่นการดำเนินการที่ต้องการให้คุณพิมพ์รหัส 200 บรรทัด (LoC) ใน Java สามารถทำได้อย่างง่ายดายโดยพิมพ์น้อยเพียง 10 LoC ใน Apache Pig ในที่สุด Apache Pig จะลดเวลาในการพัฒนาลงเกือบ 16 เท่า
Pig Latin คือ SQL-like language และเรียนรู้ Apache Pig ได้ง่ายเมื่อคุณคุ้นเคยกับ SQL
Apache Pig มีตัวดำเนินการในตัวจำนวนมากเพื่อรองรับการดำเนินการกับข้อมูลเช่นการรวมตัวกรองการสั่งซื้อและอื่น ๆ นอกจากนี้ยังมีประเภทข้อมูลที่ซ้อนกันเช่นสิ่งที่เพิ่มขึ้นถุงและแผนที่ที่ไม่มีใน MapReduce
คุณสมบัติของหมู
Apache Pig มาพร้อมกับคุณสมบัติดังต่อไปนี้ -
Rich set of operators - มีตัวดำเนินการจำนวนมากในการดำเนินการเช่น join, sort, filer ฯลฯ
Ease of programming - Pig Latin คล้ายกับ SQL และง่ายต่อการเขียนสคริปต์ Pig ถ้าคุณเก่ง SQL
Optimization opportunities - งานใน Apache Pig จะเพิ่มประสิทธิภาพการดำเนินการโดยอัตโนมัติดังนั้นโปรแกรมเมอร์จึงต้องเน้นเฉพาะความหมายของภาษาเท่านั้น
Extensibility - การใช้ตัวดำเนินการที่มีอยู่ผู้ใช้สามารถพัฒนาฟังก์ชันของตนเองเพื่ออ่านประมวลผลและเขียนข้อมูลได้
UDF’s - หมูให้สิ่งอำนวยความสะดวกในการสร้าง User-defined Functions ในภาษาโปรแกรมอื่น ๆ เช่น Java และเรียกใช้หรือฝังไว้ใน Pig Scripts
Handles all kinds of data- Apache Pig วิเคราะห์ข้อมูลทุกประเภททั้งแบบมีโครงสร้างและแบบไม่มีโครงสร้าง จะจัดเก็บผลลัพธ์ใน HDFS
Apache Pig Vs MapReduce
รายการด้านล่างนี้คือความแตกต่างที่สำคัญระหว่าง Apache Pig และ MapReduce
หมูอาปาเช่ | MapReduce |
---|---|
Apache Pig เป็นภาษาโฟลว์ข้อมูล | MapReduce คือกระบวนทัศน์การประมวลผลข้อมูล |
มันเป็นภาษาระดับสูง | MapReduce อยู่ในระดับต่ำและแข็ง |
การดำเนินการเข้าร่วมใน Apache Pig นั้นค่อนข้างง่าย | ค่อนข้างยากใน MapReduce ที่จะดำเนินการเข้าร่วมระหว่างชุดข้อมูล |
โปรแกรมเมอร์มือใหม่ที่มีความรู้พื้นฐานเกี่ยวกับ SQL สามารถทำงานกับ Apache Pig ได้อย่างสะดวก | การเปิดรับ Java จะต้องทำงานร่วมกับ MapReduce |
Apache Pig ใช้วิธีการค้นหาหลายคำซึ่งจะช่วยลดความยาวของรหัสได้มาก | MapReduce จะต้องใช้จำนวนบรรทัดเพิ่มขึ้นเกือบ 20 เท่าในการทำงานเดียวกัน |
ไม่จำเป็นต้องมีการรวบรวม ในการดำเนินการตัวดำเนินการ Apache Pig ทุกตัวจะถูกแปลงภายในเป็นงาน MapReduce | งาน MapReduce มีขั้นตอนการรวบรวมที่ยาวนาน |
Apache Pig กับ SQL
ด้านล่างนี้คือความแตกต่างที่สำคัญระหว่าง Apache Pig และ SQL
หมู | SQL |
---|---|
Pig Latin คือ procedural ภาษา. | SQL คือไฟล์ declarative ภาษา. |
ใน Apache Pig schemaเป็นทางเลือก เราสามารถจัดเก็บข้อมูลโดยไม่ต้องออกแบบสคีมา (ค่าต่างๆจะถูกเก็บไว้ที่ $ 01, $ 02 เป็นต้น) | สคีมาบังคับใน SQL |
โมเดลข้อมูลใน Apache Pig คือ nested relational. | โมเดลข้อมูลที่ใช้ใน SQL is flat relational. |
Apache Pig ให้โอกาสที่ จำกัด สำหรับ Query optimization. | มีโอกาสมากขึ้นสำหรับการเพิ่มประสิทธิภาพแบบสอบถามใน SQL |
นอกเหนือจากความแตกต่างข้างต้น Apache Pig Latin -
- อนุญาตให้แยกในท่อ
- ช่วยให้นักพัฒนาสามารถจัดเก็บข้อมูลได้ทุกที่ในท่อ
- ประกาศแผนการดำเนินการ
- จัดเตรียมตัวดำเนินการเพื่อดำเนินการฟังก์ชัน ETL (Extract, Transform และ Load)
Apache Pig Vs Hive
ทั้ง Apache Pig และ Hive ใช้เพื่อสร้างงาน MapReduce และในบางกรณี Hive ทำงานบน HDFS ในลักษณะเดียวกันกับที่ Apache Pig ทำ ในตารางต่อไปนี้เราได้ระบุประเด็นสำคัญบางประการที่ทำให้ Apache Pig แตกต่างจาก Hive
หมูอาปาเช่ | รัง |
---|---|
Apache Pig ใช้ภาษาที่เรียกว่า Pig Latin. เดิมถูกสร้างขึ้นที่Yahoo. | Hive ใช้ภาษาที่เรียกว่า HiveQL. เดิมถูกสร้างขึ้นที่Facebook. |
Pig Latin เป็นภาษาโฟลว์ข้อมูล | HiveQL เป็นภาษาประมวลผลแบบสอบถาม |
Pig Latin เป็นภาษาขั้นตอนและเหมาะกับกระบวนทัศน์ท่อ | HiveQL เป็นภาษาประกาศ |
Apache Pig สามารถจัดการข้อมูลที่มีโครงสร้างไม่มีโครงสร้างและกึ่งโครงสร้าง | ไฮฟ์ส่วนใหญ่เป็นข้อมูลที่มีโครงสร้าง |
การใช้งาน Apache Pig
โดยทั่วไปนักวิทยาศาสตร์ด้านข้อมูลจะใช้ Apache Pig ในการปฏิบัติงานที่เกี่ยวข้องกับการประมวลผลเฉพาะกิจและการสร้างต้นแบบอย่างรวดเร็ว ใช้ Apache Pig -
- เพื่อประมวลผลแหล่งข้อมูลขนาดใหญ่เช่นบันทึกเว็บ
- เพื่อดำเนินการประมวลผลข้อมูลสำหรับแพลตฟอร์มการค้นหา
- ในการประมวลผลการโหลดข้อมูลที่อ่อนไหวต่อเวลา
Apache Pig - ประวัติศาสตร์
ใน 2006Apache Pig ได้รับการพัฒนาเป็นโครงการวิจัยที่ Yahoo โดยเฉพาะอย่างยิ่งเพื่อสร้างและดำเนินการงาน MapReduce ในทุกชุดข้อมูล ใน2007Apache Pig เปิดแหล่งที่มาผ่าน Apache incubator ใน2008Apache Pig รุ่นแรกออกมาแล้ว ใน2010Apache Pig จบการศึกษาจากโครงการระดับบนสุดของ Apache