ETL de Hive: carga de JSON, XML, ejemplos de datos de texto

Hive como herramienta de almacenamiento de datos y ETL además de Hadoop ecosEl sistema proporciona funcionalidades como modelado de datos, manipulación de datos, procesamiento de datos y consulta de datos. La extracción de datos en Hive significa la creación de tablas en Hive y la carga de datos estructurados y semiestructurados, así como la consulta de datos según los requisitos.

Para el procesamiento por lotes, escribiremos scripts definidos personalizados utilizando un mapa personalizado y reduciremos los scripts utilizando un lenguaje de scripting. Proporciona SQL entorno similar y soporte para consultas sencillas.

Trabajar con datos estructurados usando Hive

Datos estructurados significa que los datos están en el formato adecuado de filas y columnas. Esto es más como RDBMS datos con filas y columnas adecuadas.

Aquí vamos a cargar datos estructurados presentes en archivos de texto en Hive.

Paso 1) En este paso, estamos creando la tabla "employees_guru" con nombres de columnas como Id., Nombre, Edad, Dirección, Salario y Departamento de los empleados con tipos de datos.

Trabajar con datos estructurados usando Hive

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

  1. Creación de tabla “empleados_guru”
  2. Cargando datos de Employees.txt en la tabla "employees_guru"

Paso 2) En este paso, mostramos el contenido almacenado en esta tabla usando el comando "Seleccionar". Podemos observar el contenido de la tabla a continuación.wing captura de pantalla.

Trabajar con datos estructurados usando Hive

– Fragmento de código de muestra

Consultas a realizar

1) Create table employees_guru(Id INT, Name STRING, Age INT, Address STRING, Salary FLOAT, Department STRING)
> Row format delimited
> Fields terminated by ',';
2) load data local inpath '/home/hduser/Employees.txt' into TABLE employees_guru;
3) select * from employees_guru;

Trabajar con datos semiestructurados usando Hive (XML, JSON)

Hive realiza funcionalidades ETL en Hadoop ecossistema actuando como Herramienta ETL. Puede resultar difícil realizar la reducción de mapas en algunos tipos de aplicaciones, Hive puede reducir la comunicación.plexidad y proporciona la mejor solución a las aplicaciones de TI en términos de sector de almacenamiento de datos.

Los datos semiestructurados como XML y JSON se pueden procesar con menos complexidad usando Hive. Primero veremos cómo podemos usar Hive para XML.

TABLA XML A HIVE

En esto, cargaremos datos XML en tablas de Hive y recuperaremos los valores almacenados dentro de las etiquetas XML.

Paso 1) Creación de la tabla “xmlsample_guru” con columna str con tipo de datos de cadena.

Trabajar con datos semiestructurados usando Hive

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

  1. Creación de tabla “xmlsample_guru”
  2. Cargando datos de test.xml en la tabla "xmlsample_guru"

Paso 2) Usar XPath () podremos recuperar los datos almacenados dentro de las etiquetas XML.

Trabajar con datos semiestructurados usando Hive

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

  1. Usando el método XPATH( ), estamos recuperando los valores almacenados en /emp/esal/ y /emp/ename/
  2. Valores presentes dentro de etiquetas XML. En este paso, mostramos los valores reales almacenados en etiquetas XML en la tabla "xmlsample_guru"

Paso 3) En este paso, buscaremos y mostraremos el XML sin formato de la tabla "xmlsample_guru".

Trabajar con datos semiestructurados usando Hive

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

  • Los datos XML reales que se muestran con etiquetas.
  • Si observamos una sola etiqueta, es con "emp" como etiqueta principal con "ename" y "esal" como etiquetas secundarias.

Fragmento de código:

Consultas a realizar

1) create table xmlsample_guru(str string);                                                                                                   2) load data local inpath '/home/hduser/test.xml' overwrite  into table xmlsample_guru;
3) select xpath(str,'emp/ename/text()'), xpath(str,'emp/esal/text()') from xmlsample_guru;

JSON (notación de objetos JavaScript)

Los datos de Twitter y sitios web se almacenan en formato JSON. Siempre que intentemos recuperar datos de servidores en línea, devolverá archivos JSON. Al usar Hive como almacén de datos, podemos cargar datos JSON en tablas de Hive mediante la creación de esquemas.

JSON A LA TABLA DE HIVE

En esto, cargaremos datos JSON en tablas de Hive y recuperaremos los valores almacenados en el esquema JSON.

Paso 1) En este paso, crearemos el nombre de la tabla JSON "json_guru". Una vez creado, carga y muestra el contenido del esquema real.

Json a la tabla Hive

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

  1. Creación de tabla “json_guru”
  2. Cargando datos de test.json en la tabla "json_guru"
  3. Mostrando el esquema real del archivo JSON almacenado en las tablas json_guru

Paso 2) Usando el método get_json_object() podemos recuperar los valores de datos almacenados en la jerarquía JSON

Json a la tabla Hive

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

  1. Usando get_json_object (str,’$.ecode) puede recuperar valores de ecode de la tabla json_guru. De manera similar, al usar get_json_object (str,’$.ename), get_json_object (str,’$.Sali), obtendrá los valores de ename sal de la tabla json_guru
  2. Valores almacenados dentro de la jerarquía JSON en json_guru

Fragmento de código

Consultas a realizar

1) create table json_guru(str string);
2) load data inpath 'home/hduser/test.json' into table json_guru;
3) select * from json1;
4) select get_json_object(str,'$.ecode') as ecode, get_json_object(str,'$.ename') as ename ,get_json_object(str,'$.sal') as salary from json_guru;

¿Cómoplex JSON A LA TABLA DE HIVE

En esto, vamos a cargar Complex datos JSON en tablas de Hive y recuperaremos los valores almacenados en el esquema JSON

Paso 1) Creando complexjson_guru con campo de una sola columna

¿Cómoplex Json a la tabla Hive

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

  1. Creación en mesa com.plexjson_guru con campo de una sola columna como tipo de datos de cadena
  2. Cargando datos en complexjson_guru de emp.json complex Archivo JSON

Paso 2) Al usar get_json_object podemos recuperar el contenido real almacenado dentro de la jerarquía de archivos JSON.

Del siguientewing captura de pantalla, podemos ver la salida de los datos almacenados en complexjson_guru.

¿Cómoplex Json a la tabla Hive

Paso 3) En este paso, al usar el comando "Seleccionar", podemos ver complex Datos JSON almacenados dentro de la tabla "complexjson_guru”

¿Cómoplex Json a la tabla Hive

-Fragmento de código de muestra,

Consultas a realizar

1) create table complexjson_guru(json string);
2) load data inpath 'home/hduser/emp.json' into table complexjson_guru;
3) select get_json_object(json,'$.ecode') as ecode ,get_json_object(json,'$.b') as code, get_json_object(json,'$.c') from complexjson_guru;
4) select * from complexjson_guru;

Hive en proyectos en tiempo real: cuándo y dónde utilizarlo

Cuándo y dónde utilizar Hive en Hadoop Ecossistema

Cuándo

  • Cuando se trabaja con funciones estadísticas sólidas y potentes en Hadoop ecosistema
  • Cuando se trabaja con procesamiento de datos estructurados y semiestructurados
  • Como herramienta de almacenamiento de datos con Hadoop
  • Ingestión de datos en tiempo real con HBASE, se puede utilizar Hive

Dónde

  • Para facilitar el uso de ETL y la herramienta de almacenamiento de datos
  • Proporcionar un entorno de tipo SQL y realizar consultas como SQL usando HIVEQL
  • Para usar e implementar mapas personalizados y scripts reductores para los requisitos específicos del cliente.