Scénario : Insérer des données dans des tables parent/enfant

Access

author
Talend Documentation Team
EnrichVersion
6.5
EnrichProdName
Talend Open Studio for ESB
Talend Data Fabric
Talend Big Data
Talend Open Studio for MDM
Talend ESB
Talend Big Data Platform
Talend Open Studio for Data Integration
Talend Real-Time Big Data Platform
Talend Data Integration
Talend MDM Platform
Talend Open Studio for Big Data
Talend Data Services Platform
Talend Data Management Platform
task
Qualité et préparation de données > Systèmes tiers > Composants Database > Composants Access
Création et développement > Systèmes tiers > Composants Database > Composants Access
Gouvernance de données > Systèmes tiers > Composants Database > Composants Access
EnrichPlatform
Studio Talend

Le Job suivant est dédié à des utilisateurs avancés de base de données qui souhaitent effectuer des insertions dans des tables multiples en utilisant une table parent Table1 pour générer deux tables enfant : Name et Birthday.

Pour plus d'informations concernant les technologies supportées par Talend, consultez Composants Talend.

  • Créez une base de données connectée à Access 2007 que vous appellerez Database1.

  • Une fois la base de données Access créée, créez une table appelée Table1 avec les deux en-têtes de colonne suivants : Name et Birthday.

Dans la perspective Integration de votre Studio Talend , le Job est constitué de douze composants, parmi lesquels des composants tAccessConnection, tAccessCommit, tAccessInput, tAccessOutput et tAccessClose.

  • A partir de la Palette, cliquez et déposez les composants suivants dans l'espace de modélisation graphique : un tFileList, un tFileInputDelimited, un tMap, deux tAccessOutput, deux tAccessInput, un tAccessCommit, un tAccessClose et deux tLogRow.

  • Connectez le composant tFileList au composant d'entrée tFileInputDelimited à l'aide d'une connexion de type Iterate. Ainsi, le nom du fichier à traiter sera automatiquement renseigné à partir de la liste de fichiers du tFileList en utilisant une variable globale.

  • Connectez le composant tFileInputDelimited au tMap et séparez le flux vers les deux composants de sortie tAccessOutput. Utilisez des connexions de type Row pour chacune de ces connexions représentant un flux de données principal.

  • Définissez les propriétés du composant tFileList, notamment le répertoire dans lequel sont stockés les fichiers.

  • Ajoutez le composant tAccessConnection et connectez-le au composant de départ de ce Job (dans cet exemple, le composant tFileList), à l'aide d'une connexion OnComponentOk afin de définir l'ordre d'exécution.

  • Dans la vue Component du composant tAccessConnection, définissez manuellement les informations de connexion ou récupérez-les dans le Repository si vous les avez préalablement stockées dans le dossier DB connection du répertoire Metadata. Pour plus d'informations concernant les Métadonnées, consultez le Guide utilisateur du Studio Talend .

  • Dans l'onglet Basic settings du composant tFileInputDelimited, appuyez sur les touches Ctrl+Espace pour accéder à la liste des variables. Définissez le champ File Name avec la variable globale : tFileList_1.CURRENT_FILEPATH. Pour plus d'informations concernant l'utilisation des variables, consultez le Guide utilisateur du Studio Talend .

  • Paramétrez les autres champs comme vous le souhaitez, définissez les séparateurs de lignes et de champs (Row et Field Separator) en fonction de la structure de votre document.

  • Puis définissez manuellement le schéma du fichier à l'aide du bouton Edit schema ou sélectionnez le schéma dans le Repository. Assurez-vous que le type de données est correctement défini, conformément à la nature des données traitées.

  • Dans la zone Output du tMap, ajoutez deux tables de sortie, une que vous nommerez Name pour la table Name, et une deuxième que vous nommerez Birthday, pour la table Birthday. Pour plus d'informations concernant le composant tMap, consultez le Guide utilisateur du Studio Talend .

  • Cliquez sur la colonne Name de la zone Input, et glissez-la dans la table Name.

  • Cliquez sur la colonne Birthday de la zone Input, et glissez-la dans la table Birthday.

  • Puis sélectionnez une connexion de sortie de type Row pour acheminer correctement le flux vers les composants Database de sortie correspondants.

  • Dans l'onglet Basic settings des deux composants tAccessOutput, cochez la case Use an existing connection pour récupérer les informations du composant tAccessConnection.

Remarque :

Ignorez le champ Commit every puisque cette commande sera annulée par le composant tAccessCommit.

  • Nommez votre table dans le champ Table en vous assurant que vous saisissez la bonne table. Dans cet exemple, la table est soit Name, soit Birthday.

  • Ne définissez aucune action dans le champ Action on table puisque les tables ont déjà été créées.

  • Sélectionnez Insert dans le champ Action on data pour les deux composants de sortie (tAccessOutput).

  • Cliquez sur le bouton Sync columns pour récupérer le schéma défini dans le tMap.

  • Connectez ensuite le premier composant tAccessOutput au premier composant tAccessInput à l'aide d'une connexion OnComponentOk.

  • Dans l'onglet Basic settings des deux composants tAccessInput, cochez la case Use an existing connection pour récupérer le flux de données distribué. Puis définissez manuellement le schéma du fichier à l'aide du bouton Edit schema.

  • Nommez ensuite votre table dans le champ Table Name. Le nom du tAccessInput_1 sera Name.

  • Cliquez sur Guess Query.

  • Connectez les deux composants tAccessInput au composant tLogRow à l'aide d'une connexion de type Row > Main. Dans l'onglet Basic settings des deux composants tLogRow, sélectionnez Table dans le champ Mode.

  • Ajoutez le composant tAccessConnection sous le composant tFileList et connectez-les à l'aide d'une connexion OnComponentOk afin d'arrêter le Job avec les commits de transaction.

  • A partir de l'onglet Basic settings du composant tAccessCommit, sélectionnez dans la liste déroulante Component list la connexion à utiliser, tAccessConnection_1 dans ce scénario.

  • Enregistrez votre Job et appuyez sur F6 pour l'exécuter.

La table parent Table1 est utilisée à la fois pour générer la table Name et la table Birthday.