Scénario : Gestion de table HCatalog dans Hortonworks Data Platform - 6.3

Composants Talend Guide de référence

EnrichVersion
6.3
EnrichProdName
Talend Big Data
Talend Big Data Platform
Talend Data Fabric
Talend Data Integration
Talend Data Management Platform
Talend Data Services Platform
Talend ESB
Talend MDM Platform
Talend Open Studio for Big Data
Talend Open Studio for Data Integration
Talend Open Studio for Data Quality
Talend Open Studio for ESB
Talend Open Studio for MDM
Talend Real-Time Big Data Platform
task
Création et développement
Gouvernance de données
Qualité et préparation de données
EnrichPlatform
Studio Talend

Ce scénario décrit un Job à six composants effectuant les opérations les plus courantes pour la gestion de tables HCatalog dans Hortonworks Data Platform. Les sous-sections de ce scénario traitent les opérations suivantes sur les bases de données :

  • Créer une table dans la base de données dans HDFS ;

  • Écrire des données dans une table gérée par HCatalog ;

  • Écrire des données dans la table partitionnée, à l'aide de tHCatalogLoad ;

  • Lire des données d'une table gérée par HCatalog ;

  • Écrire en sortie les données lues de la table dans HDFS.

Note

La connaissance de Hive Data Definition Language et de HCatalog Data Definition Language est nécessaire. Pour plus d'informations concernant Hive Data Definition Language, consultez https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL (en anglais). Pour plus d'informations concernant HCatalog Data Definition Language, consultez http://incubator.apache.org/hcatalog/ (en anglais).

Construire le Job

  1. Déposez les composants suivants de la Palette dans l'espace de modélisation graphique : un tHCatalogOperation, un tHCatalogLoad, un tHCatalogInput, un tHCatalogOutput, un tFixedFlowInput et un tFileOutputDelimited.

  2. Cliquez-droit sur le tHCatalogOperation afin de le relier au tFixedFlowInput à l'aide d'un lien Trigger>OnSubjobOk.

  3. Cliquez-droit sur le tFixedFlowInput afin de le connecter au tHCatalogOutput à l'aide d'un lien Row > Main.

  4. Cliquez-droit sur le composant tFixedFlowInput pour le relier au tHCatalogLoad à l'aide d'un lien Trigger > OnSubjobOk.

  5. Cliquez-droit sur le tHCatalogLoad pour le connecter au tHCatalogInput à l'aide d'un lien Trigger > OnSubjobOk.

  6. Cliquez-droit sur le composant tHCatalogInput afin de le relier au tFileOutputDelimited à l'aide d'un lien Row > Main.

Créer une table dans HDFS

  1. Double-cliquez sur le tHCatalogOperation pour ouvrir sa vue Basic settings.

  2. Cliquez sur le bouton [...] à côté de Edit schema pour définir le schéma de la table à créer.

  3. Cliquez sur le bouton [+] pour ajouter au moins une colonne au schéma puis cliquez sur OK lorsque vous avez terminé la configuration. Dans ce scénario, les colonnes ajoutées au schéma sont : name, country et age.

  4. Renseignez le champ Templeton hostname avec l'URL du service Web Templeton que vous utilisez. Dans ce scénario, saisissez "192.168.0.131".

  5. Renseignez le numéro du port dans le champ Templeton port pour le nom du port renseigné dans le champ Templeton hostname. Par défaut, la valeur de ce champ est "50111"

  6. Sélectionnez Table dans la liste Operation on et Drop if exist and create dans la liste Operation afin de créer une table dans HDFS.

  7. Dans le champ Database, saisissez le nom d'une base de données existante dans HDFS. Dans ce scénario, le nom de la base de données est "talend".

  8. Dans le champ Table, saisissez le nom de la table à créer. Dans ce scénario, le nom de la table est "Customer".

  9. Dans le champ Username, saisissez l'identifiant de connexion à la base de données.

  10. Cochez la case Set the user group to use afin de spécifier le groupe de l'utilisateur. Le groupe par défaut est "root". Vous devez paramétrer la valeur de ce champ selon vos pratiques réelles.

  11. Cochez la case Set the permissions to use afin de spécifier les permissions de l'utilisateur. La valeur par défaut de ce champ est "rwxrwxr-x".

  12. Cochez la case Set partitions afin d'activer le schéma de partition

  13. Cliquez sur le bouton Edit schema [...] à côté de la case Set partitions, afin de définir le schéma de la partition.

  14. Cliquez sur le bouton [+] pour ajouter une colonne au schéma et cliquez sur OK lorsque vous avez terminé la configuration. Dans ce scénario, la colonne ajoutée au schéma est nommée : match_age.

Écrire des données dans la table existante

  1. Double-cliquez sur le composant tFixedFlowInput pour ouvrir sa vue Basic settings.

  2. Cliquez sur le bouton [...] à côté du champ Edit schema pour définir un schéma semblable à celui défini dans le tHCatalogOperation.

  3. Dans le champ Number of rows, saisissez l'entier 8.

  4. Sélectionnez l'option Use Inline Table dans la zone Mode.

  5. Cliquez sur le bouton [+] pour ajouter de nouvelles lignes à la table.

  6. Double-cliquez sur le tHCatalogOutput pour ouvrir sa vue Basic settings.

  7. Cliquez sur le bouton Sync columns afin de récupérer le schéma défini dans le composant précédent.

  8. Dans le champ NameNode URI, saisissez l'URI du NameNode. Dans ce scénario, l'URL est "192.168.0.131".

  9. Dans le champ File name, saisissez l'emplacement HDFS du fichier dans lequel vous souhaitez écrire les données. Dans ce scénario, l'emplacement du fichier est "/user/hdp/Customer/Customer.csv".

  10. Sélectionnez Overwrite dans la liste Action.

  11. Dans le champ Templeton hostname, saisissez l'URL du service Web Templeton que vous utilisez. Dans ce scénario, saisissez "192.168.0.131".

  12. Dans le champ Templeton port, saisissez le numéro du port défini dans le champ Templeton hostname. Par défaut, la valeur de ce champ est "50111"

  13. Dans les champs Database, Table et Username, saisissez les mêmes valeurs que dans le composant tHCatalogOperation.

  14. Dans le champ Partition, saisissez "match_age=27".

  15. Dans le champ File location, saisissez l'emplacement HDFS où la table sera sauvegardée. Dans cet exemple, l'emplacement est "hdfs://192.168.0.131:8020/user/hdp/Customer".

Écrire des données dans la table partitionnée, via le tHCatalogLoad

  1. Double-cliquez sur le tHCatalogLoad afin d'ouvrir sa vue Basic settings.

  2. Dans le champ Partition, saisissez "match_age=26".

  3. Configurez les autres paramètres comme dans le tHCatalogOperation.

Lire des données de la table dans HDFS

  1. Double-cliquez sur le tHCatalogInput pour ouvrir sa vue Basic settings.

  2. Cliquez sur le bouton [...] à côté du champ Edit schema afin de définir le schéma de la table à lire depuis la base de données.

  3. Cliquez sur le bouton [+] pour ajouter au moins une colonne au schéma. Dans ce scénario, les colonnes ajoutées au schéma sont nommées age et name, respectivement.

  4. Dans le champ Partition, saisissez "match_age=26".

  5. Configurez les autres paramètres comme dans le tHCatalogOperation.

Écrire dans la console les données lues de la table dans HDFS

  1. Double-cliquez sur le tLogRow pour ouvrir sa vue Basic settings.

  2. Cliquez sur Sync columns afin de récupérer le schéma défini dans le composant précédent.

  3. Sélectionnez l'option Table (print values in cells of a table) dans la zone Mode.

Exécuter le Job

Appuyez sur les touches Ctrl+S pour sauvegarder votre Job et appuyez sur F6 pour l'exécuter.

Les données de la table restreinte lues depuis HDFS sont affichées dans la console.

Saisissez l'URL http://talend-hdp:50075/browseDirectory.jsp?dir=/user/hdp/Customer&namenodeInfoPort=50070 dans la barre d'adresse de votre navigateur Web afin de visualiser la table créée.

Cliquez sur le lien Customer.csv pour visualiser le contenu de la table créée.