Colmena – Separación

Hive divide las tablas en secciones. Es una forma de dividir una tabla en partes relacionadas según los valores de las columnas separadas, como fecha, ciudad y departamento. Al utilizar la partición, es fácil consultar un fragmento de datos.

Las tablas o secciones se subdividen en cubos para proporcionar una estructura de datos adicional que se pueda utilizar para consultas más eficientes. La agrupación funciona en función del valor hash de una determinada columna de la tabla.

Por ejemplo, una tabla llamada Tab1 contiene detalles del empleado como ID, nombre, departamento y año (es decir, año de incorporación). Supongamos que desea obtener los detalles de todos los empleados que se unieron al trabajo en 2012. La consulta busca en toda la tabla la información que necesita. Sin embargo, si separa los datos del empleado por año y los guarda en un archivo separado, se acortará el tiempo de procesamiento de la solicitud. El siguiente ejemplo muestra cómo dividir un archivo y sus datos:

El siguiente archivo contiene una tabla de datos usados.

/ tab1 / usededata / 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 utilizando el año.

/ tab1 / usededata / 2012 / file2

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

/ tab1 / usededata / 2013 / file3

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

Agregar una sección

Podemos agregar secciones a una tabla modificando la tabla. Supongamos que tenemos una tabla llamada empleado 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 sección a la tabla de empleados.

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

Cambiar el nombre de una secció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 sección:

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

Eliminar una sección

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

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

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

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

🚫