August 17, 2023

tMemorizeRows – Docs for ESB 5.x

tMemorizeRows

tMemorizeRows_icon.png

tMemorizeRows properties

Component family

Misc

 

Function

tMemorizeRows temporarily memorizes an array of
incoming data in a row by row sequence and instantiates this array by indexing each
of the memorized rows from 0. The maximum number of rows to be memorized at any
given time is defined in the Basic settings
view.

Purpose

tMemorizeRows memorizes a sequence of rows that
pass this component and then allows its following component(s) to perform operations
of your interest on the memorized rows.

Basic settings

Schema and Edit schema

A schema is a row description, it defines the number of fields that will be
processed and passed on to the next component. The schema is either built-in or
remote in the Repository.

Since version 5.6, both the Built-In mode and the Repository mode are
available in any of the Talend solutions.

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.

Click Sync columns to retrieve the schema from
the previous component connected in the Job.

 

 

Built-in: The schema will be created and stored
locally for this component only. Related topic: see Talend Studio User
Guide
.

 

 

Repository: You have already created the schema
and stored it in the Repository, hence can be reused in various projects and job
designs. Related topic: see Talend Studio User
Guide
.

 

Row count to memorize

Define the row count to be memorized.

 

Columns to memorize

Select the columns to be memorized from the incoming data schema.

Advanced settings

tStatCatcher Statistics

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

Usage

This component can be used as intermediate step in a data flow or the last step
before beginning a subjob.

Note: You can use the global variable NB_LINE_ROWS to retrieve the value of the
Row count to memorize field of the tMemorizeRows component.

Connections

Outgoing links (from this component to another):

Row: Main

Trigger: Run if; On Component Ok; On Component
Error.

Incoming links (from one component to this one):

Row: Main;

For further information regarding connections, see Talend Studio User
Guide
.

Global Variables

NB_LINE_ROWS: the number of rows memorized. This is an
After variable and it returns an integer.

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.

Scenario: Counting the occurrences of different ages

This scenario counts how many different ages there are within a group of 12 customers. In
this scenario, the customer data is generated at random.

Use_Case_tMemorizeRows1.png

This Job uses 5 components which are:

  • tRowGenerator: it generates 12 rows of customer data
    containing IDs, names and ages of the 12 customers.

  • tSortRow: it sorts the 12 rows according to the age
    data.

  • tMemorizeRows: it temporarily memorizes a specific
    number of incoming data rows at any give time and indexes the memorized data rows.

  • tJavaFlex: it compares the age values of the data
    memorized by the preceding component, counts the occurrences of different ages and
    displays these ages in the Run view.

  • tJava: it displays the number of occurrences of
    different ages.

To replicate this scenario, proceed as follows:

Dropping and linking the components

  1. Drop tRowGenerator, tSortRow, tMemorizeRows, tJavaFlex and tJava on the
    design workspace.

  2. Connect tRowGenerator to tSortRow using the Row > Main link.

  3. Do the same to link together tSortRow, tMemorizeRows and tJavaFlex
    using the Row > Main
    link.

  4. Connect tRowGenerator to tJava using the Trigger > OnSubjobOk link.

Configuring the components

Configuring the tRowGenerator component

  1. Double click the tRowGenerator component to open
    the its editor.

    Use_Case_tMemorizeRows2.png
  2. In this editor, click the plus button three times to add three columns and name them
    as: id, name, age.

  3. In the Type column, select Integer for id and age.

  4. In the Length column, enter 50
    for name.

  5. In the Functions column, select random for id and
    age, then select getFirstName for
    name.

  6. In the field of Number of Rows for RowGenerator,
    type in 12.

  7. In the Column column, click
    age to open its corresponding Function
    parameters
    view in the lower part of this editor.

    Use_Case_tMemorizeRows3.png

    In the Value column of the Function parameters view, type in the minimum age and maximum age that
    will be generated for the 12 customers. In this example, they are 10 and 25.

Configuring the tSortRow component

  1. Double click tSortRow to open its Component view.

    Use_Case_tMemorizeRows4.png
  2. In the Criteria table, click the plus button to add
    one row.

  3. In the Schema column column, select the data column
    you want to base the sorting operation on. In this example, select
    age as it is the ages that should be compared and counted.

  4. In the Sort num or alpha column, select the type of
    the sorting operation. In this example, select num,
    that is numerical, as age is integer.

  5. In the Order asc or desc column, select desc as the sorting order for this scenario.

Configuring the tMemorizeRows component

  1. Double click tMemorizeRows to open its Component view.

    Use_Case_tMemorizeRows5.png
  2. In the Row count to memorize field, type in the
    maximum number of rows to be memorized at any given time. As you need to compare ages of
    two customers for each time, enter 2. Thus, this component
    memorizes two rows at maximum at any given moment and always indexes the newly incoming
    row as 0 and the previously incoming row as 1.

  3. In the Memorize column of the Columns to memorize table, select the check box(es) to determine the
    column(s) to be memorized. In this example, select the check box corresponding to
    age.

Configuring the tJavaFlex and tJava components

  1. Double click tJavaFlex to open its Component view.

    Use_Case_tMemorizeRows6.png
  2. In the Start code area, enter the Java code that
    will be called during the initialization phase. In this example, type in int
    count=0;
    in order to declare a variable count and assign
    the value 0 to it.

  3. In the Main code area, enter the Java code to be
    applied to each row in the data flow. In this scenario, type in

    This
    code compares two ages memorized by tMemorizeRows each
    time and count one change every time when the ages are found different. Then this code
    displays the ages that have been indexed as 0 by tMemorizeRows.

  4. In the End code area, enter the Java code that will
    be called during the closing phase. In this example, type in
    globalMap.put("count", count); to output the count result.

  5. Double click tJava to open its Component view.

    Use_Case_tMemorizeRows7.png
  6. In the Code area, type in the code
    System.out.println("Different ages: "+globalMap.get("count")); to
    retrieve the count result.

Saving and executing the Job

  1. Press Ctrl+S to save your Job.

  2. Press F6, or click Run
    on the Run console to execute the
    Job.

    Use_Case_tMemorizeRows8.png

In the console, you can read that there are 10 different ages within the group of 12
customers.


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