Schéma de Magie des Données Royales

HadoopBeginner
Pratiquer maintenant

Introduction

Dans le charme enchanté de l'Académie Royale de Magie, où l'art de la magie s'entremêle de la poursuite du savoir, un jeune garde royal nommé Arthor se trouve chargé d'une mission cruciale. La vaste collection d'anciens tomes et de rouleaux de l'Académie, contenant une sagesse et des sorts précieux, est devenue de plus en plus désorganisée au fil des siècles. Le Grand Magicien, Merlinious le Sage, reconnaît le besoin urgent d'établir un système robuste et efficace pour gérer cette immense richesse d'informations.

L'objectif d'Arthor est de concevoir et de mettre en œuvre un schéma global pour les données de l'Académie, en s'assurant que les connaissances contenues dans ces anciens registres soient facilement accessibles et bien structurées. En utilisant le pouvoir d'Hadoop et de ses composants, en particulier Hive, il créera une solution de gestion de données fiable et scalable qui aidera les érudits et les magiciennes de l'Académie dans leur poursuite du savoir et de la maîtrise magique.

Configuration de l'environnement Hadoop

Dans cette étape, nous allons préparer l'environnement Hadoop pour notre projet de conception de schéma. Tout d'abord, passons à l'utilisateur hadoop :

su - hadoop

Une fois connecté en tant qu'utilisateur hadoop, accédez au répertoire /home/hadoop :

cd /home/hadoop

Maintenant, créons un nouveau répertoire appelé academy_data pour stocker nos fichiers de données et de schéma :

mkdir academy_data

Ensuite, nous devons nous assurer que les services Hadoop sont en cours d'exécution. Vous pouvez vérifier l'état des services avec la commande suivante :

hdfs dfsadmin -report

Si les services ne sont pas en cours d'exécution, vous pouvez les démarrer avec :

start-dfs.sh
start-yarn.sh

Avec l'environnement Hadoop configuré, nous sommes prêts à poursuivre notre conception de schéma.

Conception du schéma

Dans cette étape, nous allons concevoir le schéma pour les données de l'Académie. Commençons par analyser les données dont nous disposons. La collection de l'Académie se compose de trois catégories principales : livres, rouleaux et artefacts.

Créez un nouveau fichier appelé academy_schema.hql dans le répertoire academy_data :

cd academy_data
touch academy_schema.hql

Ouvrez le fichier dans votre éditeur de texte préféré et ajoutez la définition de schéma suivante :

-- academy_schema.hql

-- Créez une base de données pour les données de l'Académie
CREATE DATABASE IF NOT EXISTS academy;

-- Basculez sur la base de données academy
USE academy;

-- Table pour les livres
CREATE TABLE IF NOT EXISTS books (
    book_id INT,
    title STRING,
    author STRING,
    publication_year INT,
    category STRING
) COMMENT 'Table pour stocker les informations sur les livres'
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;

-- Table pour les rouleaux
CREATE TABLE IF NOT EXISTS scrolls (
    scroll_id INT,
    title STRING,
    author STRING,
    creation_year INT,
    subject STRING
) COMMENT 'Table pour stocker les informations sur les rouleaux'
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;

-- Table pour les artefacts
CREATE TABLE IF NOT EXISTS artifacts (
    artifact_id INT,
    name STRING,
    description STRING,
    origin STRING,
    age INT
) COMMENT 'Table pour stocker les informations sur les artefacts'
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;

Dans ce schéma, nous avons défini trois tables : books, scrolls et artifacts. Chaque table a des colonnes pertinentes pour la catégorie respective, telles que title, author, publication_year pour les livres, et subject, creation_year pour les rouleaux.

Nous avons également spécifié les clauses ROW FORMAT et STORED AS pour vous assurer que les données sont stockées sous forme de fichiers texte avec des champs séparés par des virgules.

Enregistrez le fichier et quittez l'éditeur de texte.

Implémentation du schéma

Maintenant que nous avons conçu le schéma, il est temps de l'implementer dans Hive. Tout d'abord, lançons le serveur Hive :

hive

Une fois que le serveur Hive est en cours d'exécution, nous pouvons exécuter le script de définition de schéma :

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

Cette commande créera la base de données academy et les tables books, scrolls et artifacts sur la base du schéma que nous avons défini précédemment.

EXIT;

Ensuite, remplaçons les tables avec quelques données d'échantillonnage. Créez un nouveau fichier appelé academy_data.txt dans le répertoire academy_data :

touch academy_data.txt

Ouvrez le fichier dans votre éditeur de texte et ajoutez les données suivantes :

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

Enregistrez le fichier et quittez l'éditeur de texte.

Maintenant, chargeons les données dans les tables respectives :

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;

Ces commandes chargeront les données à partir du fichier academy_data.txt dans les tables correspondantes.

Enfin, vérifions que les données ont été chargées correctement :

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

Vous devriez voir les données respectives affichées pour chaque table.

Interrogation des données

Avec les données chargées dans les tables, nous pouvons maintenant les interroger pour récupérer des informations pertinentes. Essayons quelques requêtes simples :

Récupérez tous les livres publiés en 2001 :

SELECT * FROM books WHERE publication_year = 2001;

Récupérez tous les rouleaux liés au sujet 'Charms' :

SELECT * FROM scrolls WHERE subject = 'Charms';

Récupérez tous les artefacts antérieurs à 1000 ans :

SELECT * FROM artifacts WHERE age > 1000;

Ces requêtes montrent comment nous pouvons filtrer et récupérer des données spécifiques dans les tables en fonction de diverses conditions.

Vous pouvez également effectuer des requêtes plus complexes, telles que des jointures et des agrégations, selon vos besoins.

Résumé

Dans ce laboratoire, nous avons exploré le processus de conception et d'implémentation d'un schéma pour les données de l'Académie Royale de Magie en utilisant le composant Hive d'Hadoop. Nous avons commencé par configurer l'environnement Hadoop et créer les répertoires nécessaires. Ensuite, nous avons conçu un schéma pour organiser la collection de livres, de rouleaux et d'artefacts de l'Académie dans des tables distinctes.

Ensuite, nous avons mis en œuvre le schéma en créant les tables et en chargeant des données d'échantillonnage dans celles-ci. Enfin, nous avons démontré comment interroger les données en utilisant diverses filtres et conditions.

Grâce à ce laboratoire, nous avons appris l'importance d'une conception de schéma appropriée dans la gestion de grands ensembles de données diversifiés. En structurant les données dans des tables bien définies avec des colonnes et des types de données appropriés, nous pouvons garantir un stockage, une récupération et une analyse d'informations efficaces.

De plus, nous avons acquis une expérience pratique avec Hive, un composant puissant de stockage de données d'Hadoop, et ses capacités de requêtage similaire à SQL. Cette expérience sera précieuse lorsque nous continuerons à travailler avec de grandes données et à explorer des techniques plus avancées pour l'analyse et le traitement des données.