บทช่วยสอน Apache Pig: สุดยอดคู่มือสำหรับผู้เริ่มต้น [2022]

เผยแพร่แล้ว: 2021-01-08

บิ๊กดาต้าเป็นสาขาที่มีการพัฒนาอย่างต่อเนื่อง มีการใช้งานในอุตสาหกรรมต่างๆ เช่น การเงิน เทคโนโลยี การดูแลสุขภาพ ฯลฯ

ในการที่จะเป็นผู้เชี่ยวชาญด้านบิ๊กดาต้า คุณจะต้องเรียนรู้เทคโนโลยีต่างๆ ที่ใช้ในการวิเคราะห์บิ๊กดาต้า และ Hadoop ก็เป็นส่วนสำคัญของเทคโนโลยีบิ๊กดาต้าเหล่านั้น

Apache Pig เป็นหนึ่งในองค์ประกอบที่สำคัญมากมายของ Hadoop หากคุณต้องการวิเคราะห์ข้อมูลปริมาณมหาศาลอย่างรวดเร็ว คุณจะต้องใช้ Pig ในบทความนี้ เราจะเน้นที่ Apache Pig ซึ่งเป็นเครื่องมือวิเคราะห์ที่ไม่เพียงแต่ช่วยให้คุณดูแลข้อมูลก้อนใหญ่เท่านั้น แต่ยังช่วยประหยัดเวลาของคุณในขณะที่ทำเช่นนั้น

สารบัญ

บทช่วยสอน Apache Pig: มันคืออะไร?

การเรียนรู้เกี่ยวกับ Apache Pig (หรือ Hadoop Pig) เป็นสิ่งสำคัญหากคุณต้องการเรียนรู้ Hadoop เป็นแพลตฟอร์มที่คุณสามารถใช้วิเคราะห์ชุดข้อมูลจำนวนมากได้ คุณสามารถทำได้โดยแสดงชุดข้อมูลเป็นกระแสข้อมูล

เราทุกคนรู้ดีว่า Hadoop เป็นที่นิยมในโลก Data Science แค่ไหน และหากคุณสนใจที่จะเรียนรู้กรอบงานโอเพนซอร์ซนี้ให้เชี่ยวชาญ คุณจะต้องเรียนรู้เกี่ยวกับ Apache Pig

มันขึ้นอยู่กับ Map-Reduce ซึ่งเป็นองค์ประกอบสำคัญของ Hadoop เนื่องจากช่วยให้คุณสามารถวิเคราะห์ชุดข้อมูลขนาดใหญ่ คุณจึงสามารถทำงานได้อย่างมีประสิทธิภาพมากขึ้นในขณะที่ใช้เครื่องมือนี้ คุณสามารถใช้ Apache Pig สำหรับโครงการจัดการข้อมูลใน Hadoop ได้เช่นกัน

Pig เป็นเครื่องมือระดับสูงซึ่งต้องการให้คุณเรียนรู้ภาษาขั้นสูงที่เรียกว่า Pig Latin Pig Latin ช่วยให้คุณเขียนโปรแกรมวิเคราะห์ข้อมูล อ่านเพิ่มเติมเกี่ยวกับเครื่องมือ Hadoop ชั้นนำ ด้วยภาษานี้ คุณสามารถเขียน อ่าน และประมวลผลข้อมูลในขณะที่พัฒนาฟังก์ชันเฉพาะสำหรับงานเหล่านี้

สคริปต์ที่คุณเขียนในภาษา Pig Latin จะแปลงโดยอัตโนมัติในการดำเนินการลดแผนที่ Apache Pig's Engine (เรียกว่า Pig Engine) ช่วยให้คุณแปลงสคริปต์ที่เขียนเป็นการดำเนินการเหล่านั้น การเรียนรู้เครื่องมือนี้จะช่วยคุณอย่างมากในการดำเนินการ Big Data Analytics

มันลดความซับซ้อนของกระบวนการต่าง ๆ และช่วยให้คุณประหยัดเวลาด้วยภาษาสคริปต์ที่รวดเร็ว แม้ว่าจะมีช่วงการเรียนรู้ แต่เมื่อผ่านไปแล้ว คุณจะรู้ว่าเครื่องมือนี้เป็นเครื่องมือที่ตรงไปตรงมาที่สุดตัวหนึ่งในการทำงานด้วย

รับ ปริญญาวิศวกรรมซอฟต์แวร์ จากมหาวิทยาลัยชั้นนำของโลก รับโปรแกรม PG สำหรับผู้บริหาร โปรแกรมประกาศนียบัตรขั้นสูง หรือโปรแกรมปริญญาโท เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว

ประวัติของ Apache Pig

ในปี 2549 ที่ Yahoo Apache Pig ถูกสร้างขึ้นเพื่อดำเนินการ MapReduce ในชุดข้อมูลจำนวนมาก Apache Pig กลายเป็นโอเพ่นซอร์สในปี 2550 ผ่าน Apache Incubator หนึ่งปีหลังจากนั้น การเปิดตัวครั้งแรกก็เข้าสู่ตลาด

ในที่สุด ในปี 2010 Apache Pig ก็กลายเป็นโครงการระดับสูงของ Apache ตั้งแต่นั้นมา มันได้กลายเป็นเครื่องมือที่จำเป็นสำหรับมืออาชีพด้าน Big Data เมื่อคุณรู้ที่มาของ Pig แล้ว เรามาเริ่มพูดคุยกันว่าทำไมมันถึงได้รับความนิยมและมีข้อดีอย่างไร

คุณสมบัติของ Apache Pig

หมูอุดมไปด้วยคุณสมบัติ ฟังก์ชันที่หลากหลายทำให้เป็นเครื่องมือที่ทรงคุณค่าและไม่สามารถถูกแทนที่ได้สำหรับผู้เชี่ยวชาญ

นี่คือคุณสมบัติของมัน:

  • Pig มีโอเปอเรเตอร์หลายตัวที่คุณสามารถใช้เพื่อทำให้การดำเนินการตั้งโปรแกรมของคุณง่ายขึ้น
  • ช่วยให้คุณสร้างฟังก์ชันได้ตามความต้องการเฉพาะของคุณ ฟังก์ชันเหล่านี้เรียกว่า UDF (User Defined Functions) และคุณสามารถเขียนมันในภาษาการเขียนโปรแกรมใดๆ ก็ได้ รวมถึง Python, JRuby, Jave เป็นต้น
  • Pig มีความสามารถในการจัดการข้อมูลทุกประเภท นั่นหมายความว่า มันสามารถสัมผัสได้ มีโครงสร้าง กึ่งโครงสร้าง เช่นเดียวกับค่าข้อมูลที่ไม่มีโครงสร้าง
  • จะเพิ่มประสิทธิภาพการทำงานของคุณโดยอัตโนมัติก่อนดำเนินการ
  • ช่วยให้คุณทำงานทั้งโครงการได้โดยไม่ต้องกังวลเกี่ยวกับฟังก์ชัน Map และ Reduce ที่แยกจากกัน

ทำไม Apache Pig ถึงได้รับความนิยม?

Apache Pig มาพร้อมกับคุณสมบัติและข้อดีมากมายที่ทำให้จำเป็นสำหรับมืออาชีพด้าน Big Data

อ่าน: ความแตกต่างระหว่าง Big Data และ Hadoop

ยิ่งไปกว่านั้น เนื่องจากไม่จำเป็นต้องเรียนรู้ Java สำหรับการวิเคราะห์ข้อมูล มันจึงกลายเป็นตัวเลือกที่ต้องการอย่างรวดเร็วสำหรับโปรแกรมเมอร์ที่ไม่เชี่ยวชาญในการใช้ภาษานั้น

นี่คือสาเหตุบางประการ ที่ Apache Pig มีความสำคัญและเป็นที่นิยม:

  • คุณสามารถใช้ MapReduce และทำงานโดยไม่ต้องเรียนรู้ Java
  • คุณสามารถดำเนินการหลักโดยใช้โค้ดน้อยลงโดยใช้ Pig เมื่อคุณใช้ Pig เพื่อดำเนินการ MapReduce คุณจะเขียนโค้ดน้อยกว่าที่คุณเขียนถึง 20 เท่า หากคุณไม่ได้ใช้ Pig
  • Pig ช่วยคุณประหยัดเวลาได้มากในขณะที่ทำงานในโครงการ MapReduce
  • มีการดำเนินการที่หลากหลาย เช่น เข้าร่วม แยก ตัวกรอง ฯลฯ
  • Pig มีข้อมูลหลายประเภทในแบบจำลองซึ่งไม่มีใน Mapreduce ซึ่งรวมถึงกระเป๋า tuples และอื่นๆ

เมื่อคุณรู้แล้วว่าเหตุใดจึงเป็นที่นิยมกันมาก ในตอนนี้ เราควรเน้นที่สาเหตุทั่วไปบางประการของความสับสนเกี่ยวกับ Pig และเครื่องมือและภาษาอื่นๆ

ความแตกต่างระหว่าง MapReduce และ Apache Pig

แม้ว่า Apache Pig จะเป็นนามธรรมเหนือ MapReduce ของ Hadoop ฟังก์ชันที่ทับซ้อนกันของพวกมันก็สามารถสร้างความสับสนให้กับทุกคนได้ ทั้งคู่เกี่ยวข้องกับการทำงาน MapReduce แต่ถึงแม้จะมีแอปพลิเคชันที่คล้ายคลึงกัน ทั้งคู่ก็แตกต่างกันอย่างสิ้นเชิง

นี่คือความแตกต่างที่สำคัญระหว่าง Pig และ MapReduce:

  • Apache Pig เป็นภาษากระแสข้อมูลระดับสูง ในทางกลับกัน MapReduce เป็นเพียงกระบวนทัศน์ระดับต่ำสำหรับการประมวลผลข้อมูล
  • คุณสามารถทำงานเข้าร่วมใน Pig ได้อย่างราบรื่นและมีประสิทธิภาพมากเมื่อเปรียบเทียบกับ MapReduce หลังไม่มีตัวเลือกมากมายในการทำให้การดำเนินการเข้าร่วมของชุดข้อมูลหลายชุดง่ายขึ้น
  • คุณไม่จำเป็นต้องคอมไพล์อะไรเลยเมื่อคุณใช้ Apache Pig การดำเนินการ MapReduce ทั้งหมดต้องมีกระบวนการรวบรวมที่สำคัญ
  • คุณต้องมีความรู้ (อย่างน้อยระดับสามเณร) เกี่ยวกับ SQL หากคุณต้องการทำงานกับ Pig ในทางกลับกัน คุณต้องคุ้นเคยกับ Java เพื่อใช้งาน MapReduce
  • Pig เปิดใช้งานฟังก์ชันการสืบค้นข้อมูลหลายรายการ ซึ่งทำให้การทำงานของคุณมีประสิทธิภาพมากขึ้นเมื่อคุณเขียนโค้ดเพียงไม่กี่บรรทัด MapReduce ไม่มีความสามารถนี้ คุณจะต้องเขียนโค้ดเพิ่มอีก 20 บรรทัดสำหรับการดำเนินการเดียวกันใน MapReduce เมื่อเปรียบเทียบกับ Pig

ความแตกต่างระหว่าง SQL และ Apache Pig

ความสับสนอย่างมากในหมู่ผู้เชี่ยวชาญด้าน Big Data มือใหม่คือ SQL และ Apache Pig พวกเขาไม่ทราบความแตกต่างที่สำคัญระหว่างคนทั้งสอง

นี่คือความแตกต่างระหว่าง Apache Pig และ SQL:

  • โมเดลข้อมูลของ Apache Pig เป็นแบบซ้อนเชิงสัมพันธ์ ในขณะที่โมเดลข้อมูลของ SQL เป็นแบบเชิงสัมพันธ์แบบแบน โมเดลเชิงสัมพันธ์ที่ซ้อนกันมีโดเมนอะตอมและเชิงสัมพันธ์ โมเดลเชิงสัมพันธ์ แบบ แบน มีตารางเดียวสำหรับการจัดเก็บค่า
  • สคีมาเป็นทางเลือกใน Apache Pig แต่จำเป็นใน SQL ซึ่งหมายความว่าคุณสามารถจัดเก็บข้อมูลของคุณใน Apache Pig โดยไม่ต้องใช้ Schema ในขณะที่คุณไม่สามารถทำได้ด้วย SQL
  • Pig ไม่มีคุณสมบัติและตัวเลือกมากมายสำหรับการเพิ่มประสิทธิภาพ Query SQL มีตัวเลือกมากมายในเรื่องนี้
  • Apache Pig ใช้ Pig Latin ซึ่งเป็นภาษาขั้นตอน ในทางกลับกัน SQL เป็นภาษาประกาศ ดังนั้น ในขณะที่ Pig Latin ทำงานที่จำเป็น SQL จะเน้นที่การอธิบายสิ่งที่ระบบต้องดำเนินการ
  • คุณสามารถใช้งานฟังก์ชัน ETL ซึ่งได้แก่ Extract, Transform และ Load ใน Apache Pig คุณไม่สามารถทำได้ด้วย SQL
  • Pig ให้คุณจัดเก็บข้อมูลในตำแหน่งใดก็ได้ในไปป์ไลน์ แต่ SQL ไม่มีความสามารถนี้

ความแตกต่างระหว่างรังและหมู

'Hive vs Pig' เป็นหัวข้อยอดนิยมสำหรับการอภิปรายในหมู่ผู้เชี่ยวชาญ เมื่อคุณทราบความแตกต่างระหว่างทั้งสองแล้ว คุณจะไม่ได้เป็นส่วนหนึ่งของพวกเขา ทั้งสองเป็นส่วนหนึ่งของระบบนิเวศ Hadoop ทั้งคู่จำเป็นสำหรับการทำงานในโครงการ Big Data และอำนวยความสะดวกในการใช้งานส่วนประกอบ Hadoop อื่นๆ ด้วยเช่นกัน

เพื่อหลีกเลี่ยงความสับสนระหว่างทั้งสอง คุณควรอ่านความแตกต่างต่อไปนี้:

  • Apache Pig ใช้ Pig Latin ซึ่งเป็นภาษาโปรแกรมเชิงขั้นตอน Hive ใช้ภาษาประกาศที่เรียกว่า HiveQL ซึ่งคล้ายกับ SQL
  • Pig สามารถทำงานกับข้อมูลกึ่งโครงสร้าง มีโครงสร้าง และไม่มีโครงสร้าง Hive ทำงานร่วมกับข้อมูลที่มีโครงสร้างได้ในกรณีส่วนใหญ่
  • คุณจะใช้ Pig สำหรับการเขียนโปรแกรม ขณะที่คุณใช้ Hive เพื่อสร้างรายงาน
  • Pig รองรับรูปแบบไฟล์ Avro ซึ่ง Hive ไม่รองรับ
  • Pig ทำงานบนฝั่งไคลเอ็นต์ของคลัสเตอร์ในขณะที่ Hive ทำงานบนฝั่งเซิร์ฟเวอร์เหมือนกัน
  • Pig พบการใช้งานส่วนใหญ่ในหมู่โปรแกรมเมอร์และนักวิจัย ในทางกลับกัน Hive ค้นหาแอปพลิเคชันในหมู่นักวิเคราะห์ข้อมูล

Apache Pig ทำอะไรได้บ้าง

Apache Pig ใช้ Pig Latin เป็นภาษาที่ใช้ในการวิเคราะห์ข้อมูล เป็นภาษาระดับสูงที่คุณใช้สำหรับการประมวลผลข้อมูล ดังนั้นจึงต้องใช้ความพยายามเพิ่มเติมเล็กน้อยในการเรียนรู้

อย่างไรก็ตาม มีข้อมูลหลายประเภทพร้อมกับตัวดำเนินการสำหรับการปฏิบัติงานของคุณ ขั้นตอนแรกสำหรับการใช้ Pig คือการเขียนสคริปต์ Pig ซึ่งคุณจะเขียนในภาษา Pig Latin

หลังจากนั้น คุณจะต้องใช้หนึ่งในระบบการดำเนินการต่างๆ เพื่อดำเนินการงาน ตัวเลือกการดำเนินการต่างๆ ใน ​​Pig ได้แก่ Embedded, Grunt Shell และ UDF

หลังจากนั้นเฟรมเวิร์กของ Pig จะแปลงสคริปต์ตามข้อกำหนดในการสร้างเอาต์พุต

Apache Pig แปลง Pig Latin Scripts เป็นงาน MapReduce ด้วยวิธีนี้ งานของคุณในฐานะโปรแกรมเมอร์จะง่ายขึ้นมาก

สถาปัตยกรรม Apache Pig

ตอนนี้คุณรู้แล้วว่า Apache Pig ทำอะไรและทำงานอย่างไร มาเน้นที่ส่วนประกอบต่างๆ กัน ดังที่เราได้กล่าวไว้ก่อนหน้านี้ สคริปต์ Pig ได้รับการเปลี่ยนแปลงต่างๆ เพื่อสร้างผลลัพธ์ที่ต้องการ สำหรับการทำเช่นนั้น Apache Pig มีส่วนประกอบที่แตกต่างกันซึ่งดำเนินการเหล่านี้เป็นระยะ

เราจะพูดถึงแต่ละขั้นตอนแยกกัน

ด่านแรก: Parser

Parser จัดการช่วงเริ่มต้นของการวิเคราะห์ข้อมูล มันทำการตรวจสอบที่หลากหลายรวมถึงการตรวจสอบประเภทและการตรวจสอบไวยากรณ์ในสคริปต์ Parser เอาต์พุตสร้างที่เรียกว่า DAG (กราฟ acyclic กำกับทิศทาง)

DAG แสดงตัวดำเนินการทางตรรกะและคำสั่ง Pig Latin มันแสดงตัวดำเนินการเชิงตรรกะเป็นโหนดและกระแสข้อมูลเป็นขอบ

ขั้นตอนที่สอง: เครื่องมือเพิ่มประสิทธิภาพและคอมไพเลอร์

Parser ส่ง DAG ไปยังตัวเพิ่มประสิทธิภาพ ตัวเพิ่มประสิทธิภาพดำเนินการปรับให้เหมาะสมตามตรรกะของ DAG ซึ่งรวมถึงกิจกรรมต่างๆ เช่น การแปลง การแยก และอื่นๆ

มันทำหน้าที่หลายอย่างเพื่อลดปริมาณข้อมูลในไปป์ไลน์เมื่อประมวลผลข้อมูลที่สร้างขึ้น มันทำการเพิ่มประสิทธิภาพข้อมูลโดยอัตโนมัติและใช้ฟังก์ชั่นเช่น PushUpFilter, MapKeyPruner, Group By เป็นต้น

คุณมีตัวเลือกในการปิดคุณลักษณะการปรับให้เหมาะสมอัตโนมัติในฐานะผู้ใช้ หลังจาก Optimizer มาถึง Compiler ซึ่งรวบรวมโค้ดผลลัพธ์ลงในงาน MapReduce คอมไพเลอร์จัดการการแปลง Pig Script เป็นงาน MapReduce

ขั้นตอนที่สาม: เครื่องมือดำเนินการ

ในที่สุดก็มาถึง Execution Engine ที่งาน MapReduce ถูกโอนไปยัง Hadoop เมื่อโอนแล้ว Hadoop จะให้ผลลัพธ์ที่ต้องการ

คุณสามารถดูผลลัพธ์ของข้อมูลได้โดยใช้คำสั่ง 'DUMP' ในทำนองเดียวกัน หากคุณต้องการจัดเก็บเอาต์พุตใน HDFS (ส่วนประกอบหลักของ Hadoop) คุณจะต้องใช้คำสั่ง 'STORE'

แอปพลิเคชั่นของ Apache Pig

การใช้งานหลักของหมูมีดังนี้:

  • สำหรับการประมวลผลชุดข้อมูลขนาดใหญ่ เช่น ข้อมูลการสตรีมออนไลน์และเว็บล็อก
  • สำหรับการประมวลผลข้อมูลของแพลตฟอร์มการค้นหา Pig รองรับข้อมูลทุกประเภท ซึ่งมีประโยชน์มากสำหรับการวิเคราะห์แพลตฟอร์มการค้นหา
  • สำหรับการวิเคราะห์ข้อมูลที่อ่อนไหวต่อเวลา สิ่งนี้เกี่ยวข้องกับข้อมูลที่อัปเดตอย่างต่อเนื่อง เช่น ทวีตบน Twitter

ตัวอย่างที่ดีคือการวิเคราะห์ทวีตเกี่ยวกับหัวข้อใดหัวข้อหนึ่งบน Twitter บางทีคุณอาจต้องการทำความเข้าใจพฤติกรรมของลูกค้าเกี่ยวกับหัวข้อเฉพาะนั้น ทวีตมีสื่อหลากหลายรูปแบบ และพิกสามารถช่วยคุณวิเคราะห์เพื่อให้ได้ผลลัพธ์ที่ต้องการ

กวดวิชาหมู: จะไปจากที่นี่?

Apache Pig เป็นหนึ่งในส่วนที่สำคัญที่สุดของ Hadoop อย่างไม่ต้องสงสัย การเรียนรู้ไม่ใช่เรื่องง่าย แต่เมื่อคุ้นเคยแล้ว คุณจะเห็นว่างานของคุณง่ายขึ้นมากเพียงใด

มีหลายพื้นที่ใน Hadoop และ Big Data นอกเหนือจาก Pig

หากคุณอยากเรียนรู้เกี่ยวกับ apache pig, data science, ลองดู IIIT-B & upGrad's PG Diploma in Data Science ซึ่งสร้างขึ้นสำหรับมืออาชีพที่ทำงานและมีกรณีศึกษาและโครงการมากกว่า 10+ เวิร์กช็อปเชิงปฏิบัติ การให้คำปรึกษากับผู้เชี่ยวชาญในอุตสาหกรรม แบบตัวต่อตัวกับที่ปรึกษาในอุตสาหกรรม การเรียนรู้มากกว่า 400 ชั่วโมงและความช่วยเหลือด้านงานกับบริษัทชั้นนำ

upGrad เสนอหลักสูตรวิทยาศาสตรมหาบัณฑิตที่ไม่เหมือนใครในหลักสูตรวิทยาการคอมพิวเตอร์เพื่อสร้างเสริมทักษะและส่งเสริมการเติบโตในเส้นทางอาชีพการพัฒนาซอฟต์แวร์ของคุณ

วางแผนอาชีพการพัฒนาซอฟต์แวร์ของคุณตอนนี้

สมัครเลยตอนนี้สำหรับปริญญาโทด้านวิศวกรรมซอฟต์แวร์