Scénario 2 : Effectuer une opération d'upsert sur des enregistrements dans une collection - 6.1

Composants Talend Guide de référence

EnrichVersion
6.1
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 effectue une opération d'upsert sur la collection blog, car l'auteur d'un enregistrement existant a été modifié et qu'un nouvel enregistrement a été ajouté. Avant l'upsert, la collection blog se présente comme suit :

1;Andy;Open Source Outlook;Open Source,Talend;Talend, the leader of the open source world...
2;Andy;Data Integration Overview;Data Integration,Talend;Talend, the leading player in the DI field...
3;Andy;ELT Overview;ELT,Talend;Talend, the big name in the ELT circle...

Ces enregistrements peuvent être insérés dans la base de données, selon les instructions de la Scénario : Créer une collection et écrire des données dans celle-ci.

Relier les composants

  1. Déposez un composant tMongoDBConnection, un tFixedFlowInput, un tMongoDBOutput, un tMongoDBClose, un tMongoDBInput et un tLogRow de la Palette dans l'espace de modélisation graphique.

  2. Renommez le tFixedFlowInput en blog_post_data, le tMongoDBOutput en write_data_to_collection, le tMongoDBInput en read_data_from_collection et le tLogRow en show_data_from_collection.

  3. Reliez le tMongoDBConnection au tFixedFlowInput à l'aide d'un lien Trigger > OnSubjobOk.

  4. Reliez le tFixedFlowInput au tMongoDBOutput à l'aide d'un lien Row > Main.

  5. Connectez le tFixedFlowInput au composant tMongoDBInput à l'aide d'un lien Trigger > OnSubjobOk.

  6. Reliez le tMongoDBInput au tMongoDBClose à l'aide d'un lien Trigger > OnSubjobOk.

  7. Reliez le tMongoDBInput au tLogRow à l'aide d'un lien Row > Main.

Configurer les composants

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

  2. Dans la liste DB Version, sélectionnez la version de MongoDB que vous utilisez.

  3. Dans les champs Server et Port, saisissez les informations de connexion.

    Dans le champ Database, saisissez le nom de la base de données MongoDB.

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

    Sélectionnez l'option Use Inline Content (delimited file) dans la zone Mode.

    Dans le champ Content, saisissez les données pour effectuer l'upsert dans la base de données MongoDB, par exemple :

    1;Andy;Open Source Outlook;Open Source,Talend;Talend, the leader of the open source world...
    2;Andy;Data Integration Overview;Data Integration,Talend;Talend, the leading player in the DI field...
    3;Anderson;ELT Overview;ELT,Talend;Talend, the big name in the ELT circle...
    4;Andy;Big Data Bang;Big Data,Talend;Talend, the driving force for Big Data applications... 

    Comme affiché ci-dessus, l'auteur du troisième enregistrement a été modifié et le quatrième enregistrement est nouveau.

  5. Double-cliquez sur le tMongoDBOutput pour ouvrir sa vue Basic settings.

    Cochez les cases Use existing connection et Die on error.

    Dans le champ Collection, saisissez le nom de la collection, blog.

    Sélectionnez Upsert dans la liste Action on data.

  6. Cliquez sur le bouton [...] à côté de Edit schema pour ouvrir l'éditeur de schéma.

  7. Cliquez cinq fois sur le bouton [+] pour ajouter cinq colonnes dans la partie droite. Nommez-les id, author, title, keywords et contents, de type Integer pour id et String pour les quatre autres colonnes.

    Cliquez sur le bouton pour copier toutes les colonnes vers la table d'entrée.

    Cliquez sur OK pour fermer l'éditeur.

  8. Dans la vue Advanced settings, cochez la case Generate JSON Document.

    Cochez la case Remove root node.

    Dans les champs Data node et Query node, saisissez "data" et "query".

  9. Cliquez sur le bouton [...] à côté de Configure JSON Tree pour ouvrir l'interface de configuration.

  10. Cliquez-droit sur le nœud rootTag et sélectionnez Add Sub-element dans le menu contextuel.

    Dans la boîte de dialogue qui s'ouvre, saisissez data.

    Cliquez sur OK pour fermer la fenêtre.

    Répétez cette opération et saisissez query.

    Cliquez-droit sur le nœud data et sélectionnez Set As Loop Element dans le menu contextuel.

    Avertissement

    Ces nœuds sont obligatoires pour les actions Update et Upsert. Ils permettent d'activer les actions Update et Upsert mais ne seront pas stockés dans la base de données.

  11. Sélectionnez toutes les colonnes sous la liste Schema list et déposez-les dans le nœud data.

    Dans la fenêtre qui s'ouvre, sélectionnez Create as sub-element of target node.

    Cliquez sur OK pour fermer la fenêtre.

    Répétez l'opération pour déposer la colonne id de la liste Schema list sous le nœud Query.

  12. Cliquez-droit sur le nœud id sous data et sélectionnez Add Attribute dans le menu contextuel.

    Dans la boîte de dialogue qui s'ouvre, saisissez type comme nom d'attribut :

    Cliquez sur OK pour fermer la fenêtre.

    Cliquez-droit sur le nœud @type sous id et sélectionnez Set A Fix Value dans le menu contextuel.

    Dans la boîte de dialogue qui s'ouvre, saisissez integer comme valeur d'attribut, afin de vous assurer que les valeurs de id sont stockées en tant qu'entiers dans la base de données.

    Cliquez sur OK pour fermer la fenêtre.

    Répétez l'opération afin de configurer cet attribut pour le nœud id sous Query.

    Cliquez sur OK pour fermer l'interface de configuration de l'arborescence JSON.

  13. Double-cliquez sur le composant tMongoDBInput pour ouvrir sa vue Basic settings.

    Cochez la case Use existing connection.

    Dans le champ Collection, saisissez le nom de la collection, blog.

    Cliquez sur le bouton [...] à côté du champ Edit schema pour ouvrir l'éditeur de schéma.

    Cliquez cinq fois sur le bouton [+] pour ajouter cinq colonnes. Nommez-les id, author, title, keywords et contents et configurez le type de la colonne id à Integer et des autres colonnes à String.

    Cliquez sur OK pour fermer l'éditeur.

    Les colonnes apparaissent dans la partie gauche de la zone Mapping area.

    Saisissez le nœud père post pour les colonnes author, title, keywords et contents, afin que les données puissent être récupérées de leurs positions correctes.

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

    Dans la zone Mode, sélectionnez Table (print values in cells of a table pour un meilleur affichage.

Exécuter le Job

  1. Appuyez sur les touches Ctrl+S pour sauvegarder le Job.

  2. Appuyez sur F6 pour exécuter le Job.

    Comme affiché ci-dessus, l'auteur du troisième enregistrement est mis à jour et le quatrième enregistrement est inséré.