tMongoDBOutput - 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

Avertissement

Ce composant est disponible dans la Palette du Studio Talend si vous avez souscrit à l'une des solutions Big Data de Talend.

Propriétés du tMongoDBOutput

Famille du composant

Big Data / MongoDB

 

Fonction

Le composant tMongoDBOutput insère, met à jour, insère et met à jour ou supprime des documents dans une collection d'une base de données MongoDB, à partir du flux entrant du composant précédent dans le Job.

Objectif

Ce composant exécute une action définie sur une collection dans la base de données MongoDB.

Basic settings

Use existing connection

Cochez cette case et sélectionnez le composant de connexion adéquat à partir de la liste Component List pour réutiliser les paramètres d'une connexion que vous avez déjà définie.

 

DB Version

Sélectionnez dans la liste la version de la base de données que vous utilisez.

Cette option est disponible lorsque la case Use existing connection est décochée.

 Use replica set address

Cochez cette case pour afficher la table Replica adddress.

Dans la table Replica address, vous pouvez configurer différents serveurs de la base de données MongoDB pour le failover.

Cette option est disponible lorsque la case Use existing connection n'est pas cochée.

 

Server et Port

Adresse IP et port d'écoute du serveur de la base de données.

Ces champs sont disponibles lorsque les cases Use existing connection et Use replica set address ne sont pas cochées.

 

Database

Nom de la base de données.

 

Use SSL connection

Cochez cette case pour activer la connexion cryptée SSL.

Utilisez le composant tSetKeystore dans le même Job afin de spécifier les informations d'authentification.

Pour plus d'informations concernant le tSetKeystore, consultez tSetKeystore.

Notez que la connexion SSL est disponible uniquement à partir de la version 2.4 de MongoDB.

 

Set write concern

Cochez cette case pour effectuer une opération MongoDB Write Concern. Sélectionnez le niveau de cette opération.

Pour plus d'informations, consultez la documentation relative à MongoDB à l'adresse suivante : http://docs.mongodb.org/manual/core/write-concern/ (en anglais).

 

Bulk write

Cochez cette case pour insérer, mettre à jour ou supprimer des données en masse. Notez que cette fonctionnalité est disponible uniquement lorsque la version de MongoDB que vous utilisez est 2.6 ou supérieure.

Vous devez sélectionner Ordered ou Unordered afin de définir comment la base de données MongoDB traite les données envoyées par le Studio.

  • Si vous sélectionnez Ordered, MongoDB traite les données en séquence.

  • Si vous sélectionnez Unordered, MongoDB traite les données en parallèle.

Dans le champ Bulk write size, saisissez la taille de chaque groupe de requêtes à traiter par MongoDB. Dans la documentation de MongoDB, certaines restrictions et certains comportements attendus, notamment la taille mentionnée ici, sont expliqués. Pour plus d'informations, consultez http://docs.mongodb.org/manual/core/bulk-write-operations/ (en anglais).

 

Required authentication

Cochez cette case pour activer l'authentification à la base de données.

 

Username et Password

Informations d'authentification de l'utilisateur à la base de données.

Pour saisir le mot de passe, cliquez sur le bouton [...] à côté du champ Password, puis, dans la boîte de dialogue qui s'ouvre, saisissez le mot de passe entre guillemets doubles, puis cliquez sur OK afin de sauvegarder les paramètres.

Ces champs sont disponibles lorsque la case Required authentication est cochée.

Si le système de sécurité sélectionné dans la liste Authentication mechanism est Kerberos, saisissez les informations dans les champs suivants User principal, Realm et KDC server et non dans les champs Username et Password.

 

Collection

Nom de la collection dans la base de données MongoDB.

 

Drop collection if exist

Cochez cette case afin de supprimer la collection si elle existe déjà.

 

Action on data

Les opérations suivantes sont disponibles :

Insert : insérer des données.

Set : mettre à jour une partie des données. Si vous souhaitez appliquer cette action à tous les documents de la collection à utiliser, cochez la case Update all document. Si cette case n'est pas cochée, seul le premier document est mis à jour.

Update : mettre à jour des données.

Upsert : mettre à jour et insérer des données si l'élément n'existe pas.

Upsert with set : met à jour une partie des données ou insère des données si l'élément n'existe pas. Si vous souhaitez appliquer cette action à tous les documents de la collection à utiliser, cochez la case Update all document. Si cette case n'est pas cochée, seul le premier document est mis à jour.

Delete : supprimer des données.

 

Schema et Edit Schema

Un schéma est une description de lignes, il définit le nombre de champs (colonnes) qui sont traités et passés au composant suivant. Le schéma est soit local (Built-In), soit distant dans le Repository.

Cliquez sur Edit schema pour modifier le schéma. Si le schéma est en mode Repository, trois options sont disponibles :

  • View schema : sélectionnez cette option afin de voir le schéma.

  • Change to Built-In property : sélectionnez cette option pour passer le schéma en mode Built-In et effectuer des modifications locales.

  • Update repository connection : sélectionnez cette option afin de modifier le schéma stocké dans le référentiel et décider de propager ou non les modifications à tous les Jobs. Si vous souhaitez propager les modifications uniquement au Job courant, sélectionnez No et sélectionnez à nouveau la métadonnée du schéma dans la fenêtre [Repository Content].

Cliquez sur Sync columns pour récupérer le schéma du composant précédent dans le Job.

 

 

Built-In : Le schéma est créé et conservé ponctuellement pour ce composant seulement. Voir également le Guide utilisateur du Studio Talend.

 

 

Repository : Le schéma existe déjà et il est stocké dans le Repository. Ainsi, il peut être réutilisé. Voir également le Guide utilisateur du Studio Talend.

Lorsque le schéma à réutiliser contient des valeurs par défaut, qui sont des entiers (integer) ou des fonctions (function), assurez-vous que les valeurs par défaut ne sont pas entourées de guillemets. Si c'est le cas, vous devez supprimer manuellement les guillemets.

Pour plus d'informations, consultez https://help.talend.com/display/KB/Verifying+default+values+in+a+retrieved+schema (en anglais).

 

Mapping

Spécifiez le nœud père pour la colonne de la base de données MongoDB.

Ce tableau est indisponible lorsque la case Generate JSON Document est cochée dans l'onglet Advanced settings.

 

Die on error

Cette case est décochée par défaut, afin d'ignorer les lignes en erreur et de terminer le traitement avec les lignes sans erreur.

Advanced settingsGenerate JSON Document

Cochez cette case pour la configuration JSON.

Configure JSON Tree : Cliquez sur le bouton [...] pour ouvrir l'interface de configuration de l'arborescence JSON. Pour plus d'informations, consultez Configurer une arborescence JSON.

Group by : Cliquez sur le bouton [+] afin d'ajouter des lignes et sélectionner les colonnes d'entrée pour grouper les enregistrements.

Remove root node : Cochez cette case pour supprimer le nœud racine.

Data node et Query node (disponibles pour les actions Update et Upsert) : Saisissez le nom du nœud de données et du nœud de requêtes configurés dans l'arborescence JSON.

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.

tStatCatcher Statistics

Cochez cette case pour collecter les données de log au niveau du composant.

Global Variables

NB_LINE : nombre de lignes lues par un composant d'entrée ou passées à un composant de sortie. Cette variable est une variable After et retourne un entier.

ERROR_MESSAGE : message d'erreur généré par le composant lorsqu'une erreur survient. Cette variable est une variable After et retourne une chaîne de caractères. Cette variable fonctionne uniquement si la case Die on error est décochée, si le composant a cette option.

Une variable Flow fonctionne durant l'exécution d'un composant. Une variable After fonctionne après l'exécution d'un composant.

Pour renseigner un champ ou une expression à l'aide d'une variable, appuyez sur les touches Ctrl+Espace pour accéder à la liste des variables. A partir de cette liste, vous pouvez choisir la variable que vous souhaitez utiliser.

Pour plus d'informations concernant les variables, consultez le Guide utilisateur du Studio Talend.

Utilisation

Le tMongoDBOutput exécute l'action définie sur la collection dans la base de données MongoDB, à partir du flux entrant depuis le composant précédent dans le Job.

Log4j

Si vous utilisez une solution Talend soumise à souscription, l'activité de ce composant peut être journalisée avec la fonctionnalité log4j. Pour plus d'informations sur cette fonctionnalité, consultez le Guide utilisateur du Studio Talend.

Pour plus d'informations sur les niveaux de logs du log4j, consultez la documentation d'Apache : http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/Level.html (en anglais).

Limitation

Note

  • Le paramètre "multi", qui vous permet de mettre à jour plusieurs documents en même temps, n'est pas supporté. Par conséquent, si deux documents ont la même clé, le premier est toujours mis à jour, mais le second ne l'est jamais.

  • Pour l'opération de mise à jour, la clé ne peut être un tableau (array) JSON.

Scénario : Créer une collection et écrire des données dans celle-ci

Ce scénario crée la collection blog et écrit des données dans cette collection.

Relier les composants

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

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

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

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

  5. Connectez le tFixedFlowInput au tMongoDBInput avec un lien OnSubjobOk.

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

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

Configurer les composants

  1. Double-cliquez sur le 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 Use Inline Content (delimited file) dans la zone Mode.

    Dans le champ Content, saisissez les données à écrire 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...
    3;Andy;ELT Overview;ELT,Talend;Talend, the big name in the ELT circle...
    2;Andy;Data Integration Overview;Data Integration,Talend;Talend, the leading player in the DI field...
  5. Double-cliquez sur le tMongoDBOutput pour ouvrir sa vue Basic settings.

    Cochez les cases Use existing connection et Drop collection if exist.

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

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

  7. Cliquez cinq fois sur le bouton [+] pour ajouter cinq colonnes, à droite. Nommez-les respectivement id, author, title, keywords et contents. Définissez leur type à Integer pour la première colonne et à String pour les autres.

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

    Cliquez sur OK pour fermer l'éditeur.

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

    Dans la colonne Parent node path des lignes author, title, keywords et contents, saisissez le nœud père, post. Ces nœuds se trouvent à présent sous le nœud post dans la collection MongoDB.

  9. 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.

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

  11. Cliquez sur le bouton [+] pour ajouter cinq colonnes. Nommez-les id, author, title, keywords et contents. Définissez le type de la première colonne à Integer et à String pour les autres colonnes.

    Cliquez sur OK pour fermer l'éditeur.

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

    Dans la colonne Parent node path des lignes author, title, keywords et contents, saisissez le nœud père, post, afin que ces données puissent être récupérées à partir de leur position.

  13. Dans la zone Sort by, cliquez sur le bouton [+] pour ajouter une ligne et saisissez id sous Column.

    Sélectionnez asc dans la colonne Order asc or desc? à droite de la colonne id. Ainsi, les documents récupérés apparaîtront en ordre ascendant.

Exécuter le Job

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

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

  3. Passez à la base de données talend et lisez les données de la collection blog, dans l'invite de commande du client MongoDB. Vous pouvez constater que author, title, keywords et contents se trouvent sous le nœud post. Les enregistrements sont stockés dans le même ordre que dans la source des données.

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

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é.