คำสั่งยอดนิยมพร้อมตัวอย่างใน HQL



บล็อกนี้กล่าวถึงคำสั่ง Hive พร้อมตัวอย่างใน HQL สร้างวางตัดทอนแก้ไขแสดงรายละเอียดใช้โหลดแทรกเข้าร่วมและอื่น ๆ อีกมากมายคำสั่ง Hive

ในบล็อกโพสต์นี้เราจะพูดถึงคำสั่ง 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 โดยใช้คำสั่ง 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

Hive เป็นเพียงส่วนหนึ่งของปริศนาใหญ่ที่เรียกว่า Big Data และ Hadoop Hadoop เป็นมากกว่า Hive คลิกด้านล่างเพื่อดูทักษะอื่น ๆ ที่คุณควรเชี่ยวชาญใน Hadoop

มีคำถามสำหรับเรา? โปรดระบุไว้ในส่วนความคิดเห็นแล้วเราจะติดต่อกลับไป

กระทู้ที่เกี่ยวข้อง:

การฝึกอบรม Big Data 7 วิธีสามารถเปลี่ยนองค์กรของคุณได้

Hive Data Models