Cómo crear una tabla externa de Hive para datos de HDFS

HadoopHadoopBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

Este tutorial lo guiará a través del proceso de creación de una tabla externa de Hive para acceder a los datos almacenados en el Sistema de Archivos Distribuido de Hadoop (HDFS, por sus siglas en inglés). Aprenderá cómo configurar la tabla externa y consultar los datos que contiene, lo que le brindará una forma sin problemas de trabajar con los datos de Hadoop utilizando la interfaz de SQL de Hive.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL hadoop(("Hadoop")) -.-> hadoop/HadoopHDFSGroup(["Hadoop HDFS"]) hadoop(("Hadoop")) -.-> hadoop/HadoopHiveGroup(["Hadoop Hive"]) hadoop/HadoopHDFSGroup -.-> hadoop/hdfs_setup("HDFS Setup") hadoop/HadoopHiveGroup -.-> hadoop/hive_setup("Hive Setup") hadoop/HadoopHiveGroup -.-> hadoop/hive_shell("Hive Shell") hadoop/HadoopHiveGroup -.-> hadoop/manage_db("Managing Database") hadoop/HadoopHiveGroup -.-> hadoop/create_tables("Creating Tables") hadoop/HadoopHiveGroup -.-> hadoop/describe_tables("Describing Tables") subgraph Lab Skills hadoop/hdfs_setup -.-> lab-414827{{"Cómo crear una tabla externa de Hive para datos de HDFS"}} hadoop/hive_setup -.-> lab-414827{{"Cómo crear una tabla externa de Hive para datos de HDFS"}} hadoop/hive_shell -.-> lab-414827{{"Cómo crear una tabla externa de Hive para datos de HDFS"}} hadoop/manage_db -.-> lab-414827{{"Cómo crear una tabla externa de Hive para datos de HDFS"}} hadoop/create_tables -.-> lab-414827{{"Cómo crear una tabla externa de Hive para datos de HDFS"}} hadoop/describe_tables -.-> lab-414827{{"Cómo crear una tabla externa de Hive para datos de HDFS"}} end

Introducción a Hive y HDFS

¿Qué es Hive?

Hive es una infraestructura de almacén de datos (data warehouse) construida sobre Hadoop, que proporciona una interfaz similar a SQL para consultar y administrar los datos almacenados en el Sistema de Archivos Distribuido de Hadoop (HDFS, por sus siglas en inglés). Permite a los usuarios escribir consultas en un lenguaje similar a SQL llamado HiveQL, que luego se traducen en trabajos de MapReduce que se pueden ejecutar en el clúster de Hadoop.

¿Qué es HDFS?

HDFS (Sistema de Archivos Distribuido de Hadoop) es el sistema de almacenamiento de datos principal utilizado por las aplicaciones de Hadoop. Está diseñado para almacenar conjuntos de datos grandes de manera confiable y eficiente en múltiples máquinas de un clúster de Hadoop. HDFS proporciona acceso de alto rendimiento a los datos de la aplicación y es adecuado para aplicaciones que tienen conjuntos de datos grandes.

Integración de Hive y HDFS

Hive está estrechamente integrado con HDFS, lo que permite a los usuarios almacenar y consultar los datos almacenados en HDFS. Hive utiliza HDFS como su sistema de almacenamiento de datos principal y proporciona una forma de crear tablas que se asignan a los datos almacenados en HDFS.

graph TD A[Hive] --> B[HiveQL] B --> C[MapReduce] C --> D[HDFS]

Casos de uso de Hive y HDFS

Hive y HDFS se utilizan comúnmente en los siguientes escenarios:

  • Análisis de Big Data: Hive y HDFS se utilizan para almacenar y analizar conjuntos de datos grandes, como registros web, datos de sensores y datos de redes sociales.
  • Almacenamiento de datos (Data Warehousing): Hive proporciona una interfaz similar a SQL para consultar y administrar los datos almacenados en HDFS, lo que lo convierte en una opción popular para la construcción de almacenes de datos.
  • Procesamiento por lotes (Batch Processing): Hive se puede utilizar para realizar el procesamiento por lotes de los datos almacenados en HDFS, como generar informes, realizar operaciones ETL (Extraer, Transformar, Cargar) y ejecutar algoritmos de aprendizaje automático.

Creación de una tabla externa de Hive

Comprender las tablas externas de Hive

En Hive, una tabla externa es una tabla que apunta a datos almacenados en una ubicación externa, como HDFS. A diferencia de las tablas internas, que almacenan datos dentro del metastore de Hive, las tablas externas simplemente proporcionan una forma de acceder a datos que se almacenan en otro lugar.

Creación de una tabla externa de Hive

Para crear una tabla externa de Hive, puede utilizar la siguiente declaración SQL:

CREATE EXTERNAL TABLE IF NOT EXISTS table_name (
  col1 data_type,
  col2 data_type,
  ...
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE
LOCATION '/path/to/hdfs/directory';

Desglosemos las diferentes partes de esta declaración:

  • CREATE EXTERNAL TABLE IF NOT EXISTS table_name: Esto crea una nueva tabla externa con el nombre especificado o omite la creación si la tabla ya existe.
  • (col1 data_type, col2 data_type, ...): Esto define las columnas de la tabla, junto con sus tipos de datos.
  • ROW FORMAT DELIMITED: Esto especifica que los datos en la ubicación externa están delimitados por un carácter específico.
  • FIELDS TERMINATED BY ',': Esto establece el delimitador de campo como una coma.
  • STORED AS TEXTFILE: Esto le indica a Hive que los datos se almacenan en formato de archivo de texto.
  • LOCATION '/path/to/hdfs/directory': Esto especifica el directorio de HDFS donde se almacenan los datos.

Ejemplo: Creación de una tabla externa de Hive

Suponiendo que tiene un archivo CSV almacenado en HDFS en la ruta /user/hive/data/sales.csv, puede crear una tabla externa de Hive de la siguiente manera:

CREATE EXTERNAL TABLE IF NOT EXISTS sales (
  product STRING,
  quantity INT,
  price DOUBLE
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE
LOCATION '/user/hive/data/sales.csv';

Esto crea una tabla externa de Hive llamada sales con tres columnas: product, quantity y price. Se espera que los datos estén en formato CSV, con campos separados por comas.

Consulta de datos en la tabla externa

Acceso a los datos en la tabla externa

Una vez que haya creado una tabla externa de Hive, puede consultar los datos almacenados en el directorio de HDFS asociado de la misma manera que lo haría con cualquier otra tabla de Hive. Los datos se cargan automáticamente desde HDFS cuando ejecuta una consulta en la tabla.

Ejemplos de consultas

Supongamos que ha creado una tabla externa de Hive llamada sales como se mostró en la sección anterior. Aquí hay algunos ejemplos de consultas que puede ejecutar:

-- Select all rows from the sales table
SELECT * FROM sales;

-- Select specific columns from the sales table
SELECT product, quantity, price FROM sales;

-- Filter the data based on a condition
SELECT * FROM sales WHERE quantity > 10;

-- Perform aggregations on the data
SELECT product, SUM(quantity) AS total_quantity, AVG(price) AS avg_price
FROM sales
GROUP BY product;

Estas consultas recuperarán los datos del directorio de HDFS asociado a la tabla sales y devolverán los resultados al usuario.

Ventajas de las tablas externas

El uso de tablas externas en Hive ofrece varias ventajas:

  1. Independencia de los datos: Las tablas externas desacoplan los datos del metastore de Hive, lo que permite que los datos se administren y modifiquen de forma independiente sin afectar la definición de la tabla de Hive.
  2. Flexibilidad: Las tablas externas se pueden utilizar para acceder a datos almacenados en varios formatos (por ejemplo, CSV, Parquet, ORC) y ubicaciones (por ejemplo, HDFS, Amazon S3, Google Cloud Storage).
  3. Reducción de la sobrecarga de almacenamiento: Dado que los datos no se almacenan en el metastore de Hive, las tablas externas requieren menos espacio de almacenamiento en comparación con las tablas internas.
  4. Ingesta de datos más fácil: Las tablas externas facilitan la ingesta de datos en el ecosistema de Hive, ya que los datos se pueden agregar directamente al directorio de HDFS sin necesidad de crear una nueva tabla de Hive.

Al entender cómo crear y consultar tablas externas de Hive, puede aprovechar eficazmente el poder de Hive y HDFS para administrar y analizar sus datos masivos.

Resumen

En este tutorial centrado en Hadoop, ha aprendido cómo crear una tabla externa de Hive para acceder a los datos almacenados en HDFS. Al configurar la tabla externa, ahora puede consultar y manipular los datos utilizando la sintaxis de SQL de Hive, sin necesidad de interactuar directamente con el sistema de archivos HDFS subyacente. Este enfoque simplifica el proceso de trabajar con los datos de Hadoop y le permite aprovechar las potentes capacidades del ecosistema de Hive.