Particiones de colmena & Cubos con ejemplo

Tabla de contenido:

Anonim

Las tablas, las particiones y los depósitos son las 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 operaciones de India en las que cada estado (38 estados) opera en su totalidad. Si tomamos la columna de estado como clave de partición y realizamos particiones en esos datos de India como un todo, podemos para obtener 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 pueden ver por separado en las tablas de particiones.

Fragmento de código de muestra para particiones

  1. Creación de tabla todos los estados
create table all states(state string, District string,Enrolments string)row format delimitedfields 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 del estado. Comprobaremos esto en este paso

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

Del código anterior, hacemos las siguientes cosas

  1. Creación de una tabla para todos los estados con 3 nombres de 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 tabla de partición state_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 del estado. Comprobaremos esto en este paso. En este paso, vemos las 38 salidas de partición en HDFS

¿Qué es Buckets?

Los cubos en colmena se utilizan para segregar los datos de la tabla de colmena 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 de Hash de columnas particulares que seleccionamos en la tabla.
  • Los depósitos utilizan algún tipo de algoritmo de hash en el back-end para leer cada registro y colocarlo en depósitos
  • En Hive, tenemos que habilitar los depósitos usando set.hive.enforce.bucketing = true;

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

De la captura de pantalla anterior

  • Estamos creando sample_bucket con nombres de columna 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) Carga de datos en el depósito de muestra de la tabla

Suponiendo que la "Tabla de empleados" ya se creó en el sistema Hive. En este paso, veremos la carga de datos de la tabla de empleados en el depósito de muestra de la tabla.

Antes de que comencemos a mover los datos de los empleados a grupos, asegúrese de que estén formados por nombres de columna como nombre, identificación del trabajo, departamento, salario y país.

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

Paso 3) Visualización de 4 depósitos que se crearon en el Paso 1

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.