Introducción
En el año 2165, la Tierra fue devastada por una guerra catastrófica que duró décadas. Los humanos sobrevivientes buscaron refugio en planetas distantes, estableciendo nuevas colonias para reconstruir su civilización. Una de estas colonias, ubicada en el planeta Xylonia, estaba habitada por una especie tecnológicamente avanzada conocida como los Blaxters.
Los Blaxters habían dominado el arte de la gestión de datos, utilizando sistemas avanzados como Hadoop para almacenar y procesar grandes cantidades de información. Como Ingeniero de Datos recién nombrado para la colonia de Xylonia, tu misión es aprender las complejidades del sistema de gestión de bases de datos Hadoop Hive, asegurando el almacenamiento y recuperación eficientes de los datos críticos necesarios para la supervivencia y crecimiento de la colonia.
Tu objetivo es ayudar a los Blaxters a gestionar sus vastos repositorios de datos, aprovechando el poder de Hadoop Hive para organizar, consultar y analizar la información vital para su investigación científica, gestión de recursos y planificación estratégica.
Crear una base de datos
En este paso, aprenderás a crear una nueva base de datos en Hadoop Hive. Esta base de datos servirá como un repositorio central para almacenar y organizar los datos de la colonia.
Primero, asegúrate de estar registrado como el usuario hadoop ejecutando el siguiente comando en la terminal:
su - hadoop
Una vez que estés en el entorno del usuario hadoop, navega hasta el directorio /home/hadoop:
cd /home/hadoop
Ahora, lanza la shell de Hive ejecutando el siguiente comando:
hive
Dentro de la shell de Hive, crea una nueva base de datos llamada xylonia_colony utilizando la siguiente instrucción SQL:
CREATE DATABASE xylonia_colony;
Para verificar la creación exitosa de la base de datos, puedes listar todas las bases de datos disponibles utilizando el siguiente comando:
SHOW DATABASES;
Esto debería mostrar la recién creada base de datos xylonia_colony junto con cualquier otra base de datos existente.
Crear una tabla
En este paso, aprenderás a crear una tabla dentro de la base de datos xylonia_colony para almacenar datos relacionados con los recursos de la colonia.
Primero, asegúrate de estar en la shell de Hive. Si no es así, lánzala ejecutando el siguiente comando:
hive
Cambia a la base de datos xylonia_colony utilizando el siguiente comando:
USE xylonia_colony;
Crea una nueva tabla llamada resources con las siguientes columnas: resource_id (INT), resource_name (STRING), quantity (DOUBLE) y unit (STRING). Utiliza la siguiente instrucción SQL:
CREATE TABLE resources (
resource_id INT,
resource_name STRING,
quantity DOUBLE,
unit STRING
);
Para verificar la creación exitosa de la tabla, lista todas las tablas en la base de datos xylonia_colony utilizando el siguiente comando:
SHOW TABLES;
Esto debería mostrar la tabla resources.
Insertar datos
En este paso, aprenderás a insertar datos en la tabla resources que creaste en el paso anterior.
Primero, asegúrate de estar en la shell de Hive. Si no es así, lánzala ejecutando el siguiente comando:
hive
Cambia a la base de datos xylonia_colony utilizando el siguiente comando:
USE xylonia_colony;
Inserta algunos datos de muestra en la tabla resources utilizando las siguientes instrucciones SQL:
INSERT INTO resources VALUES (1, 'Oxygen', 500.0, 'Tons');
INSERT INTO resources VALUES (2, 'Water', 1000.0, 'Gallons');
INSERT INTO resources VALUES (3, 'Food', 200.0, 'Tons');
Para verificar la inserción exitosa de datos, consulta la tabla resources utilizando el siguiente comando:
SELECT * FROM resources;
Esto debería mostrar las tres filas de datos que insertaste.
Consultar datos
En este paso, aprenderás a consultar datos de la tabla resources utilizando varias instrucciones SQL.
Primero, asegúrate de estar en la shell de Hive. Si no es así, lánzala ejecutando el siguiente comando:
hive
Cambia a la base de datos xylonia_colony utilizando el siguiente comando:
USE xylonia_colony;
Consulta la tabla resources para recuperar todos los recursos donde la cantidad sea mayor que 500:
SELECT * FROM resources WHERE quantity > 500;
Esto debería mostrar las filas donde el valor de la columna quantity es mayor que 500.
También puedes realizar funciones de agregación como SUM o AVG en los datos. Por ejemplo, calcula la cantidad total de todos los recursos:
SELECT SUM(quantity) AS total_quantity FROM resources;
Esto mostrará la suma de todos los valores de quantity en la tabla resources.
Crear una tabla particionada
En este paso, aprenderás a crear una tabla particionada en Hive, lo que puede mejorar el rendimiento de las consultas al reducir la cantidad de datos que se deben escanear.
Primero, asegúrate de estar en la shell de Hive. Si no es así, lánzala ejecutando el siguiente comando:
hive
Cambia a la base de datos xylonia_colony utilizando el siguiente comando:
USE xylonia_colony;
Crea una nueva tabla particionada llamada sensor_data con las columnas sensor_id (INT), sensor_name (STRING), reading (DOUBLE) y particionada por dt (STRING):
CREATE TABLE sensor_data (
sensor_id INT,
sensor_name STRING,
reading DOUBLE
)
PARTITIONED BY (dt STRING);
Para insertar datos en la tabla particionada, debes especificar el valor de la clave de partición junto con los valores de las columnas. Por ejemplo:
INSERT INTO sensor_data PARTITION (dt='2023-05-01')
VALUES (1, 'Temperature Sensor', 25.5), (2, 'Humidity Sensor', 60.0);
Esto inserta dos filas de datos en la tabla sensor_data, particionada por el dt 2023-05-01.
Puedes consultar la tabla particionada igual que cualquier otra tabla, pero también puedes filtrar los datos basados en la clave de partición:
SELECT * FROM sensor_data WHERE dt='2023-05-01';
Esto solo escaneará la partición correspondiente a 2023-05-01, lo que puede mejorar el rendimiento de la consulta.
Resumen
En este laboratorio, aprendiste a administrar bases de datos y tablas en Hadoop Hive, una herramienta de almacenamiento de datos poderosa dentro del ecosistema Hadoop. Creaste una nueva base de datos y tabla, insertaste datos y consultaste los datos utilizando instrucciones SQL. Además, exploraste tablas particionadas, que pueden mejorar el rendimiento de las consultas al reducir la cantidad de datos que se deben escanear.
A través de esta experiencia práctica, adquiriste habilidades prácticas en la administración de repositorios de datos utilizando Hadoop Hive, un componente crucial en los sistemas avanzados de administración de datos de Blaxters. Al dominar estas técnicas, has dado un paso importante hacia el apoyo de los esfuerzos de la colonia Xyloniana en la investigación científica, la gestión de recursos y la planificación estratégica.



