Particiones y depósitos de Hive con ejemplo

Las tablas, las particiones y los depósitos son partes del modelado de datos de Hive.

¿Qué son las particiones?

Hive Partitions es una forma de organizar tablas en particiones dividiéndolas en diferentes partes según las claves de partición.

La partición es útil cuando la tabla tiene una o más claves de partición. Las claves de partición son elementos básicos para determinar cómo se almacenan los datos en la tabla.

Por ejemplo: -

“El cliente tiene algunos datos de comercio electrónico que pertenecen a las operaciones de la India en las que cada estado (38 estados) opera en su conjunto. Si tomamos la columna de estado como clave de partición y realizamos particiones en los datos de la India en su conjunto, podemos obtener el número de particiones (38 particiones) que es igual al número de estados (38) presentes en la India. De modo que los datos de cada estado se puedan ver por separado en las tablas de particiones.

Fragmento de código de muestra para particiones

  1. Creación de tabla de todos los estados.
create table all states(state string, District string,Enrolments string)

row format delimited

fields terminated by ',';
  1. Cargando datos en la tabla creada todos los estados
Load data local inpath '/home/hduser/Desktop/AllStates.csv' into table allstates;
  1. Creación de tabla de particiones.
create table state_part(District string,Enrolments string) PARTITIONED BY(state string);
  1. Para la partición tenemos que establecer esta propiedad.
    set hive.exec.dynamic.partition.mode=nonstrict
  2. Cargando datos en la tabla de particiones
INSERT OVERWRITE TABLE state_part PARTITION(state)
SELECT district,enrolments,state from  allstates;
  1. Procesamiento real y formación de tablas de particiones basadas en el estado como clave de partición
  2. Habrá 38 salidas de partición en el almacenamiento HDFS con el nombre del archivo como nombre de estado. Lo comprobaremos en este paso.

Las siguientes capturas de pantalla le mostrarán la ejecución del código mencionado anteriormente.

Particiones de colmena

Particiones de colmena

Particiones de colmena

Particiones de colmena

A partir del código anterior, hacemos lo siguiente

  1. Creación de una tabla de todos los estados con nombres de 3 columnas, como estado, distrito e inscripción
  2. Cargando datos en la tabla de todos los estados.
  3. Creación de tabla de particiones con estado como clave de partición.
  4. En este paso, configurar el modo de partición como no estricto (este modo activará el modo de partición dinámica)
  5. Cargando datos en la partición tablestate_part
  6. Procesamiento real y formación de tablas de particiones basadas en el estado como clave de partición
  7. Habrá 38 salidas de partición en el almacenamiento HDFS con el nombre del archivo como nombre de estado. Lo comprobaremos en este paso. En este paso, vemos las 38 salidas de partición en HDFS

¿Qué son los cubos?

Los depósitos en Hive se utilizan para segregar los datos de la tabla de Hive en varios archivos o directorios. se utiliza para consultas eficientes.

  • Los datos, es decir, presentes en esas particiones, se pueden dividir en depósitos.
  • La división se realiza en función del Hash de columnas particulares que seleccionamos en la tabla.
  • Los depósitos utilizan algún tipo de algoritmo Hashing en el back-end para leer cada registro y colocarlo en depósitos.
  • En Hive, tenemos que habilitar depósitos usando el set.hive.enforce.bucketing=true;

Paso 1) Creando un depósito como se muestra a continuación.

Cubos de colmena

De la captura de pantalla anterior

  • Estamos creando sample_bucket con nombres de columnas como first_name, job_id, departamento, salario y país.
  • Estamos creando 4 cubos aquí.
  • Una vez que los datos se cargan automáticamente, coloque los datos en 4 depósitos

Paso 2) Cargando datos en un depósito de muestra de tabla

Suponiendo que la “tabla de empleados” ya esté creada en el sistema Hive. En este paso, veremos la carga de los datos de la tabla de empleados en el depósito de muestra de la tabla.

Antes de comenzar a mover los datos de los empleados a depósitos, asegúrese de que consten de nombres de columnas como nombre, ID de trabajo, departamento, salario y país.

Aquí estamos cargando datos en un depósito de muestra desde la tabla de empleados.

Cubos de colmena

Paso 3)Mostrando 4 depósitos creados en el Paso 1

Cubos de colmena

En la captura de pantalla anterior, podemos ver que los datos de la tabla de empleados se transfieren a 4 depósitos creados en el paso 1.