Esquema de Magia de Datos Real

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

En el encantador reino de la Real Academia de Magia, donde el arte de la magia se entremezcla con la búsqueda del conocimiento, un joven Guardia Real llamado Arthor se encuentra con la tarea de una misión crucial. La vasta colección de antiguos tomos y pergaminos de la Academia, que contiene una sabiduría y hechizos inestimables, se ha vuelto cada vez más desorganizada a lo largo de los siglos. El Gran Mago, Merlinious el Sabio, reconoce la necesidad urgente de establecer un sistema sólido y eficiente para administrar esta inmensa riqueza de información.

El objetivo de Arthor es diseñar e implementar un esquema integral para los datos de la Academia, asegurándose de que el conocimiento contenido en estos registros antiguos sea fácil de acceder y bien estructurado. Al aprovechar el poder de Hadoop y sus componentes, en particular Hive, creará una solución de gestión de datos confiable y escalable que ayudará a los eruditos y magos de la Academia en su búsqueda del conocimiento y el dominio de la magia.

Configurando el entorno de Hadoop

En este paso, prepararemos el entorno de Hadoop para nuestro esfuerzo de diseño de esquema. Primero, cambiemos al usuario hadoop:

su - hadoop

Una vez que hayas iniciado sesión como el usuario hadoop, navega hasta el directorio /home/hadoop:

cd /home/hadoop

Ahora, crearemos un nuevo directorio llamado academy_data para almacenar nuestros archivos de datos y esquema:

mkdir academy_data

A continuación, debemos asegurarnos de que los servicios de Hadoop estén en ejecución. Puedes comprobar el estado de los servicios con el siguiente comando:

hdfs dfsadmin -report

Si los servicios no están en ejecución, puedes iniciarlos con:

start-dfs.sh
start-yarn.sh

Con el entorno de Hadoop configurado, estamos listos para continuar con nuestro diseño de esquema.

Diseñando el esquema

En este paso, diseñaremos el esquema para los datos de la Academia. Comencemos analizando los datos que tenemos. La colección de la Academia consta de tres categorías principales: libros, pergaminos y artefactos.

Crea un nuevo archivo llamado academy_schema.hql en el directorio academy_data:

cd academy_data
touch academy_schema.hql

Abre el archivo en tu editor de texto preferido y agrega la siguiente definición de esquema:

-- academy_schema.hql

-- Crea la base de datos para los datos de la Academia
CREATE DATABASE IF NOT EXISTS academy;

-- Cambia a la base de datos academy
USE academy;

-- Tabla para libros
CREATE TABLE IF NOT EXISTS books (
    book_id INT,
    title STRING,
    author STRING,
    publication_year INT,
    category STRING
) COMMENT 'Tabla para almacenar información de libros'
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;

-- Tabla para pergaminos
CREATE TABLE IF NOT EXISTS scrolls (
    scroll_id INT,
    title STRING,
    author STRING,
    creation_year INT,
    subject STRING
) COMMENT 'Tabla para almacenar información de pergaminos'
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;

-- Tabla para artefactos
CREATE TABLE IF NOT EXISTS artifacts (
    artifact_id INT,
    name STRING,
    description STRING,
    origin STRING,
    age INT
) COMMENT 'Tabla para almacenar información de artefactos'
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;

En este esquema, hemos definido tres tablas: books, scrolls y artifacts. Cada tabla tiene columnas relevantes para la categoría respectiva, como title, author, publication_year para los libros, y subject, creation_year para los pergaminos.

También hemos especificado las cláusulas ROW FORMAT y STORED AS para asegurar que los datos se almacenen como archivos de texto con campos separados por comas.

Guarda el archivo y sale del editor de texto.

Implementando el esquema

Ahora que hemos diseñado el esquema, es hora de implementarlo en Hive. Primero, iniciemos el servidor de Hive:

hive

Una vez que el servidor de Hive esté en ejecución, podemos ejecutar el script de definición de esquema:

SOURCE /home/hadoop/academy_data/academy_schema.hql;

Este comando creará la base de datos academy y las tablas books, scrolls y artifacts según el esquema que definimos anteriormente.

EXIT;

A continuación, vamos a poblar las tablas con algunos datos de muestra. Crea un nuevo archivo llamado academy_data.txt en el directorio academy_data:

touch academy_data.txt

Abre el archivo en tu editor de texto y agrega los siguientes datos:

1,The Sorcerer's Stone,J.K. Rowling,1997,Fantasy
2,Scroll of Levitation,Merlinious the Wise,1023,Charms
3,Ancient Wand,A powerful wand crafted by the Elven Wandmakers,Elven Realm,2500
4,Fantastic Beasts and Where to Find Them,Newt Scamander,2001,Bestiary
5,Scroll of Healing,Gwendolyn the Healer,1157,Healing
6,Enchanted Mirror,A mirror that reveals one's true self,Avalon,5000

Guarda el archivo y sale del editor de texto.

Ahora, carguemos los datos en las tablas respectivas:

hive
USE academy;
LOAD DATA LOCAL INPATH '/home/hadoop/academy_data/academy_data.txt' OVERWRITE INTO TABLE books;
LOAD DATA LOCAL INPATH '/home/hadoop/academy_data/academy_data.txt' OVERWRITE INTO TABLE scrolls;
LOAD DATA LOCAL INPATH '/home/hadoop/academy_data/academy_data.txt' OVERWRITE INTO TABLE artifacts;

Estos comandos cargarán los datos del archivo academy_data.txt en las tablas correspondientes.

Finalmente, veamos si los datos se han cargado correctamente:

SELECT * FROM books;
SELECT * FROM scrolls;
SELECT * FROM artifacts;

Deberías ver los datos respectivos mostrados para cada tabla.

Consultando los datos

Con los datos cargados en las tablas, ahora podemos consultarlos para recuperar información relevante. Intentemos algunas consultas simples:

Obtener todos los libros publicados en el año 2001:

SELECT * FROM books WHERE publication_year = 2001;

Obtener todos los pergaminos relacionados con el tema 'Charms':

SELECT * FROM scrolls WHERE subject = 'Charms';

Obtener todos los artefactos más antiguos de 1000 años:

SELECT * FROM artifacts WHERE age > 1000;

Estas consultas demuestran cómo podemos filtrar y recuperar datos específicos de las tablas basados en varias condiciones.

También puedes realizar consultas más complejas, como uniones y agregaciones, dependiendo de tus requisitos.

Resumen

En este laboratorio, exploramos el proceso de diseño e implementación de un esquema para los datos de la Academia Real de Magia utilizando el componente Hive de Hadoop. Comenzamos configurando el entorno de Hadoop y creando los directorios necesarios. Luego, diseñamos un esquema para organizar la colección de libros, pergaminos y artefactos de la Academia en tablas separadas.

A continuación, implementamos el esquema creando las tablas y cargando datos de muestra en ellas. Finalmente, demostramos cómo consultar los datos utilizando varios filtros y condiciones.

A través de este laboratorio, aprendimos la importancia del diseño adecuado de esquemas en la gestión de conjuntos de datos grandes y diversos. Al estructurar los datos en tablas bien definidas con columnas y tipos de datos adecuados, podemos garantizar el almacenamiento, recuperación y análisis eficientes de la información.

Además, adquirimos experiencia práctica con Hive, un componente de almacenamiento de datos poderoso de Hadoop, y sus capacidades de consulta similares a SQL. Esta experiencia será invaluable a medida que continuemos trabajando con grandes datos y explorando técnicas más avanzadas de análisis y procesamiento de datos.