HCatalog - สร้างตาราง

บทนี้จะอธิบายวิธีสร้างตารางและวิธีแทรกข้อมูลลงในตาราง หลักการสร้างตารางใน HCatalog ค่อนข้างคล้ายกับการสร้างตารางโดยใช้ Hive

สร้างคำสั่งตาราง

Create Table คือคำสั่งที่ใช้สร้างตารางใน Hive metastore โดยใช้ HCatalog ไวยากรณ์และตัวอย่างมีดังนี้ -

ไวยากรณ์

CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.] table_name
[(col_name data_type [COMMENT col_comment], ...)]
[COMMENT table_comment]
[ROW FORMAT row_format]
[STORED AS file_format]

ตัวอย่าง

สมมติว่าคุณต้องสร้างตารางชื่อ employee โดยใช้ CREATE TABLEคำให้การ. ตารางต่อไปนี้แสดงรายการเขตข้อมูลและประเภทข้อมูลในไฟล์employee โต๊ะ -

ซีเนียร์ No ชื่อฟิลด์ ประเภทข้อมูล
1 Eid int
2 ชื่อ สตริง
3 เงินเดือน ลอย
4 การกำหนด สตริง

ข้อมูลต่อไปนี้กำหนดฟิลด์ที่รองรับเช่น Comment, เขตข้อมูลที่จัดรูปแบบแถวเช่น Field terminator, Lines terminatorและ Stored File type.

COMMENT ‘Employee details’
FIELDS TERMINATED BY ‘\t’
LINES TERMINATED BY ‘\n’
STORED IN TEXT FILE

แบบสอบถามต่อไปนี้สร้างตารางชื่อ employee โดยใช้ข้อมูลข้างต้น

./hcat –e "CREATE TABLE IF NOT EXISTS employee ( eid int, name String, 
   salary String, destination String) \
COMMENT 'Employee details' \
ROW FORMAT DELIMITED \
FIELDS TERMINATED BY ‘\t’ \
LINES TERMINATED BY ‘\n’ \
STORED AS TEXTFILE;"

หากคุณเพิ่มตัวเลือก IF NOT EXISTSHCatalog ละเว้นคำสั่งในกรณีที่มีตารางอยู่แล้ว

เมื่อสร้างตารางสำเร็จคุณจะเห็นคำตอบต่อไปนี้ -

OK
Time taken: 5.905 seconds

โหลดคำชี้แจงข้อมูล

โดยทั่วไปหลังจากสร้างตารางใน SQL เราสามารถแทรกข้อมูลโดยใช้คำสั่งแทรก แต่ใน HCatalog เราแทรกข้อมูลโดยใช้คำสั่ง LOAD DATA

ในขณะที่แทรกข้อมูลลงใน HCatalog ควรใช้ LOAD DATA เพื่อจัดเก็บบันทึกจำนวนมาก มีสองวิธีในการโหลดข้อมูล: วิธีหนึ่งคือจากlocal file system และที่สองมาจาก Hadoop file system.

ไวยากรณ์

ไวยากรณ์สำหรับ LOAD DATA มีดังนี้ -

LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename
[PARTITION (partcol1=val1, partcol2=val2 ...)]
  • LOCAL คือตัวระบุเพื่อระบุโลคัลพา ธ เป็นทางเลือก
  • OVERWRITE เป็นทางเลือกในการเขียนทับข้อมูลในตาราง
  • PARTITION เป็นทางเลือก

ตัวอย่าง

เราจะแทรกข้อมูลต่อไปนี้ลงในตาราง มันคือไฟล์ข้อความชื่อsample.txt ใน /home/user ไดเรกทอรี

1201  Gopal        45000    Technical manager
1202  Manisha      45000    Proof reader
1203  Masthanvali  40000    Technical writer
1204  Kiran        40000    Hr Admin
1205  Kranthi      30000    Op Admin

แบบสอบถามต่อไปนี้โหลดข้อความที่ระบุลงในตาราง

./hcat –e "LOAD DATA LOCAL INPATH '/home/user/sample.txt'
OVERWRITE INTO TABLE employee;"

เมื่อดาวน์โหลดสำเร็จคุณจะเห็นคำตอบต่อไปนี้ -

OK
Time taken: 15.905 seconds