Hive - Partición

Hive organiza las tablas en particiones. Es una forma de dividir una tabla en partes relacionadas según los valores de las columnas divididas, como fecha, ciudad y departamento. Usando la partición, es fácil consultar una parte de los datos.

Las tablas o particiones se subdividen en buckets,para proporcionar una estructura adicional a los datos que se pueden utilizar para realizar consultas más eficientes. El agrupamiento funciona en función del valor de la función hash de alguna columna de una tabla.

Por ejemplo, una tabla llamada Tab1contiene datos del empleado como id, nombre, departamento y yoj (es decir, año de incorporación). Suponga que necesita recuperar los detalles de todos los empleados que se unieron en 2012. Una consulta busca en toda la tabla la información requerida. Sin embargo, si divide los datos de los empleados con el año y los almacena en un archivo separado, se reduce el tiempo de procesamiento de la consulta. El siguiente ejemplo muestra cómo particionar un archivo y sus datos:

El siguiente archivo contiene la tabla de datos de empleados.

/ tab1 / employeedata / file1

id, name, dept, yoj
1, gopal, TP, 2012
2, kiran, HR, 2012
3, kaleel,SC, 2013
4, Prasanth, SC, 2013

Los datos anteriores se dividen en dos archivos usando year.

/ tab1 / employeedata / 2012 / file2

1, gopal, TP, 2012
2, kiran, HR, 2012

/ tab1 / employeedata / 2013 / file3

3, kaleel,SC, 2013
4, Prasanth, SC, 2013

Agregar una partición

Podemos agregar particiones a una tabla alterando la tabla. Supongamos que tenemos una tabla llamadaemployee con campos como Id, Nombre, Salario, Designación, Departamento y Yoj.

Sintaxis:

ALTER TABLE table_name ADD [IF NOT EXISTS] PARTITION partition_spec
[LOCATION 'location1'] partition_spec [LOCATION 'location2'] ...;

partition_spec:
: (p_column = p_col_value, p_column = p_col_value, ...)

La siguiente consulta se utiliza para agregar una partición a la tabla de empleados.

hive> ALTER TABLE employee
> ADD PARTITION (year=’2012’)
> location '/2012/part2012';

Cambiar el nombre de una partición

La sintaxis de este comando es la siguiente.

ALTER TABLE table_name PARTITION partition_spec RENAME TO PARTITION partition_spec;

La siguiente consulta se utiliza para cambiar el nombre de una partición:

hive> ALTER TABLE employee PARTITION (year=’1203’)
   > RENAME TO PARTITION (Yoj=’1203’);

Dejar caer una partición

La siguiente sintaxis se utiliza para eliminar una partición:

ALTER TABLE table_name DROP [IF EXISTS] PARTITION partition_spec, PARTITION partition_spec,...;

La siguiente consulta se utiliza para eliminar una partición:

hive> ALTER TABLE employee DROP [IF EXISTS]
   > PARTITION (year=’1203’);