Scénario : Traquer des modifications avec les Slowly Changing Dimensions de type 0 à 3 - 6.1

Composants Talend Open Studio Guide de référence

EnrichVersion
6.1
EnrichProdName
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
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 traquant les modifications effectuées dans quatre des colonnes du fichier délimité source, écrit ces modifications ainsi que l'historique des modifications dans une table SCD et affiche les informations d'erreurs dans la console Run.

Le fichier délimité source contient différentes informations personnelles : des prénoms dans la colonne firstname, des noms dans la colonne lastname, des adresses dans la colonne address, des villes dans la colonne city, l'entreprise de la personne dans la colonne company, son âge dans la colonne age et son statut marital dans la colonne status. Une colonne id permet d'assurer l'unicité des données.

Les changements de statut marital doivent écraser les anciens statuts enregistrés. Ce type de changement correspond à un changement SCD Type 1.

Un nouvel enregistrement dans la table dimensionnelle avec une clé différente sera inséré à chaque fois qu'une personne change d'entreprise. Ce type de changement correspond à un changement SCD Type 2.

Vous allez récupérer l'ancienne ville et l'ancienne adresse d'une personne. Ce type de changement correspond à un changement SCD Type 3.

Pour réaliser ce type de scénario, il est préférable de le séparer en trois étapes principales : la définition du flux principal du Job, le paramétrage de l'éditeur SCD et la création de la table de modification dans la base de données.

Définir le flux principal du Job

  1. Cliquez et déposez les composants suivants dans l'éditeur graphique : tMysqlConnection, tFileInputDelimited, tMysqlSCD, tMysqlCommit ainsi que deux composants tLogRow.

  2. Connectez les composants tFileInputDelimited, le premier tLogRow et le tMysqlSCD à l'aide d'un lien Row Main. Ce sous-job correspond au flux principal du Job.

  3. Connectez le tMysqlConnection au tFileInputDelimited et le tMysqlSCD au tMysqlCommit à l'aide de liens OnComponentOk.

  4. Connectez le tMysqlSCD au second tLogRow à l'aide d'un lien Row Reject. Les colonnes errorCode et errorMessage sont ajoutées au schéma. Cette connexion collecte les informations d'erreurs.

Configurer la connexion à la base de données et le composant d'entrée

  1. Dans l'éditeur graphique, double-cliquez sur le composant tMysqlConnection pour afficher ses propriétés de base dans l'onglet Basic settings et renseigner manuellement les informations de connexion. Lorsque plusieurs composants Database sont utilisés, le composant tMysqlConnection devrait être utilisé pour éviter de renseigner plusieurs fois les mêmes informations de connexion à la base de données.

    Note

    Si vous avez déjà stocké les informations de connexion dans le Repository, glissez l'élément Metadata souhaité dans l'éditeur graphique et les informations de connexion à la base de données apparaîtront automatiquement dans les champs correspondants. Pour plus d'informations sur les métadonnées, consultez le Guide utilisateur du Studio Talend.

    Dans ce scénario, l'objectif est de se connecter à la table SCD dans laquelle toutes les modifications apportées au fichier délimité seront traquées.

  2. Dans l'éditeur graphique, double-cliquez sur le composant tFileInputDelimited pour afficher la vue Basic settings.

  3. Cliquez sur le bouton [...] à côté du champ File Name pour sélectionner le chemin d'accès au fichier délimité dataset.csv source contenant les informations personnelles.

  4. Dans les champs Row et Field Separator, renseignez respectivement les séparateurs de lignes et de champs utilisés dans le fichier source.

    Note

    Les champs File Name, Row separator et Field separators sont obligatoires.

  5. Si nécessaire, renseignez les champs Header, Footer et Limit.

    Dans ce scénario, saisissez 1 dans le champ Header puisque le fichier source contient un en-tête. Laissez le champ Footer à 0 puisque le fichier source ne contient pas de pied de page et ne renseignez pas le champ Limit déterminant le nombre de lignes devant être traitées.

  6. Cliquez sur Edit schema pour décrire la structure des données du fichier délimité source.

    Dans ce scénario, le schéma source est composé de huit colonnes : id,firstname, lastname, address, city, company, age et status.

  7. Dans l'onglet Basic settings du premier composant tLogRow, sélectionnez le mode Table afin que le contenu du fichier source, ainsi que les attributs variants apparaissent dans les cellules du tableau dans la console avant d'être traitées par le composant SCD.

Configurer tMysqlSCD et tMysqlCommit

  1. Dans l'éditeur graphique, double-cliquez sur le composant tMysqlSCD pour paramétrer ses propriétés.

  2. Dans l'onglet Basic settings, cochez la case Use an existing connection pour réutiliser les informations de connexion définies dans les propriétés du composant tMysqlConnection.

  3. Dans le champ Table, saisissez le nom de la table SCD dans laquelle les changements seront stockés.

  4. Si nécessaire, cliquez sur Sync columns pour récupérer toutes les colonnes du fichier délimité.

  5. Dans l'éditeur graphique, double-cliquez sur le composant tMysqlCommit pour paramétrer ses propriétés.

  6. Dans la liste Component list, sélectionnez la connexion adéquate s'il y a plusieurs composants de connexion dans le Job.

  7. Dans l'onglet Basic settings du second composant tLogRow, sélectionnez le mode Table afin que le contenu du fichier source, ainsi que les attributs variants apparaissent dans les cellules d'un tableau.

Paramétrer l'éditeur SCD

  1. Dans l'onglet Basic settings du composant tMysqlSCD, cliquez sur le bouton [...] à côté du champ SCD Editor pour ouvrir l'éditeur SCD editor et construire le flux de données en sortie du SCD.

    Toutes les colonnes du fichier délimité source, provenant du composant précédent et n'ayant pas encore été utilisées, apparaissent dans le panneau Unused de l'éditeur SCD. Tous les autres panneaux de l'éditeur sont vides.

  2. A partir de la liste Unused, glissez la colonne id vers le panneau Source keys pour être utilisée comme clé permettant d'assurer l'unicité des données entrantes.

  3. Dans le panneau Surrogate keys, donnez un nom à la clé de substitution (surrogate key) dans le champ Name, SK1 pour ce scénario.

  4. Dans la liste Creation, sélectionnez la méthode à utiliser pour générer la clé de substitution, Auto-increment pour ce scénario.

  5. Dans la liste Unused, glissez les colonnes firstname et lastname vers le panneau Type 0, les changements effectués dans ces colonnes ne sont pas pertinents dans cet exemple.

  6. Glissez la colonne status vers le panneau Type 1. L'ancienne valeur sera écrasée par la nouvelle.

  7. Glissez la colonne company vers le panneau Type 2. A chaque fois qu'une personne change d'entreprise, un nouvel enregistrement sera inséré dans la table dimensionnelle avec une nouvelle clé.

    Dans la zone Versioning :

    -Paramétrez les colonnes start et end de votre table SCD contenant respectivement les dates de début et de fin. La date de fin est nulle pour les enregistrements en cours jusqu'à ce qu'un changement soit détecté. A ce moment là, la date de fin est renseignée et un nouvel enregistrement est ajouté sans date de fin.

    Dans ce scénario, sélectionnez Fixed Year Value dans la colonne end et saisissez une année fictive pour éviter d'avoir une valeur nulle dans le champ de date de fin.

    -cochez le case version pour conserver le numéro de version de l'enregistrement.

    -cochez la case active pour ajouter la colonne Status contenant les statuts True ou False des enregistrements. True correspond à l'enregistrement en cours et False correspond à l'enregistrement modifié.

  8. Glissez les colonnes address et city vers le panneau Type 3 pour ne récupérer que les informations sur les anciennes valeurs des adresses et des villes.

    Pour plus d'informations sur les types de SCD, consultez Méthodologie de gestion du SCD.

  9. Cliquez sur OK pour valider votre configuration et fermer l'éditeur SCD.

Créer la table SCD

  1. Cliquez sur Edit schema pour afficher le flux de données en entrée et en sortie. Le schéma de sortie du SCD devrait inclure les colonnes spécifiques au SCD contenant les informations de log standard définies dans l'éditeur SCD editor.

    Note

    Si vous modifiez la définition du schéma d'entrée, vous devez vérifier et reconfigurer si nécessaire la définition du flux de sortie dans l'éditeur SCD, afin de s'assurer que la structure des données de sortie est correctement actualisée.

  2. Double-cliquez sur le composant tMysqlSCD pour afficher sa vue Basic settings et sélectionnez Create table if not exists à partir de la liste Action on table pour éviter d'avoir à créer et définir manuellement la table SCD.

Exécuter le Job

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

La console Run affiche le contenu du fichier délimité d'entrée et votre table SCD est créée dans votre base de données, contenant l'ensemble de données initial.

Janet divorce, déménage à Adelanto au 355 Golf Rd et travaille maintenant chez Greenwood.

Adam s'est marié, a déménagé à Belmont au 2505 Alisson ct. et travaille chez Scoop.

Martin travaille désormais chez Phillips and Brothers.

Mettez à jour le fichier délimité avec ces informations et appuyez sur F6 pour exécuter le Job.

La console affiche les changements apportés aux informations personnelles et la table SCD affiche l'historique des changements valides, ainsi que leur statut et leur numéro de version. Le nom de l'entreprise de Martin dépasse la longueur définie pour la colonne company dans le schéma. Ce changement est donc dirigé vers le flux de rejets, et non sauvegardé dans la table SCD.