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