Индекс — это не что иное, как указатель на определенный столбец таблицы. Создание индекса означает создание указателя на определенный столбец таблицы. Его синтаксис выглядит следующим образом —
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 (...)]
пример
Давайте возьмем пример, чтобы понять понятие индекса. Используйте ту же таблицу сотрудников, которую мы использовали ранее с полями 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';"
Это указатель на столбец зарплаты . Если столбец изменен, изменения сохраняются с использованием значения индекса.
Отбрасывание индекса
Следующий синтаксис используется для удаления индекса —
DROP INDEX <index_name> ON <table_name>
Следующий запрос удаляет индекс index_salary —