Hive ETL: chargement de JSON, XML, exemples de données texte

Table des matières:

Anonim

Hive en tant qu'outil ETL et d'entreposage de données au-dessus de l'écosystème Hadoop fournit des fonctionnalités telles que la modélisation de données, la manipulation de données, le traitement de données et l'interrogation de 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 besoins.

Pour le traitement par lots, nous allons écrire des scripts personnalisés à l'aide d'une carte personnalisée et réduire les scripts à l'aide d'un langage de script. Il fournit un environnement de type SQL et un support pour des requêtes faciles.

Dans ce didacticiel, vous apprendrez-

  • Travailler avec des données structurées à l'aide de Hive
  • Travailler avec des données semi-structurées à l'aide de Hive (XML, JSON)
  • Projets Hive in Real time - Quand et où utiliser

Travailler avec des données structurées à l'aide de Hive

Les données structurées signifient que les données sont au format approprié de lignes et de colonnes. Cela ressemble plus à des données SGBDR avec des lignes et des colonnes appropriées.

Ici, nous allons charger des données structurées présentes dans des fichiers texte dans Hive

Étape 1) Dans cette étape, nous créons la table "Employees_guru" avec des noms de colonnes tels que Id, Nom, Âge, Adresse, Salaire et Département des employés avec des types de données.

À partir de la capture d'écran ci-dessus, nous pouvons observer ce qui suit,

  1. Création de la table "employés_guru"
  2. 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 de la table 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 comme un outil ETL. Il 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 de l'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 utiliser Hive pour XML.

TABLEAU XML À RUCHE

En cela, nous allons charger des données XML dans des tables Hive, et nous allons récupérer les valeurs stockées à l'intérieur des balises XML.

Étape 1) Création de la table "xmlsample_guru" avec colonne str avec type de données string.

À partir de la capture d'écran ci-dessus, nous pouvons observer ce qui suit

  1. Création de la table "xmlsample_guru"
  2. Chargement des données du test.xml dans la table "xmlsample_guru"

Étape 2) En utilisant la méthode 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

  1. En utilisant la méthode XPATH (), nous récupérons les valeurs stockées sous / emp / esal / et / emp / ename /
  2. Les valeurs présentes à l'intérieur des balises XML. Dans cette étape, nous affichons les valeurs réelles stockées sous les balises XML dans la table "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 (notation d'objets JavaScript)

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.

TABLEAU JSON À RUCHE

En cela, nous allons charger des données JSON dans des tables Hive et nous allons 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éé, le chargement et l'affichage du contenu du schéma actuel.

À partir de la capture d'écran ci-dessus, nous pouvons observer ce qui suit

  1. Création de la table "json_guru"
  2. Chargement des données de test.json dans la table "json_guru"
  3. 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

  1. En utilisant get_json_object (str, '$. Ecode), il peut récupérer les valeurs d'écode 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 sal ename de la table json_guru
  2. 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;

TABLEAU JSON TO HIVE complexe

En cela, nous allons charger des données JSON complexes dans des tables Hive, et nous allons récupérer les valeurs stockées dans le schéma JSON

Étape 1) Création de complexjson_guru avec un champ de colonne unique

À partir de la capture d'écran ci-dessus, nous pouvons observer ce qui suit

  1. Création sur table complexjson_guru avec un champ de colonne unique comme type de données chaîne
  2. 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 de 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 sommes en mesure de 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 in Real time - Quand et où utiliser

Quand et où utiliser Hive sur l'écosystème Hadoop:

Lorsque

  • Lorsque vous travaillez avec des fonctions statistiques fortes et puissantes sur l'écosystème Hadoop
  • Lorsque vous travaillez avec des traitements de données structurés et semi-structurés
  • 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é

  • Pour une utilisation facile de l'ETL et de l'outil d'entreposage de données
  • Pour fournir un environnement de type SQL et pour effectuer des requêtes comme SQL en utilisant HIVEQL
  • Pour utiliser et déployer des scripts de mappage et de réduction spécifiés personnalisés pour les exigences spécifiques du client