Königliche Datenmagie-Schema

HadoopHadoopBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In der zauberhaften Welt der Königlichen Zauberakademie, wo die Kunst der Magie mit der Suche nach Wissen verflochten ist, befindet sich ein junger königlicher Wächter namens Arthor, der mit einer entscheidenden Mission betraut ist. Die umfangreiche Sammlung alter Bücher und Pergamente der Akademie, die unerschöpfliche Weisheit und Zauber enthalten, ist in den Jahrhunderten zunehmend ungeordnet geworden. Der Oberzauberer, Merlinious der Weise, erkennt die dringende Notwendigkeit, ein robustes und effizientes System zur Verwaltung dieses immensen Wissensguts zu etablieren.

Arthors Ziel ist es, ein umfassendes Schema für die Daten der Akademie zu entwerfen und umzusetzen, um sicherzustellen, dass das Wissen in diesen alten Aufzeichnungen leicht zugänglich und gut strukturiert ist. Indem er die Macht von Hadoop und seinen Komponenten, insbesondere Hive, nutzt, wird er eine zuverlässige und skalierbare Datenverwaltungslösung schaffen, die den Akademikern und Zauberern der Akademie bei ihrem Streben nach Wissen und magischer Meisterschaft helfen wird.

Einrichten der Hadoop-Umgebung

In diesem Schritt bereiten wir die Hadoop-Umgebung für unser Schema-Design vor. Zunächst wechseln wir zum Benutzer hadoop:

su - hadoop

Sobald Sie als Benutzer hadoop angemeldet sind, navigieren Sie zum Verzeichnis /home/hadoop:

cd /home/hadoop

Jetzt erstellen wir ein neues Verzeichnis namens academy_data, um unsere Daten- und Schema-Dateien zu speichern:

mkdir academy_data

Als Nächstes müssen wir sicherstellen, dass die Hadoop-Dienste ausgeführt werden. Sie können den Status der Dienste mit dem folgenden Befehl überprüfen:

hdfs dfsadmin -report

Wenn die Dienste nicht ausgeführt werden, können Sie sie mit folgenden Befehlen starten:

start-dfs.sh
start-yarn.sh

Mit der Hadoop-Umgebung eingerichtet, sind wir bereit, mit unserem Schema-Design fortzufahren.

Schema-Design

In diesem Schritt werden wir das Schema für die Daten der Akademie entwerfen. Beginnen wir mit der Analyse der vorhandenen Daten. Die Sammlung der Akademie besteht aus drei Hauptkategorien: Bücher, Pergamente und Artefakte.

Erstellen Sie in das Verzeichnis academy_data eine neue Datei namens academy_schema.hql:

cd academy_data
touch academy_schema.hql

Öffnen Sie die Datei in Ihrem bevorzugten Texteditor und fügen Sie die folgende Schema-Definition hinzu:

-- academy_schema.hql

-- Erstellen Sie eine Datenbank für die Daten der Akademie
CREATE DATABASE IF NOT EXISTS academy;

-- Wechseln Sie zur Datenbank academy
USE academy;

-- Tabelle für Bücher
CREATE TABLE IF NOT EXISTS books (
    book_id INT,
    title STRING,
    author STRING,
    publication_year INT,
    category STRING
) COMMENT 'Tabelle zur Speicherung von Buchinformationen'
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;

-- Tabelle für Pergamente
CREATE TABLE IF NOT EXISTS scrolls (
    scroll_id INT,
    title STRING,
    author STRING,
    creation_year INT,
    subject STRING
) COMMENT 'Tabelle zur Speicherung von Pergamentinformationen'
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;

-- Tabelle für Artefakte
CREATE TABLE IF NOT EXISTS artifacts (
    artifact_id INT,
    name STRING,
    description STRING,
    origin STRING,
    age INT
) COMMENT 'Tabelle zur Speicherung von Artefaktinformationen'
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;

In diesem Schema haben wir drei Tabellen definiert: books, scrolls und artifacts. Jede Tabelle hat Spalten, die für die jeweilige Kategorie relevant sind, wie title, author, publication_year für Bücher und subject, creation_year für Pergamente.

Wir haben auch die Klauseln ROW FORMAT und STORED AS angegeben, um sicherzustellen, dass die Daten als Textdateien mit komma-getrennten Feldern gespeichert werden.

Speichern Sie die Datei und beenden Sie den Texteditor.

Implementierung des Schemas

Jetzt, nachdem wir das Schema entworfen haben, ist es an der Zeit, es in Hive umzusetzen. Zunächst starten wir den Hive-Server:

hive

Sobald der Hive-Server läuft, können wir das Schema-Definitionsskript ausführen:

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

Dieser Befehl wird die Datenbank academy und die Tabellen books, scrolls und artifacts gemäß dem zuvor definierten Schema erstellen.

EXIT;

Als Nächstes füllen wir die Tabellen mit einigen Beispiel-Daten. Erstellen Sie in das Verzeichnis academy_data eine neue Datei namens academy_data.txt:

touch academy_data.txt

Öffnen Sie die Datei in Ihrem Texteditor und fügen Sie die folgenden Daten hinzu:

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

Speichern Sie die Datei und beenden Sie den Texteditor.

Jetzt laden wir die Daten in die jeweiligen Tabellen:

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;

Diese Befehle werden die Daten aus der Datei academy_data.txt in die entsprechenden Tabellen laden.

Schließlich überprüfen wir, ob die Daten korrekt geladen wurden:

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

Sie sollten die jeweiligen Daten für jede Tabelle angezeigt sehen.

Abfragen der Daten

Mit den Daten in den Tabellen geladen, können wir jetzt danach abfragen, um relevante Informationen zu erhalten. Versuchen wir einige einfache Abfragen:

Alle Bücher, die im Jahr 2001 veröffentlicht wurden, abrufen:

SELECT * FROM books WHERE publication_year = 2001;

Alle Pergamente, die mit dem Thema 'Charms' zusammenhängen, abrufen:

SELECT * FROM scrolls WHERE subject = 'Charms';

Alle Artefakte, die älter als 1000 Jahre sind, abrufen:

SELECT * FROM artifacts WHERE age > 1000;

Diese Abfragen zeigen, wie wir Daten aus den Tabellen basierend auf verschiedenen Bedingungen filtern und spezifische Daten abrufen können.

Je nach Ihren Anforderungen können Sie auch komplexere Abfragen durchführen, wie z. B. Verknüpfungen und Aggregationen.

Zusammenfassung

In diesem Lab haben wir den Prozess des Entwurfs und der Implementierung eines Schemas für die Daten der Royal Academy of Wizardry mit Hilfe der Hive-Komponente von Hadoop untersucht. Wir haben begonnen, indem wir die Hadoop-Umgebung eingerichtet und die erforderlichen Verzeichnisse erstellt haben. Anschließend haben wir ein Schema entworfen, um die Sammlung von Büchern, Pergamenten und Artefakten der Akademie in separate Tabellen zu organisieren.

Als Nächstes haben wir das Schema implementiert, indem wir die Tabellen erstellt und Beispiel-Daten in sie geladen haben. Schließlich haben wir gezeigt, wie man die Daten mit verschiedenen Filtern und Bedingungen abfragen kann.

Durch dieses Lab haben wir die Wichtigkeit eines angemessenen Schema-Designs bei der Verwaltung großer und vielfältiger Datensätze gelernt. Indem wir die Daten in gut definierte Tabellen mit geeigneten Spalten und Datentypen strukturieren, können wir eine effiziente Speicherung, Abrufung und Analyse von Informationen gewährleisten.

Zusätzlich haben wir praktische Erfahrungen mit Hive, einer leistungsstarken Datenlagerungskomponente von Hadoop, und seinen SQL-ähnlichen Abfragefähigkeiten gewonnen. Diese Erfahrungen werden unschätzbare Hilfe sein, wenn wir weiterhin mit Big Data arbeiten und fortgeschrittene Techniken zur Datenanalyse und -verarbeitung erkunden.