Consultas de Hive: ordenar por, agrupar por, distribuir por, Cluster Por ejemplos

Hive proporciona un lenguaje de consulta de tipo SQL para fines ETL además de Hadoop sistema de archivos.

El lenguaje Hive Query (HiveQL) proporciona un entorno de tipo SQL en Hive para trabajar con tablas, bases de datos y consultas.

Podemos tener un tipo diferente de cláusulas asociadas con Hive para realizar consultas y manipulaciones de datos de diferentes tipos. Para una mejor conectividad con diferentes nodos fuera del entorno. HIVE también proporciona conectividad JDBC.

Las consultas de Hive proporcionan lo siguientewing caracteristicas:

  • Modelado de datos como Creación de bases de datos, tablas, etc.
  • Funcionalidades ETL como extracción, transformación y carga de datos en tablas.
  • Une para fusionar diferentes tablas de datos
  • Scripts personalizados específicos del usuario para facilitar el código
  • Herramienta de consulta más rápida además de Hadoop

Creando una tabla en Hive

Antes de iniciar con nuestro tema principal para este tutorial, primero crearemos una tabla para usarla como referencia para lo siguiente.wing tutorial.

Aquí, en este tutorial, vamos a crear una tabla "employees_guru" con 6 columnas.

Creando una tabla en Hive

De la captura de pantalla anterior,

  1. Estamos creando una tabla "employees_guru" con valores de 6 columnas como Id., Nombre, Edad, Dirección, Salario, Departamento, que pertenece a los empleados presentes en la organización "guru".
  2. Aquí, en este paso, estamos cargando datos en la tabla Employees_guru. Los datos que vamos a cargar se colocarán en el archivo Employees.txt.

Ordenar por consulta

La sintaxis ORDER BY en HiveQL es similar a la sintaxis de ORDER BY en SQL idioma.

Ordenar por es la cláusula que utilizamos con la declaración "SELECT" en consultas de colmena, que ayuda a ordenar los datos. La cláusula Ordenar por utiliza columnas en las tablas de Hive para ordenar valores de columna particulares mencionados con Ordenar por. Cualquiera que sea el nombre de la columna, estamos definiendo la cláusula ordenar por, la consulta seleccionará y mostrará los resultados en orden ascendente o descendente de los valores de la columna en particular.

Si el orden mencionado por campo es una cadena, mostrará el resultado en orden lexicográfico. En la parte trasera, debe pasarse a un único reductor.

Ordenar por consulta

En la captura de pantalla de arriba, podemos observar lo siguientewing

  1. Es la consulta que se realiza en la tabla "employees_guru" con la cláusula ORDER BY con Departamento como nombre de columna ORDER BY definido. "Departamento" es una cadena, por lo que mostrará los resultados según el orden lexicográfico.
  2. Este es el resultado real de la consulta. Si lo observamos correctamente, podemos ver que obtiene resultados.yed según la columna del Departamento, como ADMIN, Finanzas, etc., para realizar la consulta.

Consulta :

SELECT * FROM employees_guru ORDER BY Department;

Agrupar por consulta

La cláusula Group by utiliza columnas en las tablas de Hive para agrupar valores de columnas particulares mencionados con el grupo por. Cualquiera que sea el nombre de la columna, estamos definiendo una cláusula "groupby", la consulta seleccionará y mostrará los resultados agrupando los valores de la columna particulares.

Por ejemplo, en la siguiente captura de pantalla se mostrará el recuento total de empleados presentes en cada departamento. Aquí tenemos "Departamento" como Grupo por valor.

Agrupar por consulta

En la captura de pantalla anterior, observaremos lo siguientewing

  1. Es la consulta que se realiza en la tabla “employees_guru” con la cláusula GROUP BY con Departamento como nombre de columna GROUP BY definido.
  2. La salida showing Aquí está el nombre del departamento y los empleados cuentan en diferentes departamentos. Aquí todos los empleados pertenecen al departamento específico, se agrupan y se muestran.yed en los resultados. Entonces el resultado es el nombre del departamento con el número total de empleados presentes en cada departamento.

consulta:

SELECT Department, count(*) FROM employees_guru GROUP BY Department;

Ordenar por

La cláusula Ordenar por se ejecuta en los nombres de las columnas de las tablas de Hive para ordenar la salida. Podemos mencionar DESC para ordenar el orden en orden descendente y mencionar ASC para ordenar el orden ascendente.

En esta clasificación, ordenará las filas antes de alimentarlas al reductor. Ordenar siempre depende del tipo de columna.

Por ejemplo, si los tipos de columnas son numéricos, se ordenarán en orden numérico, si los tipos de columnas son cadenas, se ordenarán en orden lexicográfico.

Ordenar por

En la captura de pantalla anterior podemos observar lo siguiente.wing:

  1. Es la consulta que se realiza en la tabla "employees_guru" con la cláusula SORT BY con "id" como define el nombre de la columna SORT BY. Usamos la palabra clave DESC.
  2. Entonces la pantalla de salidayed estará en orden descendente de "id".

consulta:

SELECT * from employees_guru SORT BY Id DESC;

Cluster By

Cluster By se utiliza como alternativa para las cláusulas Distribute BY y Sort BY en Hive-QL.

Cluster Cláusula BY utilizada en tablas presentes en Hive. Hive usa las columnas en Cluster by para distribuir las filas entre los reductores. Cluster Las columnas BY irán a los múltiples reductores.

  • Garantiza la clasificación de los valores presentes en múltiples reductores.

Por ejemplo, Cluster Por cláusula mencionada en el nombre de la columna Id de la tabla Employees_guru. El resultado al ejecutar esta consulta dará resultados a múltiples reductores en el back-end. Pero como interfaz es una cláusula alternativa tanto para Ordenar por como para Distribuir por.

En realidad, este es un proceso de back-end cuando realizamos una consulta con ordenar por, agrupar por y cluster por en términos del marco de reducción de mapas. Entonces, si queremos almacenar resultados en múltiples reductores, optamos por Cluster Por.

Cluster By

De la captura de pantalla anterior obtenemos lo siguientewing observaciones:

  1. Es la consulta que realiza CLUSTER Cláusula BY en el valor del campo Id. Aquí obtendrá una clasificación según los valores de Id.
  2. Muestra la identificación y los nombres presentes en la clasificación guru_employees ordenados por

consulta:

SELECT  Id, Name from employees_guru CLUSTER BY Id;

Distribuir por

Distribuir la cláusula BY utilizada en las tablas presentes en Hive. Hive usa las columnas en Distribuir por para distribuir las filas entre los reductores. Todas las columnas Distribuir POR irán al mismo reductor.

  • Garantiza que cada uno de los N reductores obtenga rangos de columna que no se superpongan.
  • No ordena la salida de cada reductor.

Distribuir por

En la captura de pantalla anterior, podemos observar lo siguiente.wing

  1. DISTRIBUIR POR Cláusula que se ejecuta en el Id. de la tabla "empoloyees_guru"
  2. Salida showing Identificación, Nombre. En la parte trasera, irá al mismo reductor.

consulta:

SELECT  Id, Name from employees_guru DISTRIBUTE BY Id;