Récupérer les données erronées à l'aide d'un lien Reject
Ce scénario décrit un Job à quatre composants effectuant une migration d'un fichier client vers la table d'une base de données MySQL et redirigeant les données erronées vers un fichier CSV à l'aide d'un lien Reject.
-
Dans le Repository, sélectionnez la métadonnée correspondant au fichier client que vous souhaitez migrer et glissez-la dans l'espace de modélisation graphique. Dans la boîte de dialogue Components, sélectionnez tFileInputDelimited et cliquez sur OK. Les propriétés du composant seront automatiquement renseignées.
-
Si vous n'avez pas enregistré les informations concernant votre fichier client sous le nœud Metadata du Repository. Glissez un composant tFileInputDelimited de la famille File > Input de la Palette et renseignez ses propriétés manuellement dans la vue Component.
-
À partir de la Palette, glissez un composant tMap de la famille Processing dans l'espace de modélisation graphique.
-
Dans le Repository, développez le nœud Metadata, suivi du nœud Db Connections, et sélectionnez la connexion requise pour migrer vos données vers la base de données appropriée. Déposez-la dans l'espace de modélisation graphique. Dans la boîte de dialogue Components, sélectionnez tMysqlOutput et cliquez sur OK. Les propriétés de connexion à la base de données seront automatiquement renseignées.
-
Si vous n'avez pas enregistré les informations de connexion à votre base de données sous le nœud Db Connections du Repository, glissez un composant tMysqlOutput de la famille Databases de la Palette et renseignez ses propriétés manuellement dans la vue Component.
Pour plus d'informations, consultez Centraliser des métadonnées de base de données.
-
À partir de la Palette, sélectionnez un composant tFileOutputDelimited de la famille File > Output et glissez-le dans l'espace de modélisation graphique.
-
Reliez les composant customers et tMap, et les composants tMap et Localhost à l'aide d'un lien de type Row Main. Vous nommerez ce deuxième lien out.
-
Reliez le composant Localhost au tFileOutputDelimited à l'aide d'un lien de type Row > Reject.
-
Double-cliquez sur le composant customers pour afficher la vue Component correspondante.
-
Dans la liste Property Type, sélectionnez le mode Repository puis cliquez sur le bouton [...] correspondant pour sélectionner la métadonnée contenant la connexion à votre fichier. Sinon, sélectionnez le mode Built-in et paramétrez manuellement les champs suivants.
-
Cliquez sur le bouton [...] à côté du champ File Name, et indiquez le chemin d'accès et le nom du fichier à utiliser.
-
Dans les champs Row et Field Separator, saisissez entre guillemets inversés les séparateurs de lignes et de champs utilisés dans le fichier.
-
Dans les champs Header, Footer et Limit, saisissez le nombre de ligne d'en-tête et de pied-de-page à ignorer, ainsi que le nombre de lignes limite à traiter.
-
Dans la liste Schema, sélectionnez Repository et cliquez sur le bouton [...] correspondant pour sélectionner le schéma de votre fichier, s'il est stocké sous le nœud Metadata du Repository. Vous pouvez aussi cliquer sur le bouton [...] correspondant au champ Edit schema et définir manuellement le schéma de votre fichier.
Le schéma se présente comme suit :
-
Double-cliquez sur le composant tMap pour ouvrir son éditeur.
-
Sélectionnez les colonnes id, CustomerName, CustomerAddress, idSate, id2, RegTime, RegisterTime de la zone de gauche et glissez-les dans la table out de la zone de droite.
-
Dans la zone Schema editor en bas de l'éditeur du tMap, dans le tableau à droite, changez la longueur de la colonne CustomerName en 28 afin de créer une erreur. Ainsi, les données dont la longueur est supérieure à 28 créeront des erreurs qui pourront être récupérées grâce au lien Reject.
-
Cliquez sur OK.
-
Dans l'espace de modélisation graphique, double-cliquez sur le composant de sortie Localhost pour afficher la vue Component correspondante.
-
Dans la liste Property Type, sélectionnez le mode Repository, puis cliquez sur le bouton [...] correspondant pour sélectionner la métadonnée de connexion à la base de données. Les informations de connexion sont renseignées automatiquement. Sinon, sélectionnez le mode Built-in et paramétrez ces champs manuellement.
-
Dans le champ Table, saisissez le nom de la table à créer. Dans ce scénario, vous l'appelez customers_data.
-
Dans la liste Action on data, sélectionnez l'option Create table.
-
Cliquez sur le bouton Sync columns pour récupérer le schéma du composant précédent.
-
Assurez-vous que la case Die on error est bien décochée, afin que le Job s'exécute malgré l'erreur que vous venez de créer.
-
Cliquez sur l'onglet Advanced settings de la vue Component pour paramétrer les paramètres avancés du composant.
-
Décochez la case Extend Insert permettant d'insérer des lignes par bloc, car cette option n'est pas compatible avec le lien Reject.
-
Double-cliquez sur le composant tFileOutputDelimited pour paramétrer ses propriétés dans la vue Component.
-
Cliquez sur le bouton [...] près du champ File name/Stream pour renseigner le chemin d'accès au fichier de sortie, ainsi que son nom.
-
Cliquez sur le bouton Sync columns pour récupérer le schéma du composant précédent.
-
Enregistrez votre Job et appuyez sur F6 pour l'exécuter.
Les données en erreur sont envoyées dans le fichier délimité, ainsi que le type d'erreur rencontrée. Ici, vous avez affaire à des données tronquées : Data truncation.