Tipos de tablas en Apache Hive

Contenidos

Visión general

  • Apache Hive es una herramienta imprescindible para cualquier persona interesada en la ciencia y la ingeniería de datos.
  • Conozca los diferentes tipos de tablas de Apache Hive

Introducción

He pasado más de media década trabajando con la pila de tecnología Big Data y consultando con clientes en varios dominios. Una cosa que he notado es la frecuencia con la que se utiliza Hive como solución de almacenamiento en todos los dominios comerciales.

Simplemente no puede ignorar Apache Hive cuando está aprendiendo Apache Hadoop.

colmena apache

Hive es parte del gran ecosistema de Hadoop que le posibilita proporcionar un esquema para grandes datos que residen en HDFS. La mayoría de ustedes conocerán RDBMS y sus tablas. Los usamos con tanta frecuencia que ahora se ha convertido en parte de nuestras vidas. Y aquí está la cuestión: las tablas en Hive no son diferentes.

¿Alguna vez te preguntaste cuáles podrían ser los diferentes tipos de tablas en Hive? ¡Eso es lo que discutiremos en este post!

Tabla de contenido

  1. ¿Qué es Apache Hive?
  2. Tipos de tabla en Apache Hive # 1: tablas administradas
  3. Tipos de tabla en Apache Hive # 2: Tablas externas
  4. Tabla administrada vs externa: ¿cuál es la diferencia?
  5. Identificar el tipo de tabla Apache Hive

¿Qué es Apache Hive?

Apache Hive es un sistema de almacenamiento de datos para Apache Hadoop. Proporciona acceso equivalente a SQL para datos en HDFS para que Hadoop se pueda usar como estructura de almacén. Hive le posibilita proporcionar estructura sobre datos en gran parte no estructurados. Después de establecer la estructura, puede usar Hive para consultar los datos sin conocimientos de Java o Map Reduce.

Hive Query Language (HQL) cuenta con una semántica y funciones similares a las de SQL estándar en la base de datos relacional para que los analistas de bases de datos experimentados puedan ingresar fácilmente a los datos.

tablas apache colmena

¿Cuáles son las funciones que ofrece Hive?

Apache Hive proporciona las siguientes características:

  1. Apache Hive proporciona un modelo de consulta más simple con menos codificación que Map Reduce
  2. HQL y SQL disponen una sintaxis equivalente
  3. Proporciona muchas funciones que facilitan el uso de análisis.
  4. El tiempo de respuesta suele ser mucho más rápido que otros tipos de consultas en los mismos conjuntos de datos enormes
  5. Apache Hive admite la ejecución en diferentes marcos informáticos
  6. Admite consultas de datos ad hoc en HDFS
  7. Apache Hive admite funciones definidas por el usuario, scripts y un formato de E / S personalizado para ampliar su funcionalidad.
  8. Es escalable y extensible a varios tipos de datos y conjuntos de datos más grandes.
  9. Los controladores JDBC y ODBC maduros posibilitan que muchas aplicaciones extraigan datos de Hive para generar informes sin problemas
  10. Hive posibilita a los usuarios leer datos en formatos arbitrarios, usando SerDes y formatos de entrada / salida
  11. Hive cuenta con una arquitectura bien establecida para la administración de metadatos, la autenticación y la optimización de consultas.
  12. Hay una gran comunidad de profesionales y desarrolladores que trabajan y usan Hive.

Tipos de tablas en Apache Hive

Estos son los tipos de tablas en Apache Hive:

Tablas gestionadas

En una tabla administrada, Hive administra tanto los datos como el esquema de la tabla. Los datos se ubicarán en una carpeta con el nombre de la tabla dentro del almacén de datos de Hive, que es simplemente una ubicación de archivo en HDFS.

La ubicación es configurable por el usuario cuando Hive está instalado. Por administrado o controlado queremos decir que si elimina (elimina) una tabla administrada, Hive eliminará tanto el esquema (la descripción de la tabla) como los archivos de datos asociados con la tabla. La ubicación predeterminada es / usuario / colmena / almacén).

Sintaxis para crear una tabla administrada

CREATE TABLE IF NOT EXISTS stocks (exchange STRING,
symbol STRING,
price_open FLOAT,
price_high FLOAT,
price_low FLOAT,
price_adj_close FLOAT)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' ;

Como para tablas gestionadas, además puede copiar el esquema (pero no los datos) de una tabla existente:

CREATE EXTERNAL TABLE IF NOT EXISTS mydb.employees3
LIKE mydb.employees
LOCATION '/path/to/data';

Mesas Externas
Una tabla externa es aquella en la que Hive solo controla el esquema de la tabla. En la mayoría de los casos, el usuario configurará la ubicación de la carpeta dentro de HDFS y copiará los archivos de datos allí. Esta ubicación se incluye como parte de la declaración de definición de la tabla. Cuando se elimina una tabla externa, Hive solo eliminará el esquema asociado con la tabla. Los archivos de datos no se ven afectados.

Sintaxis para crear una tabla externa

CREATE EXTERNAL TABLE IF NOT EXISTS stocks (exchange STRING,
symbol STRING,
price_open FLOAT,
price_high FLOAT,
price_low FLOAT,
price_adj_close FLOAT)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
LOCATION '/data/stocks';

Tabla administrada frente a tabla externa: ¿cuál es la diferencia?

Mesa gestionadaMesa Externa
Hive asume que posee los datos de las tablas administradas.Para tablas externas, Hive asume que sí no administrar los datos.
Si se elimina una tabla o partición administrada, se eliminan los datos y metadatos asociados con esa tabla o partición.Dejar la tabla no elimina los datos, aún cuando se eliminarán los metadatos de la tabla.
Para Tablas gestionadas, Colmena almacena datos en su directorio de almacénPara Mesas Externas, Colmena almacena los datos en la UBICACIÓN especificada durante la creación del mesa(de forma general no en el directorio del almacén)
La tabla gestionada proporciona apoyo ACID / acción transnacional.La tabla externa no proporciona soporte para acciones ACID / transaccionales.
Declaraciones: ARCHIVE, UNARCHIVE, TRUNCATE, MERGE, CONCATENATE compatibleNo soportado.
Se admite el almacenamiento en caché de resultados de consultas (guarda los resultados de una consulta de Hive ejecutada para su reutilización)No soportado

Identificar el tipo de tabla Apache Hive

Puede saber si una tabla es administrada o externa usando la salida de DESCRIBE EXTENDED nombre de la tabla.

Cerca del final de la salida de información detallada de la tabla, verá lo siguiente para administrado mesas:

... tableType: MANAGED_TABLE)

Para externo tablas, verá lo siguiente:

... tableType: EXTERNAL_TABLE)

Nota: Si omite la keyword EXTERNAL y la tabla original es externa, la nueva tabla además será externa. Si omite EXTERNAL y se administra la tabla original, además se administrará la nueva tabla. A pesar de esto, si incluye la keyword EXTERNAL y se administra la tabla original, la nueva tabla será externa. Inclusive en este escenario, la cláusula LOCATION seguirá siendo opcional.

Notas finales

En este post, aprendimos sobre Apache Hive y sus tipos de tablas. Con suerte, es factible que haya obtenido una buena descripción general de los tipos de tablas en Hive. Las diferencias indicadas no son exhaustivas. No dude en agregar más en la sección de comentarios a continuación.

Los siguientes son algunos recursos adicionales de ingeniería de datos que le recomiendo que explore:

Espero que les haya gustado el post. Si tiene alguna duda relacionada con este post, hágamelo saber en la sección de comentarios a continuación.

Lectura recomendada-

https://cwiki.apache.org/confluence/display/Hive/Home

Suscribite a nuestro Newsletter

No te enviaremos correo SPAM. Lo odiamos tanto como tú.