Hive ETL : chargement d'exemples de données JSON, XML et texte
Hive en tant qu'outil ETL et d'entreposage de données au-dessus de Hadoop L'écosystème fournit des fonctionnalités telles que la modélisation des données, la manipulation des données, le traitement des données et l'interrogation des données. L'extraction de données dans Hive signifie la création de tables dans Hive et le chargement de données structurées et semi-structurées ainsi que l'interrogation de données en fonction des exigences.
Pour le traitement par lots, nous allons écrire des scripts définis personnalisés à l'aide d'une carte personnalisée et réduire les scripts à l'aide d'un langage de script. Il offre SQL comme l'environnement et la prise en charge d'interrogations faciles.
Travailler avec des données structurées à l'aide de Hive
Les données structurées signifient que les données sont dans le format approprié de lignes et de colonnes. C'est plutôt comme RDBMS données avec des lignes et des colonnes appropriées.
Ici, nous allons charger les données structurées présentes dans les fichiers texte dans Hive
Étape 1) Dans cette étape, nous créons la table « employes_guru » avec des noms de colonnes tels que l'identifiant, le nom, l'âge, l'adresse, le salaire et le service des employés avec des types de données.
À partir de la capture d'écran ci-dessus, nous pouvons observer ce qui suit :
- Création de la table « employés_gourou »
- Chargement des données de Employees.txt dans la table «employees_guru»
Étape 2) Dans cette étape, nous affichons le contenu stocké dans cette table en utilisant la commande « Sélectionner ». Nous pouvons observer le contenu du tableau dans la capture d'écran suivante.
– Exemple d'extrait de code
Requêtes à effectuer
1) Create table employees_guru(Id INT, Name STRING, Age INT, Address STRING, Salary FLOAT, Department STRING) > Row format delimited > Fields terminated by ','; 2) load data local inpath '/home/hduser/Employees.txt' into TABLE employees_guru; 3) select * from employees_guru;
Travailler avec des données semi-structurées à l'aide de Hive (XML, JSON)
Hive exécute les fonctionnalités ETL dans l'écosystème Hadoop en agissant en tant que Outil ETLIl peut être difficile d'effectuer une réduction de carte dans certains types d'applications, Hive peut réduire la complexité et fournit la meilleure solution aux applications informatiques en termes de secteur d'entreposage de données.
Les données semi-structurées telles que XML et JSON peuvent être traitées avec moins de complexité à l'aide de Hive. Nous verrons d'abord comment nous pouvons utiliser Hive pour XML.
XML VERS TABLE DE RUCHE
En cela, nous allons charger des données XML dans des tables Hive et récupérer les valeurs stockées dans les balises XML.
Étape 1) Création de la table « xmlsample_guru » avec une colonne str avec un type de données chaîne.
À partir de la capture d'écran ci-dessus, nous pouvons observer ce qui suit
- Création de la table « xmlsample_guru »
- Chargement des données du test.xml dans la table « xmlsample_guru »
Étape 2) En utilisant XPath (), nous pourrons récupérer les données stockées dans les balises XML.
À partir de la capture d'écran ci-dessus, nous pouvons observer ce qui suit
- En utilisant la méthode XPATH(), nous récupérons les valeurs stockées sous /emp/esal/ et /emp/ename/
- Les valeurs présentes dans les balises XML. Dans cette étape, nous affichons les valeurs réelles stockées sous les balises XML dans le tableau « xmlsample_guru ».
Étape 3) Dans cette étape, nous allons récupérer et afficher le XML brut de la table « xmlsample_guru ».
À partir de la capture d'écran ci-dessus, nous pouvons observer ce qui suit
- Les données XML réelles affichées avec des balises
- Si nous observons une seule balise, c'est avec "emp" comme balise parent avec "ename" et "esal" comme balises enfants.
Extrait de code:
Requêtes à effectuer
1) create table xmlsample_guru(str string); 2) load data local inpath '/home/hduser/test.xml' overwrite into table xmlsample_guru; 3) select xpath(str,'emp/ename/text()'), xpath(str,'emp/esal/text()') from xmlsample_guru;
JSON (JavaNotation d'objet de script)
Les données de Twitter et des sites Web sont stockées au format JSON. Chaque fois que nous essayons de récupérer des données sur des serveurs en ligne, des fichiers JSON seront renvoyés. En utilisant Hive comme magasin de données, nous pouvons charger des données JSON dans des tables Hive en créant des schémas.
JSON VERS LA TABLE DE LA RUCHE
En cela, nous allons charger les données JSON dans les tables Hive et récupérer les valeurs stockées dans le schéma JSON.
Étape 1) Dans cette étape, nous allons créer le nom de table JSON « json_guru ». Une fois créé, chargement et affichage du contenu du schéma réel.
À partir de la capture d'écran ci-dessus, nous pouvons observer ce qui suit
- Création de la table « json_guru »
- Chargement des données de test.json dans la table « json_guru »
- Affichage du schéma réel du fichier JSON stocké dans les tables json_guru
Étape 2) En utilisant la méthode get_json_object(), nous pouvons récupérer les valeurs de données stockées dans la hiérarchie JSON.
À partir de la capture d'écran ci-dessus, nous pouvons observer ce qui suit
- En utilisant get_json_object (str,'$.ecode), il peut récupérer les valeurs d'ecode de la table json_guru. De même, en utilisant get_json_object (str,'$.ename), get_json_object (str,'$.Sali), il récupérera les valeurs ename sal de la table json_guru.
- Valeurs stockées dans la hiérarchie JSON dans json_guru
Extrait de code
Requêtes à effectuer
1) create table json_guru(str string); 2) load data inpath 'home/hduser/test.json' into table json_guru; 3) select * from json1; 4) select get_json_object(str,'$.ecode') as ecode, get_json_object(str,'$.ename') as ename ,get_json_object(str,'$.sal') as salary from json_guru;
JSON complexe vers TABLE HIVE
En cela, nous allons charger des données JSON complexes dans les tables Hive et récupérer les valeurs stockées dans le schéma JSON.
Étape 1) Création de complexjson_guru avec un champ à une seule colonne
À partir de la capture d'écran ci-dessus, nous pouvons observer ce qui suit
- Création sur la table complexjson_guru avec un champ à une seule colonne comme type de données chaîne
- Chargement de données dans complexjson_guru à partir du fichier JSON complexe emp.json
Étape 2) En utilisant get_json_object, nous pouvons récupérer le contenu réel stocké dans la hiérarchie des fichiers JSON.
À partir de la capture d'écran suivante, nous pouvons voir la sortie des données stockées dans complexjson_guru.
Étape 3) Dans cette étape, en utilisant la commande « Select », nous pouvons réellement voir les données JSON complexes stockées dans la table « complexjson_guru ».
-Exemple d'extrait de code,
Requêtes à effectuer
1) create table complexjson_guru(json string); 2) load data inpath 'home/hduser/emp.json' into table complexjson_guru; 3) select get_json_object(json,'$.ecode') as ecode ,get_json_object(json,'$.b') as code, get_json_object(json,'$.c') from complexjson_guru; 4) select * from complexjson_guru;
Projets Hive en temps réel – Quand et où les utiliser
Quand et où utiliser Hive sur l'écosystème Hadoop :
Quand
- Lorsque vous travaillez avec des fonctions statistiques solides et puissantes sur l'écosystème Hadoop
- Lorsque vous travaillez avec un traitement de données structurées et semi-structurées
- En tant qu'outil d'entrepôt de données avec Hadoop
- Ingestion de données en temps réel avec HBASE, Hive peut être utilisé
Où
- Pour faciliter l'utilisation de l'ETL et de l'outil d'entreposage de données
- Fournir un environnement de type SQL et effectuer des requêtes comme SQL en utilisant HIVEQL
- Pour utiliser et déployer des scripts de mappage et de réduction personnalisés pour les exigences spécifiques du client