Overblog
Editer l'article Suivre ce blog Administration + Créer mon blog

Implementation Data lake hadoop : Chargement des fichiers de données dans HDFS.

Publié le par Marius LOWE

Maintenant que notre système source OLTP fictif et notre structure de répertoires Hadoop HDFS sont prêts, nous allons d’abord charger le fichier de données «Dates» dans HDFS, puis dans une table Hive.

Se connecter à la console ssh avec l'utilisateur edw_user, Placez le fichier de données du système de fichiers local dans le répertoire dates HDFS.

Implementation Data lake hadoop : Chargement des fichiers de données dans  HDFS.

Nous allons maintenant définir et charger la table de Dimension Dates dans Hive. Se connecter à Beeline CLI en utilisant edw_user comme utilisateur. Nous allons nous connecter au schéma de Hive 'sales_analytics'.

Implementation Data lake hadoop : Chargement des fichiers de données dans  HDFS.

Une table externe est une table pour laquelle Hive ne gère pas le stockage. Si vous supprimez une table externe, seule la définition dans Hive est supprimée, les données restent. Une table interne est une table gérée par Hive. Si vous supprimez une table interne, la définition dans Hive et les données sont supprimées.

Nous allons d’abord créer une table externe dans Hive pour structurer le projet dans le fichier de données de dates dans HDFS, puis une table ORC gérée par Hive.

Implementation Data lake hadoop : Chargement des fichiers de données dans  HDFS.
Implementation Data lake hadoop : Chargement des fichiers de données dans  HDFS.

Définissons ensuite notre table finale pour la dimension dates, en tant que table ORC gérée par Hive. Le format de fichier ORC (Optimized Row Columnar) constitue un moyen extrêmement efficace de stocker des données Hive. L'utilisation de fichiers ORC améliore les performances lorsque Hive lit, écrit et traite des données. Les requêtes sur les tables avec le format de stockage de colonne optimisé(ORC) s'exécutent 10 à 100 fois plus rapidement.

Définitivement le moyen d'aller stocker les données Hive pour des performances optimales. Incluant la compression (10x pour le zip), la décomposition des prédicats (sauts de blocs en fonction des conditions où), le stockage de colonnes (seules les colonnes nécessaires sont lues). Utilisez le stockage ORC dans HDP.

Implementation Data lake hadoop : Chargement des fichiers de données dans  HDFS.

Le fichier ORC fournit divers types de compression. Nous pouvons utiliser la compression SNAPPY pour les performances basées sur le temps ou la compression ZLIB pour les performances des ressources (Save Drive Storage Space). Nous devons maintenant déplacer les données de la table externe vers une table ORC gérée par Hive. Utiliser Hive pour convertir une table externe en un format de fichier ORC est très efficace et rapide car la conversion est une action parallèle et distribuée, et aucun outil de conversion ORC autonome n'est nécessaire.

Une fois que les données sont dans la table ORC, nous allons supprimer la table externe de Hive et déplacer le fichier de données « date » du stockage intermédiaire vers le répertoire d'archivage.

Implementation Data lake hadoop : Chargement des fichiers de données dans  HDFS.
Implementation Data lake hadoop : Chargement des fichiers de données dans  HDFS.
Implementation Data lake hadoop : Chargement des fichiers de données dans  HDFS.
Implementation Data lake hadoop : Chargement des fichiers de données dans  HDFS.

Déplacez le fichier de données de dates dans le répertoire d'archivage.

Implementation Data lake hadoop : Chargement des fichiers de données dans  HDFS.

L'utilitaire d'importation Sqoop permet d'importer des données à partir d'un système de base de données relationnelle. Les importations et les exportations peuvent être effectuées à plusieurs reprises en exécutant la même commande plusieurs fois. Ce scénario est particulièrement attendu lors de l'utilisation de la capacité d'importation incrémentielle. Sqoop vous permet de définir des tâches sauvegardées facilitant ce processus. Un JOB enregistré enregistre les informations de configuration requises pour exécuter une commande Sqoop ultérieurement.

Les importations incrémentielles sont effectuées en comparant les valeurs d'une colonne de contrôle à une valeur de référence pour l'importation la plus récente. Par exemple, si l'argument --incremental append a été spécifié, ainsi que --check-column id et --last-value 100, toutes les lignes avec un identifiant supérieur à 100 seront importées. Si une importation incrémentielle est exécutée à partir de la ligne de commande, la valeur devant être spécifiée sous la forme --last-value dans une importation incrémentielle ultérieure sera imprimée à l'écran pour référence. Si une importation incrémentielle est exécutée à partir d'un Job  enregistré, cette valeur sera conservée dans le Job enregistré.

Implementation Data lake hadoop : Chargement des fichiers de données dans  HDFS.

Une fois le Job créé, vérifiez-le et exécutez-le. Le mot de passe MySQL est fourni en utilisant le fichier de mot de passe. La fusion de données pour les modifications incrémentielles/delta a déjà été prise en charge par les commandes Sqoop merge & incremental .

--incremental (mode): Spécifie comment Sqoop détermine quelles lignes sont nouvelles. (append/lastmodified).

--check-column (col): Spécifie la colonne à examiner pour déterminer les lignes à importer.

--last-value (value): spécifie la valeur maximale de la colonne de contrôle de l'importation précédente.

Les commandes ci-dessous aident à répertorier, afficher et exécuter le Job Sqoop. Exécutez le Job Sqoop pour effectuer le chargement de données initial. Ce Job Sqoop sera planifié quotidiennement via le flux de travail Oozie.

Implementation Data lake hadoop : Chargement des fichiers de données dans  HDFS.
Implementation Data lake hadoop : Chargement des fichiers de données dans  HDFS.
Implementation Data lake hadoop : Chargement des fichiers de données dans  HDFS.

Définissons maintenant une table externe Hive pour le jeu de données Showroom dans le transfert. Se connecter à Beeline CLI en utilisant edw_user comme utilisateur. Nous allons nous connecter au schéma 'sales_analytics' de Hive.

Implementation Data lake hadoop : Chargement des fichiers de données dans  HDFS.
Implementation Data lake hadoop : Chargement des fichiers de données dans  HDFS.

Ensuite, définissons et chargeons notre table  de la dimension Showroom, en tant que table ORC gérée par Hive.

Implementation Data lake hadoop : Chargement des fichiers de données dans  HDFS.

Nous allons maintenant écrire un script pour charger les données d'une table externe dans une table gérée par Hive (table interne). Ce script sera utilisé ultérieurement dans oozie workflow manager pour planifier le chargement.

Ensuite exécuter le script pour déclencher le chargement initial des données.

Implementation Data lake hadoop : Chargement des fichiers de données dans  HDFS.
Implementation Data lake hadoop : Chargement des fichiers de données dans  HDFS.

Enfin, nous allons écrire et exécuter un script shell pour copier et archiver les fichiers de données de Showroom. Cela sera également utilisé plus tard par oozie.

Implementation Data lake hadoop : Chargement des fichiers de données dans  HDFS.
Implementation Data lake hadoop : Chargement des fichiers de données dans  HDFS.

Dans notre prochain article, nous chargerons la table de dimension « Customer » en tant que SCDType1.Nous utiliserons une approche différente pour traiter l'extraction incrémentale/delta et la mise en œuvre de SCD.

Commenter cet article