HCatalog - ดัชนี
การสร้างดัชนี
ดัชนีคืออะไรนอกจากตัวชี้บนคอลัมน์ใดคอลัมน์หนึ่งของตาราง การสร้างดัชนีหมายถึงการสร้างตัวชี้บนคอลัมน์ใดคอลัมน์หนึ่งของตาราง ไวยากรณ์มีดังนี้ -
CREATE INDEX index_name
ON TABLE base_table_name (col_name, ...)
AS 'index.handler.class.name'
[WITH DEFERRED REBUILD]
[IDXPROPERTIES (property_name = property_value, ...)]
[IN TABLE index_table_name]
[PARTITIONED BY (col_name, ...)][
[ ROW FORMAT ...] STORED AS ...
| STORED BY ...
]
[LOCATION hdfs_path]
[TBLPROPERTIES (...)]
ตัวอย่าง
ให้เราเป็นตัวอย่างเพื่อทำความเข้าใจแนวคิดของดัชนี ใช้เหมือนกันemployee ตารางที่เราใช้ก่อนหน้านี้กับฟิลด์ Id, Name, Salary, Designation และ Dept สร้างดัชนีชื่อ index_salary บน salary คอลัมน์ของ employee ตาราง.
แบบสอบถามต่อไปนี้สร้างดัชนี -
./hcat –e "CREATE INDEX inedx_salary ON TABLE employee(salary)
AS 'org.apache.hadoop.hive.ql.index.compact.CompactIndexHandler';"
มันเป็นตัวชี้ไปที่ salaryคอลัมน์. หากคอลัมน์ถูกแก้ไขการเปลี่ยนแปลงจะถูกจัดเก็บโดยใช้ค่าดัชนี
การทิ้งดัชนี
ไวยากรณ์ต่อไปนี้ใช้เพื่อวางดัชนี -
DROP INDEX <index_name> ON <table_name>
ข้อความค้นหาต่อไปนี้ลดค่าดัชนี index_salary -
./hcat –e "DROP INDEX index_salary ON employee;"