HCatalog - Índices

Crear un índice

Un índice no es más que un puntero en una columna particular de una tabla. Crear un índice significa crear un puntero en una columna particular de una tabla. Su sintaxis es la siguiente:

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 (...)]

Ejemplo

Tomemos un ejemplo para entender el concepto de índice. Usa el mismoemployee tabla que hemos usado anteriormente con los campos Id, Nombre, Salario, Designación y Departamento. Cree un índice llamado index_salary sobre el salary columna de la employee mesa.

La siguiente consulta crea un índice:

./hcat –e "CREATE INDEX inedx_salary ON TABLE employee(salary)
AS 'org.apache.hadoop.hive.ql.index.compact.CompactIndexHandler';"

Es un puntero al salarycolumna. Si se modifica la columna, los cambios se almacenan utilizando un valor de índice.

Dejar caer un índice

La siguiente sintaxis se utiliza para eliminar un índice:

DROP INDEX <index_name> ON <table_name>

La siguiente consulta elimina el índice index_salary -

./hcat –e "DROP INDEX index_salary ON employee;"