Hive เป็นเครื่องมือ Big Data Analytics ที่ใช้กันอย่างแพร่หลายในธุรกิจ และเป็นจุดเริ่มต้นที่ยอดเยี่ยมหากคุณเพิ่งเริ่มใช้ Big Data บทเรียน Apache Hive นี้มีเนื้อหาเกี่ยวกับพื้นฐานของ Apache Hive เหตุใดจึงจำเป็นต้องมีกลุ่ม คุณลักษณะ และทุกสิ่งที่คุณควรรู้
ก่อนอื่นมาทำความเข้าใจกับเฟรมเวิร์ก Hadoop ที่ Apache Hive สร้างขึ้น
อาปาเช่ ฮาดูป
Apache Hadoop เป็นโปรแกรมฟรีและ โอเพนซอร์ส แพลตฟอร์มสำหรับจัดเก็บและประมวลผลชุดข้อมูลขนาดใหญ่ตั้งแต่ขนาดกิกะไบต์ไปจนถึงเพตาไบต์ Hadoop อนุญาตให้จัดกลุ่มคอมพิวเตอร์จำนวนมากเพื่อวิเคราะห์ชุดข้อมูลขนาดมหึมาในแบบคู่ขนาน แทนที่จะต้องใช้คอมพิวเตอร์ขนาดใหญ่เพียงเครื่องเดียวในการจัดเก็บและวิเคราะห์ข้อมูล
MapReduce และ Hadoop Distributed File System เป็นสององค์ประกอบ:
- แผนที่ลด – MapReduce เป็นเทคนิคการเขียนโปรแกรมแบบขนานสำหรับจัดการข้อมูลจำนวนมากที่มีการจัดระบบ กึ่งมีโครงสร้าง และไม่มีโครงสร้างบนคลัสเตอร์ฮาร์ดแวร์สินค้าโภคภัณฑ์
- เอชดีเอฟเอส – HDFS (ระบบไฟล์กระจาย Hadoop) เป็นองค์ประกอบเฟรมเวิร์ก Hadoop ที่จัดเก็บและประมวลผลข้อมูล เป็นระบบไฟล์ที่ทนทานต่อข้อผิดพลาดที่ทำงานบนฮาร์ดแวร์มาตรฐาน
โครงการย่อย (เครื่องมือ) ต่างๆ ในระบบนิเวศ Hadoop รวมถึง Sqoop, Pig และ Hive ใช้เพื่อช่วยเหลือโมดูล Hadoop
- รัง – Hive เป็นเฟรมเวิร์กสำหรับการเขียนสคริปต์สไตล์ SQL ที่ทำการคำนวณ MapReduce
- หมู – Pig เป็นภาษาการเขียนโปรแกรมเชิงขั้นตอนที่อาจใช้สร้างสคริปต์สำหรับกระบวนการ MapReduce
- สควอช – Sqoop เป็นเครื่องมือสำหรับนำเข้าและส่งออกข้อมูลระหว่าง HDFS และ RDBMS
ความหมายของ อาปาเช่ไฮฟ์?
Apache Hive เป็นโอเพ่นซอร์ส คลังข้อมูล โปรแกรมสำหรับอ่าน เขียน และจัดการชุดข้อมูลขนาดใหญ่ที่จัดเก็บโดยตรงใน Apache Hadoop Distributed File System (HDFS) หรือระบบจัดเก็บข้อมูลอื่นๆ เช่น Apache HBase
นักพัฒนา SQL อาจใช้ Hive เพื่อสร้างคำสั่ง Hive Query Language (HQL) สำหรับการสืบค้นข้อมูลและการวิเคราะห์ที่เทียบเท่ากับคำสั่ง SQL ปกติ มันถูกสร้างขึ้นเพื่อให้การเขียนโปรแกรม MapReduce ง่ายขึ้นโดยไม่จำเป็นต้องเรียนรู้และเขียนโค้ด Java แบบยาว แต่คุณสามารถเขียนคำค้นหาของคุณใน HQL และ Hive จะสร้างแผนที่และลดฟังก์ชันสำหรับคุณ
อินเทอร์เฟซแบบ SQL ของ Apache Hive ได้กลายเป็น Gold Standard สำหรับการค้นหาเฉพาะกิจ สรุป และวิเคราะห์ข้อมูล Hadoop เมื่อรวมอยู่ใน cloud เครือข่ายคอมพิวเตอร์โซลูชันนี้มีความคุ้มค่าและสามารถปรับขนาดได้โดยเฉพาะ ซึ่งเป็นสาเหตุที่บริษัทจำนวนมาก รวมทั้ง Netflix และ Amazon ยังคงพัฒนาและปรับปรุง Apache Hive ต่อไป
ประวัติขององค์กร
ในช่วงเวลาที่พวกเขาอยู่ที่ Facebook Joydeep Sen Sarma และ Ashish Thasoo ได้ร่วมกันสร้าง Apache Hive พวกเขาทั้งคู่ทราบดีว่าหากต้องการใช้งาน Hadoop ให้เกิดประโยชน์สูงสุด พวกเขาจะต้องสร้างงาน Java Map-Reduce ที่ค่อนข้างซับซ้อน พวกเขาตระหนักดีว่าพวกเขาไม่สามารถให้ความรู้แก่ทีมวิศวกรรมและทีมวิเคราะห์ที่กำลังขยายตัวอย่างรวดเร็วเกี่ยวกับทักษะที่จำเป็นต่อการใช้ประโยชน์จาก Hadoop ทั่วทั้งบริษัท วิศวกรและนักวิเคราะห์มักใช้ SQL เป็นส่วนติดต่อผู้ใช้
แม้ว่า SQL จะสามารถตอบสนองความต้องการด้านการวิเคราะห์ส่วนใหญ่ได้ แต่นักพัฒนาก็ตั้งใจที่จะรวมความสามารถในการตั้งโปรแกรมของ Hadoop ไว้ด้วย Apache Hive เกิดขึ้นจากวัตถุประสงค์ทั้งสองนี้: ภาษาประกาศที่ใช้ SQL ซึ่งช่วยให้นักพัฒนาสามารถนำสคริปต์และโปรแกรมของตนเองเข้ามาได้เมื่อ SQL ไม่เพียงพอ
นอกจากนี้ยังได้รับการพัฒนาเพื่อเก็บข้อมูลเมตาแบบรวมศูนย์ (ตาม Hadoop) เกี่ยวกับชุดข้อมูลทั้งหมดในบริษัท เพื่อทำให้การสร้างองค์กรที่ขับเคลื่อนด้วยข้อมูลง่ายขึ้น
Apache Hive ทำงานอย่างไร
โดยสรุป Apache Hive จะแปลงโปรแกรมอินพุตที่เขียนด้วยภาษา HiveQL (เหมือน SQL) เป็นงาน Java MapReduce, Tez หรือ Spark หนึ่งงานขึ้นไป (เอ็นจิ้นการดำเนินการทั้งหมดเหล่านี้เข้ากันได้กับ Hadoop YARN) หลังจากนั้น Apache Hive จะจัดเรียงข้อมูลลงในตารางสำหรับ Hadoop Distributed File System HDFS) และทำงานบนคลัสเตอร์เพื่อรับคำตอบ
ข้อมูล
ตาราง Apache Hive ถูกจัดเรียงในลักษณะเดียวกับการจัดระเบียบตารางในฐานข้อมูลเชิงสัมพันธ์ โดยมีหน่วยข้อมูลที่มีขนาดตั้งแต่ใหญ่ไปเล็ก ฐานข้อมูลประกอบด้วยตารางที่แบ่งออกเป็นดิวิชั่น ซึ่งถูกแบ่งออกเป็นบัคเก็ตเพิ่มเติม HiveQL (Hive Query Language) ใช้เพื่อเข้าถึงข้อมูล ซึ่งสามารถแก้ไขหรือต่อท้ายได้ ข้อมูลตารางจะถูกจัดลำดับภายในแต่ละฐานข้อมูล และแต่ละตารางมีไดเร็กทอรี HDFS ของตัวเอง
สถาปัตยกรรม
ตอนนี้เราจะพูดถึงแง่มุมที่สำคัญที่สุดของ Hive Architecture ส่วนประกอบของ Apache Hive มีดังนี้:
เมต้าสโตร์ — ติดตามข้อมูลเกี่ยวกับแต่ละตาราง เช่น โครงสร้างและที่ตั้ง ข้อมูลเมตาของพาร์ติชั่นก็รวมอยู่ใน Hive ด้วยเช่นเดียวกัน ซึ่งช่วยให้ผู้ขับขี่สามารถติดตามความคืบหน้าของชุดข้อมูลต่างๆ ที่กระจายไปทั่วคลัสเตอร์ ข้อมูลถูกจัดเก็บในรูปแบบ RDBMS ทั่วไป ข้อมูลเมตาของ Hive มีความสำคัญอย่างยิ่งต่อโปรแกรมควบคุมในการติดตามข้อมูล เซิร์ฟเวอร์สำรองจะทำสำเนาข้อมูลเป็นประจำเพื่อให้สามารถกู้คืนได้ในกรณีที่ข้อมูลสูญหาย
คนขับรถ – ไดรเวอร์ได้รับคำสั่ง HiveQL ซึ่งทำหน้าที่เป็นตัวควบคุม โดยการสร้างเซสชัน โปรแกรมควบคุมจะเริ่มดำเนินการคำสั่ง ติดตามอายุขัยและความก้าวหน้าของผู้บริหาร ในระหว่างการดำเนินการคำสั่ง HiveQL ไดรเวอร์จะบันทึกข้อมูลเมตาที่จำเป็น นอกจากนี้ยังทำหน้าที่เป็นจุดรวบรวมข้อมูลหรือผลลัพธ์การสืบค้นตามกระบวนการลด
ผู้รวบรวม – ดำเนินการรวบรวมแบบสอบถาม HiveQL ขณะนี้คิวรีถูกแปลงเป็นแผนปฏิบัติการ งานแสดงอยู่ในแผน นอกจากนี้ยังมีขั้นตอนที่ MapReduce ต้องทำเพื่อให้ได้ผลลัพธ์ตามที่แปลโดยคิวรี แบบสอบถามถูกแปลงเป็นโครงสร้างไวยากรณ์นามธรรมโดยคอมไพเลอร์ (AST) ของไฮฟ์ แปลง AST เป็น Directed Acyclic Graph หลังจากตรวจสอบความเข้ากันได้และข้อผิดพลาดของเวลาคอมไพล์ (DAG)
เพิ่มประสิทธิภาพ – เพิ่มประสิทธิภาพ DAG โดยทำการเปลี่ยนแปลงต่างๆ ในแผนปฏิบัติการ มันรวมการเปลี่ยนแปลงเพื่อประสิทธิภาพที่ดีขึ้น เช่น การเปลี่ยนไปป์ไลน์ของการรวมเป็นการรวมเดี่ยว เพื่อปรับปรุงความเร็ว ตัวเพิ่มประสิทธิภาพอาจแบ่งกิจกรรม เช่น การใช้การแปลงข้อมูลก่อนดำเนินการลด
ผู้ปฏิบัติการ – ตัวดำเนินการรันงานเมื่อการรวบรวมและการเพิ่มประสิทธิภาพเสร็จสิ้น งานจะถูกส่งโดยผู้ดำเนินการ
CLI, UI และเซิร์ฟเวอร์ประหยัด – อินเทอร์เฟซบรรทัดคำสั่ง (CLI) คือส่วนต่อประสานผู้ใช้ที่อนุญาตให้ผู้ใช้ภายนอกสื่อสารกับ Hive เซิร์ฟเวอร์แบบประหยัดของ Hive ซึ่งคล้ายกับโปรโตคอล JDBC หรือ ODBC ช่วยให้ไคลเอ็นต์ภายนอกสามารถสื่อสารกับ Hive ผ่านเครือข่ายได้
Security
Apache Hive ถูกรวมเข้ากับการรักษาความปลอดภัย Hadoop ซึ่งใช้ Kerberos สำหรับการตรวจสอบความถูกต้องร่วมกันระหว่างไคลเอนต์และเซิร์ฟเวอร์ HDFS กำหนดสิทธิ์สำหรับไฟล์ที่สร้างขึ้นใหม่ใน Apache Hive ช่วยให้คุณอนุมัติโดยผู้ใช้ กลุ่ม และอื่นๆ
คุณสมบัติที่สำคัญ
- Hive รองรับตารางภายนอก ซึ่งช่วยให้คุณประมวลผลข้อมูลโดยไม่ต้องจัดเก็บไว้ใน HDFS
- นอกจากนี้ยังเปิดใช้งานการแบ่งส่วนข้อมูลที่ระดับตารางเพื่อเพิ่มความเร็ว
- Apache Hive ตอบสนองความต้องการอินเทอร์เฟซระดับต่ำของ Hadoop ได้อย่างดีเยี่ยม
- Hive ทำให้การสรุปข้อมูล การสืบค้น และการวิเคราะห์ง่ายขึ้น
- HiveQL ไม่ต้องการทักษะการเขียนโปรแกรมใดๆ การทำความเข้าใจแบบสอบถาม SQL อย่างง่ายก็เพียงพอแล้ว
- นอกจากนี้เรายังสามารถใช้ Hive เพื่อดำเนินการสืบค้นข้อมูลเฉพาะกิจสำหรับการวิเคราะห์ข้อมูล
- ปรับขนาดได้ คุ้นเคย และปรับเปลี่ยนได้
- HiveQL ไม่ต้องการทักษะการเขียนโปรแกรมใดๆ การทำความเข้าใจแบบสอบถาม SQL อย่างง่ายก็เพียงพอแล้ว
ประโยชน์
Apache Hive อนุญาตให้ใช้รายงานเมื่อสิ้นสุดวัน การประเมินธุรกรรมรายวัน การค้นหาเฉพาะกิจ และการวิเคราะห์ข้อมูล ข้อมูลเชิงลึกที่ครอบคลุมโดย Apache Hive ให้ข้อได้เปรียบทางการแข่งขันที่สำคัญ และช่วยให้คุณตอบสนองต่อความต้องการของตลาดได้ง่ายขึ้น
ต่อไปนี้คือประโยชน์บางประการของการมีข้อมูลดังกล่าวพร้อมใช้:
- ความง่ายดายในการใช้งาน – ด้วยภาษาที่เหมือน SQL การสืบค้นข้อมูลจึงง่ายต่อการเข้าใจ
- การแทรกข้อมูลแบบเร่งรัด — เนื่องจาก Apache Hive อ่านสคีมาโดยไม่ตรวจสอบประเภทตารางหรือคำจำกัดความสคีมา ข้อมูลจึงไม่จำเป็นต้องอ่าน แยกวิเคราะห์ และจัดลำดับไปยังดิสก์ในรูปแบบภายในของฐานข้อมูล ในทางตรงกันข้าม ในฐานข้อมูลทั่วไป ข้อมูลจะต้องได้รับการตรวจสอบทุกครั้งที่มีการเพิ่ม
- ความสามารถในการปรับขนาด ความยืดหยุ่น และความคุ้มค่าที่เหนือกว่า – เนื่องจากข้อมูลถูกเก็บไว้ใน HDFS Apache Hive จึงสามารถเก็บข้อมูลได้ 100 เพตะไบต์ ทำให้เป็นตัวเลือกที่ปรับขนาดได้มากกว่าฐานข้อมูลทั่วไป Apache Hive เป็นบริการ Hadoop บนคลาวด์ ช่วยให้ลูกค้าหมุนเซิร์ฟเวอร์เสมือนขึ้นและลงอย่างรวดเร็วเพื่อตอบสนองปริมาณงานที่เปลี่ยนแปลงไป
- ความสามารถในการทำงานที่กว้างขวาง – ชุดข้อมูลขนาดใหญ่สามารถรองรับการสืบค้นข้อมูลได้มากถึง 100,000 รายการต่อชั่วโมง
ข้อ จำกัด
- โดยทั่วไป การสืบค้น Apache Hive มีเวลาแฝงที่สูงมาก
- การสนับสนุนแบบสอบถามย่อยมีจำกัด
- การสืบค้นแบบเรียลไทม์และการเปลี่ยนแปลงระดับแถวไม่พร้อมใช้งานใน Apache Hive
- ไม่มีการสนับสนุนสำหรับมุมมองที่เป็นรูปธรรม
- ไม่รองรับการดำเนินการอัปเดตและลบในกลุ่ม
- ไม่ได้มีไว้สำหรับ OLTP (กระบวนการเปลี่ยนผ่านออนไลน์)
เริ่มต้นใช้งาน Apache Hive
Apache Hive เป็นพันธมิตร Hadoop ที่แข็งแกร่งที่ช่วยให้เวิร์กโฟลว์ของคุณง่ายขึ้นและคล่องตัว เพื่อให้ได้ประโยชน์สูงสุดจาก Apache Hive การผสานรวมอย่างราบรื่นเป็นสิ่งสำคัญ ขั้นตอนแรกคือการไปที่ เว็บไซต์.
1. กลุ่มการติดตั้งจากรุ่นเสถียร
เริ่มต้นด้วยการดาวน์โหลด Hive รุ่นล่าสุดที่เสถียรจากหนึ่งในมิเรอร์ดาวน์โหลดของ Apache (ดู ไฮฟ์ รีลีส). tarball จะต้องถูกแกะออก สิ่งนี้จะสร้างโฟลเดอร์ย่อยที่เรียกว่า hive-xyz (โดยที่ xyz คือหมายเลขรีลีส):
ตั้งค่าตัวแปรสภาพแวดล้อม HIVE_HOME ให้ชี้ไปที่ไดเร็กทอรีการติดตั้ง:
สุดท้าย เพิ่ม $HIVE_HOME/bin ไปที่ .ของคุณ PATH
:
2. วิ่งไฮฟ์
Hive ใช้ Hadoop ดังนั้น:
- คุณต้องมี Hadoop ในเส้นทางของคุณ OR
3. การทำงานของ DLL
การสร้างตารางไฮฟ์
สร้างตารางชื่อ pokes ที่มีสองคอลัมน์ คอลัมน์แรกเป็นจำนวนเต็ม และคอลัมน์ที่สองเป็นสตริง
เรียกดูผ่านตาราง
รายการตารางทั้งหมด
การปรับเปลี่ยนและวางตาราง
ชื่อตารางสามารถเปลี่ยนแปลงได้ และสามารถเพิ่มหรือแทนที่คอลัมน์ได้:
เป็นที่น่าสังเกตว่า REPLACE COLUMNS จะแทนที่คอลัมน์ที่มีอยู่ทั้งหมดในขณะที่เปลี่ยนเฉพาะโครงสร้างของตารางเท่านั้น ไม่ใช่ข้อมูล ต้องใช้ SerDe ดั้งเดิมในตาราง REPLACE COLUMNS ยังสามารถใช้เพื่อลบคอลัมน์ออกจากสคีมาของตาราง:
โต๊ะวาง
มีการดำเนินการและคุณสมบัติเพิ่มเติมมากมายใน Apache Hive ที่คุณอาจเรียนรู้ได้โดยไปที่เว็บไซต์ทางการ
สรุป
คำจำกัดความของ Hive คืออินเทอร์เฟซโปรแกรมข้อมูลสำหรับการสืบค้นและวิเคราะห์ชุดข้อมูลขนาดใหญ่ที่สร้างขึ้นบน Apache Hadoop ผู้เชี่ยวชาญเลือกใช้โปรแกรม เครื่องมือ และซอฟต์แวร์อื่นๆ เนื่องจากได้รับการออกแบบมาเป็นหลักสำหรับข้อมูลจำนวนมากของ Hive และใช้งานง่าย
หวังว่าบทช่วยสอนนี้จะช่วยให้คุณเริ่มต้นกับ Apache Hive และทำให้เวิร์กโฟลว์ของคุณมีประสิทธิภาพมากขึ้น แจ้งให้เราทราบในความคิดเห็น.
เขียนความเห็น