tNeo4jOutput - 6.3

Composants Talend Guide de référence

EnrichVersion
6.3
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.

Fonction

Le composant tNeo4jOutput reçoit des données du composant précédent et les écrit dans la base de données Neo4j.

Objectif

Le tNeo4jOutput est utilisé pour écrire des données dans une base de données Neo4j et/ou mettre à jour ou supprimer des entrées dans la base de données, selon l'index défini.

Propriétés du tNeo4jOutput

Famille du composant

Big Data / Neo4j

 

Basic settings

Use an 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 la version de Neo4j que vous utilisez, Neo4J 1.X.X ou Neo4J 2.X.X.

Notez que la version 2.X.X de Neo4j est compatible uniquement avec la version 7 ou supérieure de Java mais supporte les fonctionnalités avancées, comme les libellés des nœuds.

Cette liste n'est pas affichée lorsque la case Use an existing connection est cochée.

Après avoir sélectionné la version de la base de données, il vous est demandé d'installer les fichiers Jar contenant les pilotes correspondant à la base de données. Pour plus d'informations concernant l'installation de modules tiers, consultez le Guide d'installation Talend.

 

Remote server

Cochez cette case si vous utilisez un serveur REST Neo4j et spécifiez l'URL racine dans le champ Server URL.

  • Set username : cette case est disponible lorsque vous avez coché la case Use a remote server et que la version de Neo4j que vous utilisez est antérieure à 2.2. Si le serveur Neo4j distant auquel vous souhaitez vous connecter ne nécessite pas l'utilisation d'un identifiant et d'un mot de passe, laissez la case décochée.

  • Username et Password : saisissez les informations d'authentification pour vous connecter au serveur Neo4j distant à utiliser. Depuis la version 2.2 de Neo4j, l'identifiant et le mot de passe sont toujours requis.

Cette case apparaît uniquement si la case Use an existing connection n'est pas cochée.

 

Database path

Si vous utilisez Neo4j en mode embarqué, spécifiez le répertoire qui contiendra vos fichiers de données. Le répertoire spécifié sera créé s'il n'existe pas déjà.

Cette case apparaît uniquement si la case Use an existing connection ou la case Remote Server n'est pas cochée.

 

Shutdown after job (Only embedded database)

Cochez cette case si vous souhaitez arrêter la connexion à la base de données Neo4j à la fin du Job.

Cette case est disponible uniquement lorsque la case Use an existing connection est cochée.

 Mapping

Cliquez sur le bouton [...] ou double-cliquez sur le composant dans l'espace de modélisation graphique pour ouvrir l'éditeur de mapping des index et des relations. Utilisez cet éditeur pour indexer un nœud ou créer des relations durant l'insertion d'un nœud.

  • Cochez la case Auto indexed pour qu'une colonne indexe automatiquement des nœuds avec cette propriété.

  • Index creation : Après avoir sélectionné une colonne, cliquez sur le bouton [+] pour créer sur les nœuds autant d'index que vous le souhaitez, avec la propriété correspondant à la colonne sélectionnée.

    • Name : Spécifiez un nom d'index entre guillemets doubles.

    • Key : Spécifiez une clé d'index entre guillemets doubles.

    • Value (empty for current row) : Spécifiez une valeur d'index entre guillemets doubles. Si vous laissez ce champ vide, la valeur par défaut de l'index ajouté sur chaque nœud deviendra la valeur de la propriété du nœud actuel.

    • Unique : Cochez cette case si vous souhaitez que l'index défini ne soit créé qu'une seule fois dans le graphique plutôt que sur chaque nœud.

  • Relationship creation : Après avoir sélectionné une colonne, cliquez sur le bouton [+] pour créer autant de relations que vous le souhaitez pour les nœuds, avec la propriété correspondant à la colonne sélectionnée.

    • Type : Spécifiez un type de relation entre guillemets doubles.

    • Direction : Sélectionnez une direction de relation : Outgoing ou Incoming.

    • Index name : Spécifiez un nom d'index pour la relation entre guillemets doubles.

    • Index key : Spécifiez une clé d'index pour la relation entre guillemets doubles.

    • Value (empty for current row) : Spécifiez une valeur d'index pour la relation entre guillemets doubles. Si vous laissez ce champ vide, la valeur par défaut de l'index ajouté sur la relation deviendra la valeur de la propriété du nœud actuel.

 

Use label (Neo4j > 2.0)

Cochez cette case afin de créer des nœuds ayant un libellé. Saisissez le nom de votre libellé dans le champ Label name.

Cette case n'est pas affichée si l'option Neo4J 1.X.X est sélectionnée dans la liste DB Version ou si l'option Delete est sélectionnée dans la liste Data action.

Notez que cette option fonctionne uniquement à partir de la version 2.0 de Neo4j 2.0 et avec Java 7.

 

Data action

Sur les données du nœud, vous pouvez effectuer les actions suivantes :

  • Insert : ajouter un nouveau nœud à la base de données.

  • Update : effectuer des modifications sur les entrées existantes.

  • Update or insert : recherche le nœud via un index pour le mettre à jour ou le modifier. Si le nœud n'existe pas, un nouveau nœud est inséré

  • Delete : supprime les nœuds récupérés par l'index en fonction du flux d'entrée.

 

Index name

Spécifiez le nom de l'index à interroger.

Ce champ est disponible uniquement si l'action sélectionnée dans la liste Data action est autre que Insert.

 

Index key

Spécifiez la clé d'index à interroger.

Ce champ est disponible uniquement si l'action sélectionnée dans la liste Data action est autre que Insert.

 

Index value

Sélectionnez la valeur d'index à interroger.

Ce champ est disponible uniquement si l'action sélectionnée dans la liste Data action est autre que Insert.

 

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.

Depuis la version 5.6, les modes Built-In et Repository sont disponibles dans toutes les solutions de Talend.

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, cliquez sur No et sélectionnez à nouveau la métadonnée du schéma dans la fenêtre [Repository Content].

 

 

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 l'article Vérification des valeurs par défaut dans un schéma récupéré sur Talend Help Center (https://help.talend.com).

Advanced settings

Commit every

Saisissez le nombre de lignes à compléter avant de commiter les lots de nœuds dans la base de données. Cette options assure la qualité de la transaction (mais pas le rollback) et permet une meilleure performance lors de l'exécution.

Avertissement

Cette option est supportée uniquement par le mode embarqué de la base de données. Vous ne pouvez pas effectuer de transactions en mode REST.

 

Batch import

Cochez cette case pour activer le mode batch (par lots).

Avertissement

Cette option est supportée uniquement par le mode embarqué de la base de données. Il est recommandé d'effectuer une sauvegarde avant d'exécuter le Job, afin d'éviter la corruption des données.

Note

Si vous avez configuré la création d'index sur plusieurs colonnes dans la table Mapping, il est recommandé de cocher la case Unique dans les paramètres d'index pour la dernière colonne afin d'éviter de créer des doublons d'index non désirés susceptibles de causer des problèmes de chargement de batch.

Pour plus d'informations concernant la configuration du mapping de la mémoire, consultez la documentation Neo4j à l'adresse suivante : http://neo4j.com/docs/stable/batchinsert-examples.html (en anglais).

 

Node store mapped memory

Saisissez la taille de la mémoire allouées aux nœuds, en Mo.

 

Relationship store mapped memory

Saisissez la taille de la mémoire allouée aux relations, en Mo.

 

Property store mapped memory

Saisissez la taille de la mémoire allouée à la propriété, en Mo.

 

String store mapped memory

Saisissez la taille de la mémoire allouée aux chaînes de caractères, en Mo.

 

Array store mapped memory

Saisissez la taille de la mémoire allouée aux tableaux, en Mo.

 

tStatCatcher Statistics

Cochez cette case pour collecter les données de log au niveau du Job ainsi qu'au niveau de chaque 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.

UtilisationCe composant est utilisé en tant que composant de sortie et nécessite un lien d'entrée.

Scénario 1 : Écrire des données dans une base de données Neo4j et lire des données spécifiques de cette base de données

Ce scénario simple décrit un Job composé de deux sous-jobs : le premier sous-job lit des données concernant des employés à partir d'un fichier CSV, les écrit dans une base de données Neo4j et déclenche le second sous-job, qui lit les données concernant les employés sous certaines conditions de requête de la base de données Neo4j et les affiche dans la console Run.

Ajouter et relier les composants

  1. Créez un Job et ajoutez les composants suivants au Job en saisissant leur nom dans l'espace de modélisation graphique :

    • un composant tFileInputDelimited, pour lire les données des employés à partir d'un fichier CSV,

    • un composant tNeo4jOutput, pour écrire les données des employés dans une base de données Neo4j,

    • un composant tNeo4jIntput, pour lire les données des employés à partir de la base de données Neo4j sous des conditions définies et

    • un composant tLogRow, pour afficher les données dans la console Run.

  2. Reliez le composant tFileInputDelimited au composant tNeo4jOutput à l'aide d'une connexion de type Row > Main.

  3. Connectez le composant tNeo4jIntput au composant tLogRow à l'aide d'un lien de type Row > Main.

  4. Reliez le composant tFileInputDelimited au composant tNeo4jIntput à l'aide d'une connexion de type Trigger > On Subjob Ok.

  5. Renommez les composants afin de mieux identifier leur rôle au sein du Job.

Configurer les composants

Importer des données dans la base de données Neo4j

  1. Double-cliquez sur le composant tFileInputDelimited afin d'ouvrir sa vue Basic settings.

  2. Dans le champ File name/Stream, spécifiez le chemin d'accès au fichier CSV qui contient les données des employés à lire.

    Le fichier d'entrée CSV utilisé dans cet exemple se présente de la manière suivante :

    employeeID;employeeName;age;hireDate;salary;managerID
    1;Rutherford Roosevelt;38;06-10-2008;13336.58;m5
    2;Warren Adams;43;05-22-2008;11626.68;m6
    3;Andrew Roosevelt;55;04-01-2007;10052.95;m4
    4;Herbert Quincy;54;06-14-2007;10694.71;m6
    5;Woodrow Polk;33;08-14-2007;13751.50;m4
    6;Theodore Johnson;47;01-26-2008;12426.87;m6
    7;Benjamin Adams;32;02-25-2008;10438.65;m4
    8;Woodrow Harrison;51;10-11-2008;11188.27;m5
    9;George Truman;40;04-28-2008;14254.49;m5
    10;Harry Jackson;38;04-01-2008;12798.78;m6
  3. Dans le champ Header, spécifiez le nombre de lignes considérées comme étant des lignes d'en-tête à ignorer. Dans cet exemple, la première ligne du fichier CSV est la ligne d'en-tête.

  4. Cliquez sur le bouton [...] à côté du champ Edit schema pour ouvrir la boîte de dialogue [Schema] et définissez le schéma d'entrée selon la structure du fichier d'entrée. Dans cet exemple, le schéma d'entrée est composé de six colonnes : employeeID (Integer), employeeName (String), age (Integer), hireDate (Date), salary (Float), et managerID (String).

    Lorsque vous avez terminé, cliquez sur OK pour fermer la boîte de dialogue [Schema] et propager le schéma au composant suivant.

  5. Cliquez sur le composant tNeo4jOutput et sélectionnez l'onglet Component pour ouvrir sa vue Basic settings.

  6. Définissez une connexion à la base de données Neo4j. Dans cet exemple, la base de données Neo4j est accessible en mode REST. Cochez la case Remote server et spécifiez l'URL du serveur Neo4j dans le champ Server URL : "http://localhost:7474/db/data" dans cet exemple.

  7. Si nécessaire, cliquez sur le bouton Sync columns pour vous assurer que le composant ait le même schéma que le composant précédent.

    Laissez les autres paramètres tels qu'ils sont.

Lire des données de la base de données Neo4j

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

  2. Tout comme pour le composant tNeo4jOutput, spécifiez l'URL du serveur Neo4j auquel se connecter : "http://localhost:7474/db/data" dans cet exemple.

  3. Cliquez sur le bouton [...] à côté du champ Edit schema et définissez le schéma d'affichage des informations sur les employés. Lorsque vous avez terminé, cliquez sur OK pour fermer la boîte de dialogue [Schema] et propager le schéma au composant suivant.

    Les colonnes définies du schéma apparaissent automatiquement dans la table Mapping.

  4. Dans le champ Query, renseignez la requête Cypher de sorte qu'elle corresponde aux données à lire de la base de données Neo4j. Dans cet exemple, utilisez la requête Cypher suivante pour trouver les employés qui ont plus de 40 ans et travaillent sous les ordres du manager m6.

    "MATCH (n) WHERE n.age > 40 AND n.managerID = 'm6' RETURN n;"
  5. Renseignez le champ Return parameter pour chaque colonne du schéma avec un paramètre de retour entre guillemets doubles afin de mapper les propriétés du nœud dans la base de données Neo4j aux colonnes du schéma.

  6. Double-cliquez sur le composant tLogRow afin d'ouvrir sa vue Basic settings et sélectionnez l'option Table (print values in cells of a table) afin d'afficher les informations récupérées sous forme de tableau.

Exécuter le Job

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

  2. Appuyez sur F6 ou cliquez sur le bouton Run dans la vue Run pour exécuter le Job.

    Les données des employés dans le fichier CSV sont écrites dans la base de données Neo4j. Les informations des employés correspondant aux conditions définies sont récupérées de la base de données Neo4j et affichées dans la console.

Scénario 2 : Ecrire des informations concernant des familles dans Neo4j et créer des relations

Ce scénario décrit un Job écrivant des informations relatives à des familles dans des nœuds ayant un label, dans une base de données Neo4j distante et créant des relations basées sur les noms de famille.

Construire le Job

  1. Créez un Job et ajoutez les composants suivants dans le Job en saisissant leurs noms dans l'espace de modélisation graphique ou en les déposant depuis la Palette :

    • un tFileInputDelimited pour lire les données relatives à la famille à partir d'un fichier CSV,

    • un tNeo4jOutput pour écrire les données des familles dans une base de données Neo4j et créer des relations entre un mari et une femme.

  2. Reliez le composant tFileInputDelimited au tNeo4jOutput à l'aide d'un lien Row > Main.

  3. Renommez les composants afin de mieux identifier leur rôle au sein du Job.

Configurer les composants

Configurer la source des données

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

  2. Dans le champ File name/Stream, spécifiez le chemin d'accès au fichier CSV contenant les données des familles à lire.

    Le fichier CSV d'entrée utilisé dans cet exemple se présente comme suit :

    Name;Gender;Age;Family
    Jenny;Female;24;the Johnsons
    Jack;Male;26;the Johnsons
    Richard;Male;35;the Blacks
    Anne;Female;36;the Whites
    Helen;Female;28;the Blacks
    Tom;Male;38;the Whites
  3. Dans le champ Header, spécifiez le nombre de lignes d'en-tête à ignorer. Dans cet exemple, la première ligne du fichier CSV est la ligne d'en-tête.

  4. Cliquez sur le bouton [...] à côté du champ Edit schema pour ouvrir la boîte de dialogue [Schema] et définissez le schéma d'entrée, à partir de la structure du fichier d'entrée. Dans cet exemple, le schéma d'entrée se compose de six colonnes : name (Integer), gender (String), age (Integer) et family (String).

    Cela fait, cliquez sur OK pour fermer la boîte de dialogue [Schema] et propagez le schéma au composant suivant.

Ecrire des données dans Neo4j et créer des index et une relation

  1. Cliquez sur le composant tNeo4jOutput et sélectionnez l'onglet Component.