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