ในบล็อกโพสต์นี้เราจะพูดถึงคำสั่ง Hive อันดับต้น ๆ พร้อมตัวอย่าง คำสั่ง Hive เหล่านี้มีความสำคัญมากในการตั้งค่าพื้นฐาน .
Edureka 2019 Tech Career Guide ออกแล้ว! บทบาทงานที่ร้อนแรงที่สุดเส้นทางการเรียนรู้ที่แม่นยำแนวโน้มอุตสาหกรรมและอื่น ๆ ในคู่มือ ดาวน์โหลด ตอนนี้.Hive คืออะไร?
Apache Hive เป็นระบบคลังข้อมูลที่สร้างขึ้นเพื่อทำงานบน Hadoop ใช้เพื่อสอบถามและจัดการชุดข้อมูลขนาดใหญ่ที่อยู่ในพื้นที่จัดเก็บแบบกระจาย ก่อนที่จะมาเป็นโปรเจ็กต์โอเพ่นซอร์สของ Apache Hadoop Hive มีต้นกำเนิดในเฟซบุ๊ก มีกลไกในการฉายโครงสร้างไปยังข้อมูลใน Hadoop และสืบค้นข้อมูลนั้นโดยใช้ภาษาคล้าย SQL ที่เรียกว่า HiveQL (HQL)
ใช้ไฮฟ์เนื่องจากตารางในไฮฟ์นั้นคล้ายกับตารางในฐานข้อมูลเชิงสัมพันธ์ หากคุณคุ้นเคยกับ SQL มันเป็นทางเดิน ผู้ใช้หลายคนสามารถสืบค้นข้อมูลโดยใช้ Hive-QL ได้พร้อมกัน
HQL คืออะไร?
Hive กำหนดภาษาคิวรีแบบ SQL ที่เรียบง่ายในการสืบค้นและจัดการชุดข้อมูลขนาดใหญ่ที่เรียกว่า Hive-QL (HQL) ใช้งานง่ายหากคุณคุ้นเคยกับภาษา SQL Hive ช่วยให้โปรแกรมเมอร์ที่คุ้นเคยกับภาษาสามารถเขียนกรอบ MapReduce แบบกำหนดเองเพื่อทำการวิเคราะห์ที่ซับซ้อนยิ่งขึ้น
การใช้ประโยชน์จากรัง:
1. Apache Hive กระจายพื้นที่เก็บข้อมูล
2. Hive มีเครื่องมือที่ช่วยให้สามารถดึงข้อมูล / แปลง / โหลด (ETL) ได้อย่างง่ายดาย
3. จัดเตรียมโครงสร้างของรูปแบบข้อมูลที่หลากหลาย
4. เมื่อใช้ Hive เราสามารถเข้าถึงไฟล์ที่เก็บไว้ใน Hadoop Distributed File System (HDFS ใช้เพื่อสืบค้นและจัดการชุดข้อมูลขนาดใหญ่ที่อยู่ใน) หรือในระบบจัดเก็บข้อมูลอื่น ๆ เช่น Apache HBase
ข้อ จำกัด ของ Hive:
& bull Hive ไม่ได้ออกแบบมาสำหรับการประมวลผลธุรกรรมออนไลน์ (OLTP) มันใช้สำหรับการประมวลผลการวิเคราะห์ออนไลน์เท่านั้น
& bull Hive รองรับการเขียนทับหรือตรวจจับข้อมูล แต่ไม่อัปเดตและลบ
& bull ใน Hive ไม่รองรับการสืบค้นย่อย
ทำไม Hive ถึงใช้ Inspite of Pig?
ต่อไปนี้เป็นสาเหตุที่ใช้ Hive ทั้งๆที่ Pig มีให้บริการ:
- Hive-QL เป็นบรรทัดภาษาที่ประกาศ SQL, PigLatin เป็นภาษาโฟลว์ข้อมูล
- Pig: ภาษาและสภาพแวดล้อมของกระแสข้อมูลสำหรับการสำรวจชุดข้อมูลขนาดใหญ่มาก
- Hive: คลังข้อมูลแบบกระจาย
ส่วนประกอบของ Hive:
การแพร่กระจาย:
Hive เก็บสคีมาของตาราง Hive ไว้ใน Hive Metastore Metastore ใช้เพื่อเก็บข้อมูลทั้งหมดเกี่ยวกับตารางและพาร์ติชันที่อยู่ในคลังสินค้า โดยค่าเริ่มต้น metastore จะทำงานในกระบวนการเดียวกับบริการ Hive และ Metastore เริ่มต้นคือ DerBy Database
SerDe:
Serializer, Deserializer ให้คำแนะนำในการจัดกลุ่มวิธีการประมวลผลบันทึก
คำสั่ง Hive:
ภาษานิยามข้อมูล (DDL)
คำสั่ง DDL ใช้เพื่อสร้างและแก้ไขตารางและวัตถุอื่น ๆ ในฐานข้อมูล
คำสั่ง DDL | ฟังก์ชัน |
สร้าง | ใช้ในการสร้างตารางหรือฐานข้อมูล |
แสดง | ใช้เพื่อแสดงฐานข้อมูลตารางคุณสมบัติ ฯลฯ |
อายุ | ใช้เพื่อทำการเปลี่ยนแปลงตารางที่มีอยู่ |
อธิบาย | อธิบายคอลัมน์ของตาราง |
ตัด | ใช้เพื่อตัดและลบแถวของตารางอย่างถาวร |
ลบ | ลบข้อมูลตาราง แต่สามารถกู้คืนได้ |
ไปที่ Hive shell โดยให้คำสั่ง sudo hive แล้วป้อนคำสั่ง 'สร้าง ฐานข้อมูล ชื่อ> ’ เพื่อสร้างฐานข้อมูลใหม่ใน Hive
หากต้องการแสดงรายการฐานข้อมูลใน Hive warehouse ให้ป้อนคำสั่ง ‘ แสดงฐานข้อมูล '
ฐานข้อมูลสร้างขึ้นในตำแหน่งเริ่มต้นของคลังสินค้า Hive ใน Cloudera ฐานข้อมูล Hive จะจัดเก็บใน a / user / hive / warehouse
คำสั่งในการใช้ฐานข้อมูลคือ ใช้
คัดลอกข้อมูลอินพุตไปยัง HDFS จากโลคัลโดยใช้คำสั่ง copy From Local
เมื่อเราสร้างตารางในรังมันจะสร้างขึ้นในตำแหน่งเริ่มต้นของคลังเก็บรัง -“ / user / hive / warehouse” หลังจากสร้างตารางแล้วเราสามารถย้ายข้อมูลจาก HDFS ไปยัง hive table ได้
คำสั่งต่อไปนี้สร้างตารางโดยมีตำแหน่งเป็น“ /user/hive/warehouse/retail.db”
บันทึก : retail.db คือฐานข้อมูลที่สร้างขึ้นในคลัง Hive
อธิบาย ให้ข้อมูลเกี่ยวกับสคีมาของตาราง
ภาษาการจัดการข้อมูล (DML)
คำสั่ง DML ใช้ในการดึงจัดเก็บแก้ไขลบแทรกและอัพเดตข้อมูลในฐานข้อมูล
อะไรคือเหตุผลในการสร้างอินสแตนซ์ของคลาสไฟล์
ตัวอย่าง:
โหลดใส่คำสั่ง
ไวยากรณ์:
โหลดข้อมูลทางเข้าในตาราง [tablename]
การดำเนินการ Load ใช้เพื่อย้ายข้อมูลไปยังตาราง Hive ที่เกี่ยวข้อง หากคีย์เวิร์ด ท้องถิ่น ถูกระบุจากนั้นในคำสั่ง load จะให้เส้นทางระบบไฟล์ภายในเครื่อง หากไม่ได้ระบุคีย์เวิร์ด local เราต้องใช้พา ธ HDFS ของไฟล์
นี่คือตัวอย่างบางส่วนสำหรับคำสั่ง LOAD data LOCAL
หลังจากโหลดข้อมูลลงในตาราง Hive แล้วเราสามารถใช้ Data Manipulation Statements หรือฟังก์ชั่นรวมดึงข้อมูลได้
ตัวอย่างการนับจำนวนบันทึก:
ใช้ฟังก์ชันการนับรวมนับจำนวนทั้งหมดของระเบียนในตาราง
ตาราง 'สร้างภายนอก':
สร้างภายนอก คีย์เวิร์ดใช้ในการสร้างตารางและระบุตำแหน่งที่จะสร้างตารางดังนั้นไฮฟ์จึงไม่ใช้ตำแหน่งเริ่มต้นสำหรับตารางนี้ อัน ภายนอก ตารางชี้ไปที่ตำแหน่ง HDFS ใด ๆ สำหรับการจัดเก็บแทนที่จะเป็นที่เก็บข้อมูลเริ่มต้น
แทรกคำสั่ง:
แทรก คำสั่งใช้เพื่อโหลดตารางข้อมูลไฮฟ์ ส่วนแทรกสามารถทำได้กับตารางหรือพาร์ติชัน
& bull INSERT OVERWRITE ใช้เพื่อเขียนทับข้อมูลที่มีอยู่ในตารางหรือพาร์ติชัน
& bull INSERT INTO ใช้เพื่อต่อท้ายข้อมูลลงในข้อมูลที่มีอยู่ในตาราง (หมายเหตุ: ไวยากรณ์ INSERT INTO ทำงานจากเวอร์ชัน 0.8)
ตัวอย่างสำหรับคำสั่ง 'Partitioned By' และ 'Clustered By':
‘แบ่งพาร์ติชั่นโดย ‘ใช้ในการแบ่งตารางออกเป็นพาร์ติชันและสามารถแบ่งออกเป็นที่เก็บข้อมูลได้โดยใช้ปุ่ม ' คลัสเตอร์โดย ‘คำสั่ง.
เมื่อเราแทรกข้อผิดพลาดในการโยนข้อมูล Hive โหมดพาร์ติชันแบบไดนามิกจะเข้มงวดและไม่ได้เปิดใช้งานพาร์ติชันแบบไดนามิก (โดย เจฟฟ์ ที่ เว็บไซต์ dresshead ). ดังนั้นเราต้องตั้งค่าพารามิเตอร์ต่อไปนี้ใน Hive shell
ตั้งค่า hive.exec.dynamic.partition = true
หากต้องการเปิดใช้งานพาร์ติชันแบบไดนามิกโดยค่าเริ่มต้นจะเป็นเท็จ
ตั้งค่า hive.exec.dynamic.partition.mode = nonstrict
แบ่งพาร์ติชันตามหมวดหมู่และสามารถแบ่งออกเป็นที่เก็บข้อมูลได้โดยใช้คำสั่ง 'Clustered By'
ซีลีเนียม webdriver พร้อมตัวอย่างแตงกวาในคราส
คำสั่ง 'วางตาราง' จะลบข้อมูลและข้อมูลเมตาของตาราง ในกรณีของตารางภายนอกระบบจะลบเฉพาะข้อมูลเมตาเท่านั้น
คำสั่ง 'วางตาราง' จะลบข้อมูลและข้อมูลเมตาของตาราง ในกรณีของตารางภายนอกระบบจะลบเฉพาะข้อมูลเมตาเท่านั้น
โหลดข้อมูล inpath ในเครื่อง 'aru.txt' ลงในชื่อตารางของตารางจากนั้นเราตรวจสอบตารางพนักงาน 1 โดยใช้คำสั่ง Select * จากชื่อตาราง
ในการนับจำนวนระเบียนในตารางโดยใช้ Select นับ(*) จาก txnrecords
การรวม:
เลือกจำนวน (หมวดหมู่ DISTINCT) จากชื่อตาราง
คำสั่งนี้จะนับหมวดหมู่ต่างๆของตาราง 'cate' ที่นี่มี 3 หมวดหมู่ที่แตกต่างกัน
สมมติว่ามีตารางอื่นที่ f1 เป็นชื่อเขตข้อมูลของหมวดหมู่
การจัดกลุ่ม:
คำสั่ง Group ใช้เพื่อจัดกลุ่มผลลัพธ์ที่กำหนดโดยคอลัมน์อย่างน้อยหนึ่งคอลัมน์
เลือกหมวดหมู่ผลรวม (จำนวนเงิน) จากกลุ่มระเบียน txt ตามหมวดหมู่
มันคำนวณจำนวนของหมวดหมู่เดียวกัน
ผลลัพธ์หนึ่งตารางจะถูกเก็บไว้ในตารางอื่น
สร้างตาราง newtablename เป็น select * จาก oldtablename
เข้าร่วมคำสั่ง:
ที่นี่มีการสร้างตารางขึ้นมาอีกหนึ่งตารางในชื่อ 'อีเมล'
เข้าร่วมปฏิบัติการ :
การดำเนินการเข้าร่วมจะดำเนินการเพื่อรวมฟิลด์จากสองตารางโดยใช้ค่าร่วมกันสำหรับแต่ละตาราง
เข้าร่วมด้านนอกซ้าย :
ผลลัพธ์ของการรวมภายนอกด้านซ้าย (หรือการรวมซ้าย) สำหรับตาราง A และ B จะมีระเบียนทั้งหมดของตาราง 'ซ้าย' (A) เสมอแม้ว่าเงื่อนไขการเข้าร่วมจะไม่พบระเบียนที่ตรงกันในตาราง 'ขวา' ก็ตาม (B).
เข้าร่วมภายนอกขวา :
การรวมด้านนอกด้านขวา (หรือการเข้าร่วมด้านขวา) มีลักษณะใกล้เคียงกับการรวมด้านนอกด้านซ้ายยกเว้นการปฏิบัติตามตารางที่กลับด้าน ทุกแถวจากตาราง“ ขวา” (B) จะปรากฏในตารางที่เข้าร่วมอย่างน้อยหนึ่งครั้ง
เข้าร่วมแบบเต็ม :
ตารางที่เข้าร่วมจะมีระเบียนทั้งหมดจากทั้งสองตารางและกรอกค่า NULL สำหรับการจับคู่ที่ขาดหายไปในด้านใดด้านหนึ่ง
วิธีออกใน java
เมื่อทำรังเสร็จแล้วเราสามารถใช้คำสั่งเลิกเพื่อออกจากรังผึ้ง
Hive เป็นเพียงส่วนหนึ่งของปริศนาใหญ่ที่เรียกว่า Big Data และ Hadoop Hadoop เป็นมากกว่า Hive คลิกด้านล่างเพื่อดูทักษะอื่น ๆ ที่คุณควรเชี่ยวชาญใน Hadoop
มีคำถามสำหรับเรา? โปรดระบุไว้ในส่วนความคิดเห็นแล้วเราจะติดต่อกลับไป
กระทู้ที่เกี่ยวข้อง:
การฝึกอบรม Big Data 7 วิธีสามารถเปลี่ยนองค์กรของคุณได้