July 30, 2023

tNeo4jRow – Docs for ESB 7.x

tNeo4jRow

Executes the stated Cypher query onto the specified Neo4J database.

Depending on the nature of the query, tNeo4jRow acts on the
data (although without handling data).

tNeo4jRow is the specific component for Neo4J database query. It
implements a flow in the Job design although it doesn’t provide output.

tNeo4jRow Standard properties

These properties are used to configure tNeo4jRow running in the Standard Job framework.

The Standard
tNeo4jRow component belongs to the Big Data and the Databases NoSQL families.

The component in this framework is available in all Talend products with Big Data
and in Talend Data Fabric.

Basic settings

Use an existing connection

Select this check box and in the Component List click the relevant connection component to
reuse the connection details you already defined.

DB version

Select the Neo4j version you are using.

When you are using Neo4j version 3.2.X, this component works
in the remote mode only. Therefore, if you want to reuse a connection to
Neo4j V3.2.X from tNeo4jConnection, ensure that you
have selected the Remote server check box and
properly configured the connection.

Do
not use a 2.X.X version and a 3.X.X version in the same Job. Otherwise,
class conflict issues occur.

Neo4j version 2.X.X is compatible only with Java 7 or higher but it offers
support of advanced features such as node labels.

This list is not shown if the Use an
existing connection
check box is selected.

Upon selecting a database version, you will be
prompted to install the corresponding database driver JAR files if not
yet installed. You can find more details
about how to install external modules in Talend Help Center (https://help.talend.com)
.

Remote server

Select this check box if you use a Neo4j remote server, and specify the root URL in the Server URL field.

  • Set username: this check box
    is available when you have selected the Use a remote server check box and the Neo4j version
    you are using is earlier than 2.2. If the remote Neo4j server
    you want to connect to does not require user credentials, leave
    it clear.

  • Username and Password: enter the authentication
    information to connect to the remote Neo4j server to be used.
    Since Neo4j 2.2, user credentials are always required.

This check box appears only if you do not select the Use an existing connection check box and you are not using Neo4j V3.2.X. With V3.2.X, this component supports the remote mode only.

Database path

If you use Neo4j in embedded mode, specify the directory
to hold your data files. If the specified directory does not exist, it
will be created.

This field appears only if you do not select the
Use an existing connection
check box or the Remote server
check box.

Shutdown after
job

Select this check box to shutdown the Neo4j database connection when no more
operations on Neo4j are going to be performed after the current
component.

Alternatively, you can use tNeo4jClose to shutdown the
database.

This avoids errors such as “Id file not properly shutdown” at next execution
of Jobs involving Neo4j.

This check box is available only if the Use an existing
connection
check box is not selected.

Schema and Edit schema

A schema is a row description. It defines the number of fields
(columns) to be processed and passed on to the next component. When you create a Spark
Job, avoid the reserved word line when naming the
fields.

Click Edit
schema
to make changes to the schema. If the current schema is of the Repository type, three options are available:

  • View schema: choose this
    option to view the schema only.

  • Change to built-in property:
    choose this option to change the schema to Built-in for local changes.

  • Update repository connection:
    choose this option to change the schema stored in the repository and decide whether
    to propagate the changes to all the Jobs upon completion. If you just want to
    propagate the changes to the current Job, you can select No upon completion and choose this schema metadata
    again in the Repository Content
    window.

 

Built-In: You create and store the schema locally for this component
only.

 

Repository: You have already created the schema and stored it in the
Repository. You can reuse it in various projects and Job designs.

When the schema to be reused has default values that are
integers or functions, ensure that these default values are not enclosed within
quotation marks. If they are, you must remove the quotation marks manually.

You can find more details about how to
verify default values in retrieved schema in Talend Help Center (https://help.talend.com).

Query

Enter your Cypher query in double quotes. If you have
some parameters corresponding to the input schema columns, declare them
with curly brackets ({}) and map them in the Parameters table.

Parameters

Click the [+]
button to add parameters corresponding to your Cypher query and map them
with the input schema columns.

  • Parameter name: Type in
    the name of your parameter, in double quotes.

  • Parameter value: Select
    the schema column you want to map your parameter with.

Die on error

This check box is selected by default. Clear the check
box to skip the row on error and complete the process for error-free
rows.

Advanced settings

tStatCatcher Statistics

Select this check box to gather the Job processing metadata at the
Job level as well as at each component level.

Commit every

Enter the number of rows to be completed before committing batches
of nodes together the database. This option ensures transaction
quality (but not rollback) and, above all, better performance at
execution.

This option is only supported by the embedded mode of the
database. You cannot make transactions in REST mode, that is to say, not
on a remote server in the deprecated 2.X.X versions.

Global Variables

Global Variables

NB_NODE_INSERTED: the number of nodes inserted. This is
an After variable and it returns a long.

NB_RELATIONSHIP_INSERTED: the number of relationships
inserted. This is an After variable and it returns a long.

NB_PROPERTY_UPDATED: the number of properties updated.
This is an After variable and it returns a long.

NB_NODE_DELETED: the number of nodes deleted. This is an
After variable and it returns a long.

NB_RELATIONSHIP_DELETED: the number of relationships
deleted. This is an After variable and it returns a long.

ERROR_MESSAGE: the error message generated by the
component when an error occurs. This is an After variable and it returns a string. This
variable functions only if the Die on error check box is
cleared, if the component has this check box.

A Flow variable functions during the execution of a component while an After variable
functions after the execution of the component.

To fill up a field or expression with a variable, press Ctrl +
Space
to access the variable list and choose the variable to use from it.

For further information about variables, see
Talend Studio

User Guide.

Usage

Usage rule

This component can be used as a standalone
component or as an output component in a process.
Limitation n/a

Creating nodes with a label using a Cypher query

This scenario applies only to Talend products with Big Data.

This scenario describes a Job that creates nodes with a label in an embedded Neo4j
database using a Cypher query, and then displays some properties of the specified node
on the console.

Adding and linking components

  1. Create a Job and add the following components to the Job by typing theirs
    names in the design workspace or dropping them from the Palette:

    • a tNeo4jConnection component, to
      open a connection to a Neo4j database,

    • a tNeo4jRow component, to create
      nodes in the Neo4j database with a Cypher query,

    • a tNeo4jIntput component, to read
      the specified properties of the created nodes,

    • a tLogRow component, to display
      the data on the Run console,
      and

    • a tNeo4jClose component, to close
      the Neo4j database connection established by the tNeo4jConnection component.

  2. Link the tNeo4jConnection component to
    the tNeo4jRow component using a Trigger > On Subjob
    Ok
    connection.
  3. Link the tNeo4jRow component to the
    tNeo4jIntput component using a
    Trigger > On
    Subjob Ok
    connection.
  4. Link the tNeo4jIntput component to the
    tLogRow component using a Row > Main
    connection.
  5. Link the tNeo4jIntput component to the
    tNeo4jClose component using a Trigger > On Subjob
    Ok
    connection.

    tNeo4jRow_1.png

Configuring the components

Configuring a Neo4j database connection and nodes creation

  1. Double-click the tNeo4jConnection
    component to open its Basic settings view
    on the Component tab.

    tNeo4jRow_2.png

  2. From the DB Version list, select
    Neo4J 2.X.X to enable node labeling
    support.
  3. In the Database path field, specify the
    directory for your data files, “E:/Talend/DB/Neo4j/data” in this example.

    In this example, you will use Neo4j in embedded mode; to connect to a
    remote Neo4j server via REST, click the Use a remote
    server
    check box and specify the URL of the Neo4j
    server.
  4. Double-click the tNeo4jRow component to
    open its Basic settings view on the
    Component tab.

    tNeo4jRow_3.png

  5. Select the Use an existing connection
    check box to reuse the Neo4j database connection opened by the tNeo4jConnection component, which is the only
    connection component used in this example.
  6. In the Query field, type in the Cypher
    query to be executed by the component.

    In this example, type in the following query to create two nodes with the
    label Managers and three properties –
    id, name, and position:
    As this component does not have an input flow, leave the schema and the
    parameter settings blank.

Configuring data retrieving and display

  1. Double-click the tNeo4jInput component to
    open its Basic settings view.

    tNeo4jRow_4.png

  2. Select the Use an existing connection
    check box to reuse the connection opened by the tNeo4jConnection component.
  3. Click the […] button next to Edit schema and define the schema corresponding
    to the node properties you want to retrieve and display. In this example,
    the schema is composed of two columns, name and position, both
    of type String.

    When done, click OK to close the
    Schema dialog box and propagate the
    schema to the next component.
    tNeo4jRow_5.png

    The defined schema columns automatically appear in the Mapping table.
  4. In the Query field, type in the Cypher
    query to match the data to read from the Neo4j database. In this example,
    use the following Cypher query to find the name and position of the manager
    whose ID is 2.

    or
  5. Fill the Return parameter field for each
    schema column with a return parameter in double quotes to map the node
    properties in the Neo4j database with the schema columns.
  6. Double-click the tLogRow component to
    open its Basic settings view, and select
    the Table (print values in cells of a
    table)
    option to display the retrieved information in a
    table.

Executing the Job

  1. Press Ctrl+S to save the Job.
  2. Press F6 or click Run on the Run tab to run
    the Job.

    tNeo4jRow_6.png

    Two nodes are created in the Neo4j database based on the Cypher query,
    with the data files written in the specified directory, and the defined
    information is retrieved and displayed on the console.

Importing data from a CSV file to Neo4j using a Cypher query

This scenario applies only to Talend products with Big Data.

This scenario describes a Job that first imports employees data from a CSV file into a
Neo4j database using a Cypher query, and then displays the information on the
console.

Adding and linking components

  1. Create a Job and add the following components to the Job by typing theirs
    names in the design workspace or dropping them from the Palette:

    • a tNeo4jConnection component, to
      open a connection to a Neo4j database,

    • a tFileInputDelimited component,
      to read the source data from a CSV file,

    • a tNeo4jRow component, to write
      the employees data to the Neo4j database with a Cypher query,

    • a tNeo4jIntput component, to read
      the employees data from the Neo4j database,

    • a tLogRow component, to display
      the data on the Run console,
      and

    • a tNeo4jClose component, to close
      the Neo4j database connection opened by the tNeo4jConnection component.

  2. Link the tNeo4jConnection component to
    the tFileInputDelimited component using a
    Trigger > On
    Subjob Ok
    connection.
  3. Link the tFileInputDelimited component to
    the tNeo4jRow component using a Row > Main
    connection.
  4. Link the tFileInputDelimited component to
    the tNeo4jIntput component using a
    Trigger > On
    Subjob Ok
    connection.
  5. Link the tNeo4jIntput component to the
    tLogRow component using a Row > Main
    connection.
  6. Link the tNeo4jIntput component to the
    tNeo4jClose component using a Trigger > On Subjob
    Ok
    connection.
  7. Label the components to better identify their roles in the Job.

    tNeo4jRow_7.png

Configuring the components

Configuring a Neo4j database connection

  1. Double-click the tNeo4jConnection
    component to open its Basic settings view
    on the Component tab.

    tNeo4jRow_8.png

  2. From the DB Version list, select Neo4J
    2.X.X
    .
  3. Select the Use a remote server check box
    and specify the URL of the Neo4j server in the Server
    URL
    field, “http://localhost:7474/db/data” in this example.

    In this example, you will use Neo4j in REST mode; to connect to a remote
    Neo4j server in embedded mode, clear the Use a remote
    server
    check box and specify the Neo4j data file directory in
    the Database path field.

Configuring data import

  1. Double-click the tFileInputDelimited
    component to open its Basic settings view
    on the Component tab.

    tNeo4jRow_9.png

  2. In the File name/Stream field, specify
    the path to the CSV file that contains the employees data to read.

    The input CSV file used in this example is as follows:
  3. In the Header field, specify the number
    of rows to skip as header rows. In this example, the first row of the CSV
    file is the header row.
  4. Click the […] button next to Edit schema to open the Schema dialog box, and define the input schema based on
    the structure of the input file. In this example, the input schema is
    composed of six columns: employeeID
    (integer), employeeName (String),
    age (Integer), hireDate (Date), salary (Double), and managerID (String).

    When done, click OK to close the
    Schema dialog box and propagate the
    schema to the next component.
    tNeo4jRow_10.png

  5. Double-click the tNeo4jRow component to
    open its Basic settings view on the
    Component tab.

    tNeo4jRow_11.png

  6. Select the Use an existing connection
    check box to reuse the Neo4j database connection opened by the tNeo4jConnection component, which is the only
    connection component used in this example.
  7. In the Query field, type in the Cypher
    query to be executed by the component.

    In this example, type in the following query to create nodes with the
    label Employees and six properties, to
    hold the data from the input flow:
    • ID, which will take the value
      of the variable parameter id,

    • Name, which will take the value
      of the variable parameter name,

    • Age, which will take the value
      of the variable parameter age,

    • HireDate, which will the value
      of the variable parameter hire_date,

    • Salary, which will take the
      value of the variable parameter salary, and

    • ManagerID, which will the value
      of the variable parameter manager_id.

  8. In the Parameters table, type in the
    variable parameters in the Parameter field
    in accordance with your Cypher query , and map each of them with an input
    schema column by selecting it from the Parameter
    value
    list field.

    tNeo4jRow_12.png

Configuring data retrieving and display

  1. Double-click the tNeo4jInput component to
    open its Basic settings view.

    tNeo4jRow_13.png

  2. Select the Use an existing connection
    check box to reuse the connection opened the tNeo4jConnection component.
  3. Click the […] button next to Edit schema and define the schema corresponding
    to the node properties you want to retrieve and display.

    When done, click OK to close the
    Schema dialog box and propagate the
    schema to the next component.
    tNeo4jRow_14.png

    The defined schema columns automatically appear in the Mapping table.
  4. In the Query field, type in the Cypher
    query to match the data to read from the Neo4j database. In this example,
    use the following Cypher query to retrieve all the properties of all the
    nodes with the label Employees.

  5. Fill the Return parameter field for each
    schema column with a return parameter in double quotes to map the node
    properties in the Neo4j database with the schema columns.
  6. Double-click the tLogRow component to
    open its Basic settings view, and select
    the Table (print values in cells of a
    table)
    option to display the retrieved information in a
    table.

Executing the Job

  1. Press Ctrl+S to save the Job.
  2. Press F6 or click Run on the Run tab to run
    the Job.

    tNeo4jRow_15.png

    The employees data in the CSV file is written to the Neo4j database and
    displayed on the console.

Importing data from a CSV file to Neo4j and creating relationships using
a single Cypher query

This scenario applies only to Talend products with Big Data.

This scenario describes a Job that imports family information from a CSV file into a
remote Neo4j database and create relationships between persons and families using a
single Cypher query through a tNeo4jRow component.

Below is content of the CSV file to import data from in this
example:

As MERGE is used with LOAD CSV in this example, to ensure
the Cypher query is executed in an efficient way, another tNeo4jRow component is used to create an index on the property to
merge.

Adding and linking components

  1. Create a Job and add two tNeo4jRow
    components to the Job by typing the component name in the design workspace
    or dropping them from the Palette.
  2. Link the components using a Trigger >
    On Sub Job Ok connection.
  3. Label the components to better identify their roles in the Job.

    tNeo4jRow_16.png

Configuring the components

Creating an index

  1. Double-click the first tNeo4jRow
    component to open its Basic settings view
    on the Component tab.

    tNeo4jRow_17.png

  2. From the DB Version list, select
    Neo4J 2.X.X.
  3. Select the Remote server check box and
    specify the URL of the Neo4j server in the Server
    URL
    field, “http://localhost:7474/db/data” in this example.
  4. In the Query field, type in the following
    query to create an index on the property you are going to merge, which is
    the name property of the Family nodes in this example:

Importing data and creating relationships

  1. Double-click the second tNeo4jRow
    component to open its Basic settings view
    on the Component tab.

    tNeo4jRow_18.png

  2. From the DB Version list, select
    Neo4J 2.X.X.
  3. Select the Remote server check box and
    specify the URL of the Neo4j server in the Server
    URL
    field, “http://localhost:7474/db/data” in this example.
  4. In the Query field, type in the following
    Cypher query to import family data from the CSV file, create relevant
    Person and Family nodes, and create relationships between persons and
    families:

Executing the Job and checking the result

  1. Press Ctrl+S to save the Job, and press
    F6 or click Run on the Run tab to run
    the Job.
  2. In the address bar of your Web browser, enter the URL of the Neo4j
    database browser, http://localhost:7474/ in this example, and
    enter the following Cypher query in the command line to view the Person and Family nodes linked via the relationship From:

    As shown in the graphic view, nodes labeled Family and Person have
    been created and the nodes of persons from the same families are linked with
    the relevant Family nodes via the
    relationship From.
    tNeo4jRow_19.png


Document get from Talend https://help.talend.com
Thank you for watching.
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x