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

Famille du composant

Big Data / Databases

 

Fonction

Le composant tNeo4jOutputRelationship reçoit des données du composant précédent et écrit les relations dans Neo4j.

Objectif

Le tNeo4jOutputRelationship est utilisé pour écrire des relations dans une base de données Neo4j.

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

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

Avertissement

Cette case apparaît uniquement lorsque la case Use an existing connection est cochée.

 

Database path

Si vous utilisez Neo4j en mode embarqué, spécifiez le chemin d'accès au fichier de données.

Avertissement

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

 

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, sélectionnez 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 https://help.talend.com/display/KB/Verifying+default+values+in+a+retrieved+schema (en anglais).

 

Server url

Si vous utilisez Neo4j en mode REST, saisissez l'URL racine.

Avertissement

Ce champ apparaît uniquement si la case Remote server est 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.

Avertissement

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

 

Relationship type

Spécifiez le type de relation à créer pour chaque ligne.

 

Start node / Index name

Spécifiez le nom de l'index pour interroger le nœud de début de la relation la plus récente.

 

Start node / Index key

Spécifiez la clé d'index pour interroger le nœud de début.

 

Start node / Index value

Sélectionnez la valeur de l'index pour interroger le nœud de début.

 

Relationship direction

Sélectionnez la direction d'une relation.

  • Outgoing : la relation début du nœud de début et termine au nœud de fin.

  • Incoming : la relation débute du nœud de fin et termine au nœud de début.

 

End node / Index name

Spécifiez le nom de l'index pour interroger le nœud de fin de la relation la plus récente.

 

End node / Index key

Spécifiez la clé de l'index pour interroger le nœud de fin.

 

End node / Index value

Sélectionnez la valeur de l'index pour interroger le nœud de fin.

 Mapping

Utilisez cette table pour mapper les propriétés de relations et les colonnes du schéma d'entrée.

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.

Pour plus d'informations concernant la configuration du mapping de la mémoire, consultez la documentation Neo4j à l'adresse suivante : http://docs.neo4j.org/chunked/milestone/configuration-io-examples.html#configuration-batchinsert (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 et utilisé en tant que composant de sortie et nécessite un lien de sortie.

Scénario : Ecrire des informations concernant des acteurs et des films dans Neo4j avec des relations hiérarchiques

Ce scénario décrit un Job important des informations concernant des acteurs et des films depuis deux fichiers CSV dans une base de données Neo4j distante et créant une relation entre les acteurs et les films, selon un autre fichier CSV décrivant le rôle des acteurs dans ces films.

Construire le Job

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

    • un tNeo4jConnection, pour ouvrir une connexion à une base de données Neo4j,

    • trois tFileInputDelimited, pour lire les informations d'entrée concernant les acteurs et les films,

    • deux tNeo4jOutput, pour écrire des informations concernant les films et les acteurs dans la base de données Neo4j connectée,

    • un tNeo4jOutputRelationship, pour créer une relation entre les acteurs et les films, et

    • un tNeo4jClose, pour fermer la connexion précédente à Neo4j après l'exécution du Job.

  2. Reliez le premier tFileInputDelimited au premier tNeo4jOutput à l'aide d'un lien Row > Main. Ce sous-job importe les acteurs dans la base de données Neo4j.

  3. Connectez le second tFileInputDelimited au second tNeo4jOutput à l'aide d'un lien Row > Main. Ce sous-job importe les films dans la base de données Neo4j.

  4. Reliez le troisième tFileInputDelimited au tNeo4jOutputRelationship à l'aide d'un lien Row > Main. Ce sous-job crée une relation entre les acteurs et les films.

  5. Reliez les sous-jobs à l'aide de liens Trigger > On Subjob Ok.

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

Configurer les composants

Ouvrir une connexion à une base de données Neo4j

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

  2. Dans la liste DB Version, sélectionnez Neo4J 2.X.X pour activer le libellé des nœuds.

  3. Cochez la case Use a remote server et spécifiez l'URL du serveur Neo4j dans le champ Server URL, "http://localhost:7474/db/data" dans cet exemple.

Importer les données des acteurs dans Neo4j

  1. Double-cliquez sur le premier tFileInputDelimited pour ouvrir la vue Basic settings.

  2. Dans le champ File name/Stream, spécifiez le chemin d'accès au fichier CSV décrivant le nom des acteurs, leur année de naissance et leur rôle dans ces films.

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

    Name;Born
    Keanu Reeves;1964
    Laurence Fishburne;1961
    Carrie-Anne Moss;1967
  3. Dans le champ Header, spécifiez le nombres de lignes d'en-tête à ignorer. Dans cet exemple, la première ligne du fichier CSV est la ligne d'en-tête, saisissez donc 1.

  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 deux colonnes name et born, de type String.

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

  5. Double-cliquez sur le premier tNeo4jOutput pour ouvrir sa vue Component.

  6. Cochez la case Use an existing connection pour réutiliser la connexion à la base de données Neo4j définie par le tNeo4jConnection, seul composant de connexion utilisé dans cet exemple.

  7. Double-cliquez sur le tNeo4jOutput ou cliquez sur le bouton Mapping de la vue Basic settings du composant, pour ouvrir l'éditeur d'index et de mapping de relations.

  8. Sélectionnez la colonne name, dans le schéma, et cliquez sur l'onglet Index creation, puis sur le bouton [+] pour ajouter une ligne à la table. Créez un index nommé name dans cette colonne :

    • Dans le nom Name, saisissez name entre guillemets doubles.

    • Dans le champ Key, saisissez name entre guillemets doubles pour donner une clé à l'index name.

    Cliquez dans le panneau du schéma afin de valider votre création d'index puis cliquez sur OK pour fermer l'éditeur de mapping.

  9. Cochez la case Use label (Neo4j > 2.0) et saisissez Actors entre guillemets doubles dans le champ Label name, afin que les nœuds créés soit libellés Actors.

Importer les données des films dans Neo4j

  1. Double-cliquez sur le second 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 informations des films.

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

    Title;Released;Tagline
    The Matrix;03-31-1999;Welcome to the Real World
    The Matrix Reloaded;05-07-2003;Free Your Mind
    The Matrix Revolutions;10-27-2003;Everything that has a Beginning has an End
  3. Dans le champ Header, spécifiez le nombre de lignes d'en-tête à ignorer. Dans cet exemple, l'en-tête est la première ligne du fichier CSV.

  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 se compose de trois colonnes, title (de type String), released (de type Date) et tagline (de type String).

    Cliquez sur OK pour ouvrir la boîte de dialogue [Schema] et propagez le schéma au composant suivant.

  5. Double-cliquez sur le second tNeo4jOutput pour ouvrir sa vue Component.

  6. Cochez la case Use an existing connection afin de réutiliser la connexion à la base de données Neo4j ouverte par le composant tNeo4jConnection, seul composant de connexion utilisé dans cet exemple.

  7. Double-cliquez sur le composant tNeo4jOutput ou cliquez sur le bouton Mapping de la vue Basic settings pour ouvrir l'éditeur d'index et de mapping de relations.

  8. Sélectionnez la colonne title dans le schéma, cliquez sur l'onglet Index creation, cliquez sur le bouton [+] pour ajouter une ligne à la table, puis créez un index nommé title dans cette colonne :

    • Dans le champ Name, saisissez title entre guillemets doubles.

    • Dans le champ Key, saisissez title entre guillemets doubles pour donner une clé à l'index.

    Cliquez dans le panneau du schéma pour valider votre création d'index, puis cliquez sur OK pour fermer l'éditeur de mapping.

  9. Cochez la case Use label (Neo4j > 2.0) et saisissez Movies entre guillemets doubles dans le champ Label name, pour que les nœuds créés aient le libellé Movies.

Créer la relation acteur-film dans Neo4j

  1. Double-cliquez sur le troisième tFileInputDelimited pour ouvrir sa vue Basic settings.

  2. Dans le champ File name/Stream, spécifiez le chemin d'accès au fichier CSV décrivant le rôle des acteurs dans les films.

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

    Actor;Movie;Role
    Keanu Reeves;The Matrix;Neo
    Keanu Reeves;The Matrix Reloaded;Neo
    Keanu Reeves;The Matrix Revolutions;Neo
    Laurence Fishburne;The Matrix;Morpheus
    Laurence Fishburne;The Matrix Reloaded;Morpheus
    Laurence Fishburne;The Matrix Revolutions;Morpheus
    Carrie-Anne Moss;The Matrix;Trinity
    Carrie-Anne Moss;The Matrix Reloaded;Trinity
    Carrie-Anne Moss;The Matrix Revolutions;Trinity
  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 chhamp 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 trois colonnes, actor, movie et role, de type String.

    Cliquez sur OK pour fermer la boîte de dialogue [Schema] et propager le schéma au composant suivant.

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

  6. Cochez la case Use an existing connection pour réutiliser la connexion à la base de données Neo4j ouverte par le composant tNeo4jConnection, seul composant de connexion utilisé dans cet exemple.

  7. Dans le champ Relationship type, saisissez le type de relation à créer, entre guillemets doubles. Dans cet exemple, le type de relation est ACTED_IN (a joué dans), qui apparaît comme libellé des relations entre les nœuds.

  8. Définissez les nœuds d'entrée et de sortie, ainsi que la direction de la relation à créer. Dans cet exemple, la relation est créée à partir du nœud Actors, sur lequel un index nommé name a été défini, vers le nœud Movies, sur lequel un index nommé title a été défini.

    • Start node : saisissez name entre guillemets doubles dans les champs Index name et Index key, puis sélectionnez la colonne name du schéma, dans la liste Index value. Comme le champ Value est laissé vide durant la création de l'index, la valeur de l'index est la valeur de la colonne name pour chaque ligne.

    • Dans la liste Relationship direction, sélectionnez Outgoing.

    • End node : saisissez title entre guillemets doubles dans les champs Index name et Index key, puis sélectionnez la colonne title du schéma, dans la liste Index value. Comme le champ Value est laissé vide durant la création de l'index, la valeur de l'index est la valeur de la colonne title pour chaque ligne.

  9. Cliquez trois fois sur le bouton [+] pour ajouter trois lignes à la table Mapping, afin de définir les trois propriétés de la relation :

    • Actor, sa valeur provient de la colonne actor du schéma,

    • Movie, sa valeur provient de la colonne movie du schéma,

    • Role, sa valeur provient de la colonne role du schéma.

Exécuter le Job et vérifier les résultats

  1. Appuyez sur les touches Ctrl+S pour sauvegarder le Job et appuyez sur F6 ou cliquez sur le bouton Run de la vue Run pour l'exécuter.

  2. Dans la barre d'adresse de votre navigateur Web, saisissez l'URL de la base de données Neo4j, http://localhost:7474/ dans cet exemple. Saisissez la requête Cypher suivante dans l'invite de commande afin de visualiser les nœuds et les relations entre eux.

    MATCH (a)-[:`ACTED_IN`]->(b) RETURN a,b;

    Comme vous pouvez le voir dans le graphique, les nœuds Actors sont reliés aux nœuds Movies par la relation ACTED_IN, avec les propriétés définies dans le Job.