Hadoop-Datumskenntnisse für Astronomen

HadoopHadoopBeginner
Jetzt üben

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

Einführung

Es ist das Jahr 2285, und die Menschheit hat eine blühende Weltraumstation um den Planeten Mars errichtet. Diese Forschungsstätte, die als Martian Observatory bekannt ist, fungiert als Zentrum für wissenschaftliche Exploration und Entdeckung. Unter den vielen Wissenschaftlern, die hier stationiert sind, ist Dr. Emma Wilkins, eine brillante Datenanalystin, die sich auf astronomische Beobachtungen spezialisiert hat.

Dr. Wilkins hat die Aufgabe, eine enorme Menge an Daten zu analysieren, die von verschiedenen Teleskopen und Instrumenten an Bord der Station gesammelt wurden. Die Daten befinden sich jedoch in einem rohen Format, und sie muss sie verarbeiten und manipulieren, um sinnvolle Erkenntnisse zu extrahieren. Eine der entscheidenden Herausforderungen, denen sie gegenübersteht, ist das Arbeiten mit Datum- und Zeitinformationen, da viele der Beobachtungen zeitkritisch sind und genaue Datumsberechnungen erfordern.

Um dieser Herausforderung zu begegnen, muss Dr. Wilkins die leistungsfähigen Datumsfunktionen in Hadoop Hive nutzen, einer Datenlagerlösung für die Big Data-Verarbeitung. Indem sie diese Funktionen beherrscht, kann sie die Datum- und Zeitdaten effizient manipulieren und analysieren, was es ihr ermöglicht, Muster, Trends und Anomalien zu entdecken, die zu bahnbrechenden Entdeckungen auf dem Gebiet der Astronomie führen könnten.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL hadoop(("Hadoop")) -.-> hadoop/HadoopHiveGroup(["Hadoop Hive"]) hadoop/HadoopHiveGroup -.-> hadoop/hive_shell("Hive Shell") hadoop/HadoopHiveGroup -.-> hadoop/create_tables("Creating Tables") hadoop/HadoopHiveGroup -.-> hadoop/load_insert_data("Loading and Inserting Data") hadoop/HadoopHiveGroup -.-> hadoop/basic_hiveql("Basic HiveQL Queries") hadoop/HadoopHiveGroup -.-> hadoop/where("where Usage") hadoop/HadoopHiveGroup -.-> hadoop/date("Date Operating Function") hadoop/HadoopHiveGroup -.-> hadoop/udf("User Defined Function") hadoop/HadoopHiveGroup -.-> hadoop/storage_formats("Choosing Storage Formats") subgraph Lab Skills hadoop/hive_shell -.-> lab-288963{{"Hadoop-Datumskenntnisse für Astronomen"}} hadoop/create_tables -.-> lab-288963{{"Hadoop-Datumskenntnisse für Astronomen"}} hadoop/load_insert_data -.-> lab-288963{{"Hadoop-Datumskenntnisse für Astronomen"}} hadoop/basic_hiveql -.-> lab-288963{{"Hadoop-Datumskenntnisse für Astronomen"}} hadoop/where -.-> lab-288963{{"Hadoop-Datumskenntnisse für Astronomen"}} hadoop/date -.-> lab-288963{{"Hadoop-Datumskenntnisse für Astronomen"}} hadoop/udf -.-> lab-288963{{"Hadoop-Datumskenntnisse für Astronomen"}} hadoop/storage_formats -.-> lab-288963{{"Hadoop-Datumskenntnisse für Astronomen"}} end

Einrichten der Hive-Umgebung

In diesem Schritt werden wir die Hive-Umgebung einrichten und einen Beispiel-Datensatz für die Übung mit Datumsfunktionen erstellen.

  1. Wechseln Sie zunächst zum Benutzer hadoop, indem Sie den folgenden Befehl in der Konsole ausführen:
su - hadoop
  1. Starten Sie nun die Hive-Shell, indem Sie den folgenden Befehl ausführen:
hive
  1. Erstellen Sie eine neue Hive-Tabelle namens observations mit dem folgenden Schema:
CREATE TABLE observations (
    observation_id INT,
    telescope STRING,
    observation_date STRING,
    observation_time STRING
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;
  1. Laden Sie einige Beispiel-Daten in die Tabelle observations:
LOAD DATA LOCAL INPATH '/home/hadoop/resources/observations.csv' OVERWRITE INTO TABLE observations;

Die Datei observations.csv enthält Beispiel-Beobachtungsdaten mit Spalten für observation_id, telescope, observation_date (im Format yyyy-MM-dd) und observation_time (im Format HH:mm:ss).

Verwenden der year()-Funktion

In diesem Schritt werden wir lernen, wie die year()-Funktion in Hive verwendet wird, um das Jahr aus einem Datumsstring zu extrahieren.

Die year()-Funktion nimmt einen Datums- oder Zeitstempelstring als Eingabe und gibt die Jahrskomponente als ganzzahligen Wert zurück.

  1. Öffnen Sie die Hive-Konsole, indem Sie den Befehl hive in der Konsole ausführen.

  2. Führen Sie die folgende Abfrage aus, um das Jahr aus der Spalte observation_date zu extrahieren:

SELECT observation_id, year(observation_date) AS observation_year
FROM observations;

Diese Abfrage wird die observation_id und das zugehörige Jahr für jede Beobachtung in der Tabelle zurückgeben.

  1. Sie können die year()-Funktion auch in Kombination mit anderen Datumsfunktionen oder Klauseln verwenden. Beispielsweise können Sie die folgende Abfrage verwenden, um Beobachtungen aus einem bestimmten Jahr zu filtern:
SELECT *
FROM observations
WHERE year(observation_date) = 2022;

Diese Abfrage wird alle Beobachtungen zurückgeben, bei denen die Jahrskomponente von observation_date 2022 ist.

Verwenden der datediff()-Funktion

In diesem Schritt werden wir lernen, wie die datediff()-Funktion in Hive verwendet wird, um die Differenz zwischen zwei Daten zu berechnen.

Die datediff()-Funktion nimmt zwei Datums- oder Zeitstempelstrings als Eingabe und gibt die Anzahl der Tage zwischen ihnen zurück.

  1. Öffnen Sie die Hive-Konsole, wenn sie nicht bereits geöffnet ist.

  2. Führen Sie die folgende Abfrage aus, um die Anzahl der Tage zwischen zwei Beobachtungsdaten zu berechnen:

SELECT observation_id,
       observation_date,
       '2022-12-31' AS reference_date,
       datediff('2022-12-31', observation_date) AS days_until_end_of_year
FROM observations;

Diese Abfrage wird die observation_id, observation_date, ein Referenzdatum (2022-12-31) und die Anzahl der Tage zwischen dem observation_date und dem Referenzdatum (days_until_end_of_year) zurückgeben.

  1. Sie können die datediff()-Funktion auch mit anderen Datumsfunktionen oder Klauseln verwenden. Beispielsweise können Sie die folgende Abfrage verwenden, um Beobachtungen innerhalb eines bestimmten Datumsbereichs zu filtern:
SELECT *
FROM observations
WHERE datediff(observation_date, '2022-01-01') BETWEEN 0 AND 180;

Diese Abfrage wird alle Beobachtungen zurückgeben, bei denen das observation_date zwischen dem 1. Januar 2022 und dem 30. Juni 2022 (einschließlich) liegt.

Verwenden der date_format()-Funktion

In diesem Schritt werden wir lernen, wie die date_format()-Funktion in Hive verwendet wird, um einen Datumsstring von einem Format in ein anderes umzuwandeln.

Die date_format()-Funktion nimmt zwei Argumente: einen Datums- oder Zeitstempelstring und ein Formatmuster. Sie gibt den Datums- oder Zeitstempelstring im angegebenen Formatmuster zurück.

  1. Öffnen Sie die Hive-Konsole, wenn sie nicht bereits geöffnet ist.

  2. Führen Sie die folgende Abfrage aus, um die Spalte observation_date vom Format yyyy-MM-dd in das Format MMM dd, yyyy umzuwandeln:

SELECT observation_id,
       observation_date,
       date_format(observation_date, 'MMM dd, yyyy') AS formatted_date
FROM observations;

Diese Abfrage wird die observation_id, das ursprüngliche observation_date und das formatierte Datum (formatted_date) im Format MMM dd, yyyy zurückgeben (z.B. Jun 15, 2022).

  1. Sie können die date_format()-Funktion auch mit anderen Datumsfunktionen oder Klauseln verwenden. Beispielsweise können Sie die folgende Abfrage verwenden, um Beobachtungen basierend auf einem bestimmten Datumsformat zu filtern:
SELECT *
FROM observations
WHERE date_format(observation_date, 'yyyy/MM/dd') = '2022/06/15';

Diese Abfrage wird alle Beobachtungen zurückgeben, bei denen das observation_date, wenn es im Format yyyy/MM/dd formatiert wird, gleich 2022/06/15 ist.

Verwenden der add_months()-Funktion

In diesem Schritt werden wir lernen, wie die add_months()-Funktion in Hive verwendet wird, um Monate zu einem Datum hinzuzufügen oder abzuziehen.

Die add_months()-Funktion nimmt zwei Argumente: einen Datums- oder Zeitstempelstring und einen ganzzahligen Wert, der die Anzahl der Monate angibt, die hinzugefügt oder abgezogen werden sollen.

  1. Öffnen Sie die Hive-Konsole, wenn sie nicht bereits geöffnet ist.

  2. Führen Sie die folgende Abfrage aus, um sechs Monate zum observation_date-Spaltenwert hinzuzufügen:

SELECT observation_id,
       observation_date,
       add_months(observation_date, 6) AS date_plus_six_months
FROM observations;

Diese Abfrage wird die observation_id, das ursprüngliche observation_date und das Datum sechs Monate nach dem observation_date (date_plus_six_months) zurückgeben.

  1. Sie können die add_months()-Funktion auch mit anderen Datumsfunktionen oder Klauseln verwenden. Beispielsweise können Sie die folgende Abfrage verwenden, um Beobachtungen innerhalb eines bestimmten Monatsbereichs zu filtern:
SELECT *
FROM observations
WHERE month(add_months(observation_date, 6)) BETWEEN 1 AND 6;

Diese Abfrage wird alle Beobachtungen zurückgeben, bei denen der Monatskomponente des Datums sechs Monate nach dem observation_date zwischen Januar und Juni (einschließlich) liegt.

Zusammenfassung

In diesem Lab haben wir die Welt der Datumsfunktionen in Hadoop Hive, einer leistungsstarken Datenlagerlösung für die Big Data-Verarbeitung, erkundet. In einer fesselnden Szenerie auf einer zukunftsträchtigen Raumstation, die um den Mars kreist, haben wir die Reise der brillanten Datenanalytikerin Dr. Emma Wilkins verfolgt, die mit der Analyse astronomischer Beobachtungen betraut war.

Durch die Beherrschung von Datumsfunktionen wie year(), datediff(), date_format() und add_months() hat Dr. Wilkins die Fähigkeit gewonnen, Datum- und Zeitdaten effizient zu manipulieren und zu analysieren, was es ihr ermöglicht, Muster, Trends und Anomalien zu entdecken, die zu bahnbrechenden Entdeckungen auf dem Gebiet der Astronomie führen könnten.

Während des gesamten Labs haben wir uns auf praktische Beispiele eingelassen und Checker bereitgestellt, um eine nahtlose Lernumgebung zu gewährleisten. Die interaktive Natur des Labs hat es den Lernenden ermöglicht, die Kenntnis dieser essentiellen Funktionen zu üben und zu vertiefen, und eine solide Grundlage für fortgeschrittene Datenanalyseverfahren gelegt.

Insgesamt hat dieses Lab nicht nur wertvolle technische Kenntnisse vermittelt, sondern auch ein Gefühl der Verwunderung und Neugierde für die weite Entweitung des Kosmos geweckt. Indem wir den Lernenden die Werkzeuge zur Verfügung gestellt haben, um die Geheimnisse in astronomischen Daten zu entlocken, haben wir den Weg für zukünftige Generationen von Wissenschaftlern bereitet, um die Grenzen des menschlichen Wissens und der Exploration zu erweitern.