Hive - Ver e Índices


Advertisements

Este capítulo describe cómo crear y administrar las vistas. Opiniones se generan en base a las necesidades de los usuarios. Usted puede guardar los datos del conjunto de resultados como una vista. El uso de vista en Hive es igual a la de la vista en SQL Se trata de una norma RDBMS concepto. Podemos ejecutar todas las operaciones de DML en una vista.

Creación de una vista

Puede crear una vista en el momento de la ejecución de una instrucción SELECT. La sintaxis es la siguiente:

CREATE VIEW [IF NOT EXISTS] view_name [(column_name [COMMENT column_comment], ...) ]
[COMMENT table_comment]
AS SELECT ...

Ejemplo

Tomemos un ejemplo para ver. Asumir tabla de empleados como el que aparece a continuación, con los campos Id, nombre, el sueldo, la designación, y Depto. Generar una consulta para recuperar los detalles de empleado que gana un sueldo de más de Rs 30000. Almacenamos el resultado en una vista denominada emp_30000.

+------+--------------+-------------+-------------------+--------+
| ID   | Name         | Salary      | Designation       | Dept   |
+------+--------------+-------------+-------------------+--------+
|1201  | Gopal        | 45000       | Technical manager | TP     |
|1202  | Manisha      | 45000       | Proofreader       | PR     |
|1203  | Masthanvali  | 40000       | Technical writer  | TP     |
|1204  | Krian        | 40000       | Hr Admin          | HR     |
|1205  | Kranthi      | 30000       | Op Admin          | Admin  |
+------+--------------+-------------+-------------------+--------+

La siguiente consulta recupera los detalles de empleado con el escenario anterior:

hive> CREATE VIEW emp_30000 AS
   > SELECT * FROM employee
   > WHERE salary>30000;

Caída de una vista

Utilice la siguiente sintaxis para soltar una vista:

DROP VIEW view_name

La consulta siguiente cae una vista denominada como emp_30000:

hive> DROP VIEW emp_30000;

Crear un índice

Un índice no es más que un puntero de la columna determinada de una tabla. Crear un índice implica crear un puntero en una columna en 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 el índice. Usar la misma tabla de empleados que hemos usado antes con los campos Id, Nombre, sueldo, designación, y Depto. Crear un índice llamado index_salary en la columna de salario de la tabla employee.

La consulta siguiente crea un índice:

hive> CREATE INDEX inedx_salary ON TABLE employee(salary)
   > AS 'org.apache.hadoop.hive.ql.index.compact.CompactIndexHandler';

Es un puntero a la columna de salario. Si la columna es modificado, los cambios se almacenan utilizando un valor de índice.

Al eliminar un índice

La sintaxis siguiente se utiliza para eliminar un índice:

DROP INDEX <index_name> ON <table_name>

La consulta siguiente cae un índice llamado index_salary:

hive> DROP INDEX index_salary ON employee;
Advertisements