Maîtrise des dates Hadoop pour les astronomes

HadoopHadoopBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

L'année est 2285, et l'humanité a établi une station spatiale prospère en orbite autour de la planète Mars. Ce lieu de recherche, connu sous le nom d'Observatoire martien, sert de centre d'exploration et de découverte scientifique. Parmi les nombreux scientifiques stationnés ici, se trouve la Dr Emma Wilkins, une brillante analyste de données spécialisée dans les observations astronomiques.

La Dr Wilkins a été chargée d'analyser d'énormes quantités de données recueillies à partir de divers télescopes et d'instruments à bord de la station. Cependant, les données sont au format brut, et elle doit les traiter et manipuler pour extraire des informations significatives. L'un des défis majeurs qu'elle rencontre est de travailler avec des informations de date et d'heure, car de nombreuses observations sont sensibles au temps et nécessitent des calculs de date précis.

Pour relever ce défi, la Dr Wilkins doit utiliser les puissantes fonctions d'opération de date disponibles dans Hadoop Hive, une solution de stockage de données conçue pour le traitement de grands volumes de données. En maîtrisant ces fonctions, elle peut manipuler et analyser efficacement les données de date et d'heure, ce qui lui permet de découvrir des modèles, des tendances et des anomalies qui pourraient mener à des découvertes révolutionnaires dans le domaine de l'astronomie.


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{{"Maîtrise des dates Hadoop pour les astronomes"}} hadoop/create_tables -.-> lab-288963{{"Maîtrise des dates Hadoop pour les astronomes"}} hadoop/load_insert_data -.-> lab-288963{{"Maîtrise des dates Hadoop pour les astronomes"}} hadoop/basic_hiveql -.-> lab-288963{{"Maîtrise des dates Hadoop pour les astronomes"}} hadoop/where -.-> lab-288963{{"Maîtrise des dates Hadoop pour les astronomes"}} hadoop/date -.-> lab-288963{{"Maîtrise des dates Hadoop pour les astronomes"}} hadoop/udf -.-> lab-288963{{"Maîtrise des dates Hadoop pour les astronomes"}} hadoop/storage_formats -.-> lab-288963{{"Maîtrise des dates Hadoop pour les astronomes"}} end

Configuration de l'environnement Hive

Dans cette étape, nous allons configurer l'environnement Hive et créer un ensemble de données d'échantillonnage pour pratiquer les fonctions d'opération de date.

  1. Tout d'abord, basculez sur l'utilisateur hadoop en exécutant la commande suivante dans le terminal :
su - hadoop
  1. Maintenant, lancez le shell Hive en exécutant la commande suivante :
hive
  1. Créez une nouvelle table Hive appelée observations avec le schéma suivant :
CREATE TABLE observations (
    observation_id INT,
    telescope STRING,
    observation_date STRING,
    observation_time STRING
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;
  1. Chargez quelques données d'échantillonnage dans la table observations :
LOAD DATA LOCAL INPATH '/home/hadoop/resources/observations.csv' OVERWRITE INTO TABLE observations;

Le fichier observations.csv contient des données d'observation d'échantillonnage avec des colonnes pour observation_id, telescope, observation_date (au format aaaa-MM-jj) et observation_time (au format HH:mm:ss).

Utilisation de la fonction year()

Dans cette étape, nous allons apprendre à utiliser la fonction year() dans Hive pour extraire l'année d'une chaîne de date.

La fonction year() prend une chaîne de date ou de timestamp en entrée et renvoie la composante année sous forme d'une valeur entière.

  1. Ouvrez la console Hive en exécutant la commande hive dans le terminal.

  2. Exécutez la requête suivante pour extraire l'année de la colonne observation_date :

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

Cette requête renverra l'observation_id et l'année correspondante pour chaque observation de la table.

  1. Vous pouvez également utiliser la fonction year() en combinaison avec d'autres fonctions ou clauses de date. Par exemple, pour filtrer les observations d'une année spécifique, vous pouvez utiliser la requête suivante :
SELECT *
FROM observations
WHERE year(observation_date) = 2022;

Cette requête renverra toutes les observations pour lesquelles la composante année de observation_date est 2022.

Utilisation de la fonction datediff()

Dans cette étape, nous allons apprendre à utiliser la fonction datediff() dans Hive pour calculer la différence entre deux dates.

La fonction datediff() prend deux chaînes de date ou de timestamp en entrée et renvoie le nombre de jours entre elles.

  1. Ouvrez la console Hive si elle n'est pas déjà ouverte.

  2. Exécutez la requête suivante pour calculer le nombre de jours entre deux dates d'observation :

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;

Cette requête renverra l'observation_id, observation_date, une date de référence (2022-12-31) et le nombre de jours entre la observation_date et la date de référence (days_until_end_of_year).

  1. Vous pouvez également utiliser la fonction datediff() avec d'autres fonctions ou clauses de date. Par exemple, pour filtrer les observations dans une plage de dates spécifique, vous pouvez utiliser la requête suivante :
SELECT *
FROM observations
WHERE datediff(observation_date, '2022-01-01') BETWEEN 0 AND 180;

Cette requête renverra toutes les observations pour lesquelles la observation_date est comprise entre le 1er janvier 2022 et le 30 juin 2022 (inclus).

Utilisation de la fonction date_format()

Dans cette étape, nous allons apprendre à utiliser la fonction date_format() dans Hive pour convertir une chaîne de date d'un format à un autre.

La fonction date_format() prend deux arguments : une chaîne de date ou de timestamp et un motif de format. Elle renvoie la chaîne de date ou de timestamp au format spécifié par le motif de format.

  1. Ouvrez la console Hive si elle n'est pas déjà ouverte.

  2. Exécutez la requête suivante pour convertir la colonne observation_date du format aaaa-MM-jj au format MMM dd, aaaa :

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

Cette requête renverra l'observation_id, la observation_date d'origine et la date formatée (formatted_date) au format MMM dd, yyyy (par exemple, Jun 15, 2022).

  1. Vous pouvez également utiliser la fonction date_format() avec d'autres fonctions ou clauses de date. Par exemple, pour filtrer les observations sur la base d'un format de date spécifique, vous pouvez utiliser la requête suivante :
SELECT *
FROM observations
WHERE date_format(observation_date, 'yyyy/MM/dd') = '2022/06/15';

Cette requête renverra toutes les observations pour lesquelles la observation_date, lorsqu'elle est formatée au format yyyy/MM/dd, est égale à 2022/06/15.

Utilisation de la fonction add_months()

Dans cette étape, nous allons apprendre à utiliser la fonction add_months() dans Hive pour ajouter ou soustraire des mois à une date.

La fonction add_months() prend deux arguments : une chaîne de date ou de timestamp et une valeur entière représentant le nombre de mois à ajouter ou à soustraire.

  1. Ouvrez la console Hive si elle n'est pas déjà ouverte.

  2. Exécutez la requête suivante pour ajouter six mois à la colonne observation_date :

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

Cette requête renverra l'observation_id, la observation_date d'origine et la date six mois après la observation_date (date_plus_six_months).

  1. Vous pouvez également utiliser la fonction add_months() avec d'autres fonctions ou clauses de date. Par exemple, pour filtrer les observations dans une plage de mois spécifique, vous pouvez utiliser la requête suivante :
SELECT *
FROM observations
WHERE month(add_months(observation_date, 6)) BETWEEN 1 AND 6;

Cette requête renverra toutes les observations pour lesquelles le mois de la date six mois après la observation_date est compris entre janvier et juin (inclus).

Sommaire

Dans ce laboratoire, nous avons exploré le monde des fonctions de manipulation de dates dans Hadoop Hive, une puissante solution de stockage de données pour le traitement de grands volumes de données. À travers un scénario captivant situé dans une station spatiale futuriste en orbite autour de Mars, nous avons suivi le parcours de Dr. Emma Wilkins, une brillante analyste de données chargée d'analyser des observations astronomiques.

En maîtrisant les fonctions de manipulation de dates telles que year(), datediff(), date_format() et add_months(), Dr. Wilkins a acquis la capacité de manipuler et d'analyser efficacement les données de date et d'heure, lui permettant de découvrir des modèles, des tendances et des anomalies qui pourraient mener à des découvertes révolutionnaires dans le domaine de l'astronomie.

Au cours du laboratoire, nous avons approfondi des exemples pratiques et fourni des correcteurs pour garantir une expérience d'apprentissage sans heurts. La nature interactive du laboratoire a permis aux apprenants de pratiquer et de renforcer leur compréhension de ces fonctions essentielles, jetant les bases d'analyses de données plus avancées.

Dans l'ensemble, ce laboratoire n'a pas seulement transmis des compétences techniques précieuses, mais a également suscité un sentiment d'émerveillement et de curiosité à l'égard de l'immensité de l'univers. En donnant aux apprenants les outils pour découvrir les secrets cachés dans les données astronomiques, nous avons tracé la voie pour les générations futures de scientifiques à dépasser les limites de la connaissance et de l'exploration humaines.