Insérer des données dans des tables parent/enfant
Le Job suivant est dédié à des utilisateurs et des utilisatrices avancé·e·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.
-
Créez une base de données dans 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.
-
À 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 à l'aide d'une connexion de type Iterate. Ainsi, le nom du fichier à traiter sera automatiquement renseigné à partir du répertoire 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 Gestion des métadonnées dans le 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 de variables, consultez Utiliser des variables dans un Job ou une Route.
-
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 fichier.
-
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 Présentation du fonctionnement du tMap.
-
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.
-
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.
-
Sélectionnez Default dans la liste Action on table. Cette action est sélectionnée car les tables existent déjà et ne requièrent aucune opération.
-
Sélectionnez Insert dans la liste Action on data pour les deux composants de sortie.
-
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.
-
Reliez les deux composants tAccessInput au composant tLogRow à l'aide d'un lien de type Row > Main. Dans l'onglet Basic settings des deux composants tLogRow, sélectionnez Table dans le champ Mode.
-
Ajoutez le composant tAccessCommit sous le composant tFileList et connectez-les à l'aide d'une connexion OnComponentOk afin d'arrêter le Job avec les commits de transaction.
-
À 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.