July 30, 2023

tDynamoDBInput – Docs for ESB 7.x

tDynamoDBInput

Retrieves data from an Amazon DynamoDB table and sends them to the component that
follows for transformation.

Depending on the Talend
product you are using, this component can be used in one, some or all of the following
Job frameworks:

tDynamoDBInput Standard properties

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

The Standard
tDynamoDBInput 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

Access Key

Enter the access key ID that uniquely identifies an AWS
Account. For further information about how to get your Access Key and Secret Key,
see Getting Your AWS Access
Keys
.

Secret Key

Enter the secret access key, constituting the security
credentials in combination with the access Key.

To enter the secret key, click the […] button next to
the secret key field, and then in the pop-up dialog box enter the password between double
quotes and click OK to save the settings.

Inherit credentials from AWS role

Select this check box to leverage the instance profile
credentials. These credentials can be used on Amazon EC2 instances, and are delivered
through the Amazon EC2 metadata service. To use this option, your Job must be running
within Amazon EC2 or other services that can leverage IAM Roles for access to resources.
For more information, see Using an IAM Role to Grant Permissions to
Applications Running on Amazon EC2 Instances
.

Assume role

If you temporarily need some access permissions associated
to an AWS IAM role that is not granted to your user account, select this check box to
assume that role. Then specify the values for the following parameters to create a new
assumed role session.

Use End Point

Select this check box and in the Server Url field
displayed, specify the Web service URL of the DynamoDB database service.

Region

Specify the AWS region by selecting a region name from the
list or entering a region between double quotation marks (e.g. “us-east-1”) in the list. For more information about the AWS
Region, see Regions and Endpoints.

Action

Select the operation to be performed from the drop-down list, either
Query or Scan. For more information, see Query and Scan Operations
in DynamoDB
.

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.

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

 

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.

If a column stores JSON documents, select JSON from the DB
Type
drop-down list.

Table Name

Specify the name of the table to be queried or scanned.

Use advanced key condition expression

Select this check box and in the Advanced key
condition expression
field displayed, specify the key
condition expressions used to determine the items to be read from the
table or index.

Key condition expression

Specify the key condition expressions used to determine the items to
be read. Click the [+] button to add as
many rows as needed, each row for a key condition expression, and set
the following attributes for each expression:

  • Key Column: Enter the name of
    the key column.

  • Function: Select the function
    for the key condition expression.

  • Value1: Specify the value
    used in the key condition expression.

  • Value2: Specify the second
    value used in the key condition expression if needed, depending
    on the function you selected.

Note that only the items that meet all the key conditions defined in
this table can be returned.

This table is not available when the Use
advanced key condition expression
check box is
selected.

Use filter expression

Select this check box to use the filter expression for the query or
scan operation.

Use advanced filter expression

Select this check box and in the Advanced filter
expression
field displayed, specify the filter
expressions used to refine the data after it is queried or scanned and
before it is returned to you.

This check box is available when the Use filter
expression
check box is selected.

Filter expression

Specify the filter expressions used to refine the results returned to
you. Click the [+] button to add as
many rows as needed, each row for a filter expression, and set the
following attributes for each expression:

  • Column: Enter the name of the
    column used to refine the results.

  • Function: Select the function
    for the filter expression.

  • Value1: Specify the value
    used in the filter expression.

  • Value2: Specify the second
    value used in the filter expression if needed, depending on the
    function you selected.

Note that only the items that meet all the filter conditions defined
in this table can be returned.

This table is available when the Use filter
expression
check box is selected and the Use advanced filter expression check box is
cleared.

Value mapping

Specify the placeholders for the expression attribute values.

  • value: Enter the expression attribute
    value.

  • placeholder: Specify the placeholder for the
    corresponding value.

For more information, see Expression Attribute Values.

Name mapping

Specify the placeholders for the attribute names that conflict with
the DynamoDB reserved words.

  • name: Enter the name of the
    attribute that conflicts with a DynamoDB reserved word.

  • placeholder: Specify the
    placeholder for the corresonding attribute name.

For more information, see Expression Attribute Names.

Advanced settings

STS Endpoint

Select this check box and in the field displayed, specify the
AWS Security Token Service endpoint, for example, sts.amazonaws.com, where session credentials are retrieved from.

This check box is available only when the Assume role check box is selected.

tStatCatcher Statistics

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

Global Variables

Global Variables

NB_LINE: the number of rows processed. This is an After
variable and it returns an integer.

QUERY: the query statement being processed. This is a Flow
variable and it returns a string.

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 is usually used as a start component of a Job or
subJob and it always needs an output link.

Writing and extracting JSON documents from DynamoDB

Use tDynamoDBOutput to write a JSON document to a DynamoDB table and then use tDynamoDBInput to extract a child element of this JSON element.

Prerequisites:

  • A Talend Studio with Big Data
  • Your AWS credentials that have been granted the access to your Amazon DynamoDB.
The sample data to be used reads like
this:

This data has two columns: DeliverID and
EventPayLoad, seperated by a semicolon (;).
The JSON document itself is stored in the EventPayLoad column.

tDynamoDBInput_1.png

Designing the data flow around the DynamoDB components

Drop tFixedflowInput, tDynamoDBOutput,
tDynamoDBInput and tLogRow on the design space
of your Studio to create the Job.
  1. In the
    Integration
    perspective of the Studio, create an empty Standard Job from the
    Job Designs node in the Repository tree view.
  2. In the workspace, enter the name of the component to be used and select this
    component from the list that appears. In this scenario, the components are
    tFixedflowInput, tDynamoDBOutput,
    tDynamoDBInput and tLogRow.

    The tFixedFlowInput component is used to load the
    sample data into the data flow. In the real-world practice, use the input
    component specific to the data format or the source system to be used instead of
    tFixedFlowInput.
  3. Connect tFixedFlowInput to
    tDynamoDBOutput and connect
    tDynamoDBInput to tLogRow
    using the Row > Main link.
  4. Connect tFixedFlowInput to
    tDynamoDBInput using the Trigger > On Subjob Ok link.

Writing the sample JSON documents to DynamoDB

Configure tFixedFlowInput to load the sample data in the data flow and configure tDynamoDBOutput to write this data in a DynamoDB table.
  1. Double-click tFixedFlowInput in its
    Component view.

    tDynamoDBInput_2.png

  2. Click the button next to Edit
    schema
    to open the schema editor.

    tDynamoDBInput_3.png

  3. Click the + button twice to add two rows, each
    representing a column of the sample data, and in the
    Column column, name these columns to
    DeliveryId and EventPayload,
    respectively.
  4. On the row for the DeliveryId column, select the check
    box in the Key column to use this
    DeliveryID column as the partition key column of the
    DynamoDB table to be used. A DynamoDB table requires a partition key
    column.
  5. Click OK to validate these changes and once prompted,
    accept the propagation of the schema to the connected component,
    tDynamoDBOutput.
  6. In the Mode area, select the Use Inline
    content
    radio box and enter the sample data in the field that is
    displayed:

  7. Double-click tDynamoDBOutput to open its
    Component view.

    tDynamoDBInput_4.png
  8. Click the button next to Edit schema to open the schema editor. This
    component should have retrieved the schema from
    tFixedFlowInput.

    tDynamoDBInput_5.png

  9. In the DB Type column, select
    JSON for the EventPayload
    column, as this is the column in which the JSON documents are stored.
  10. In the Access key and Secret key
    fields, enter the credentials of the AWS account to be used to access your
    DynamoDB database.
  11. From the Region drop-down list, select the AWS region to
    be used. If you do not know which region to select, ask the administrator of
    your AWS system for more information.
  12. From the Action on table drop-down list, select
    Drop table is exists and create.
  13. From the Action on data drop-down list, select
    Insert.
  14. In the Table name field, enter the name to be used for
    the DynamoDB table to be created.
  15. In the Partition Key field, enter the name of the column
    to be used to provide parition keys. In this example, it is
    DeliveryId.

Extracting a JSON document using advanced filters

Configure tDynamoDBInput to use an advanced filter to
read a JSON document from DynamoDB and use tLogRow to output this
document in the console of the Studio.
  1. Double-click tDynamoDBInput to open its
    Component view.

    tDynamoDBInput_6.png

  2. Click the button next to Edit schema to open the schema editor.

    tDynamoDBInput_7.png

  3. Click the + button twice to add two rows, each
    representing a column of the sample data, and in the
    Column column, name these columns to
    DeliveryId and EventPayload,
    respectively.
  4. On the row for the DeliveryId column, select the check
    box in the Key column to use this
    DeliveryID column as the partition key column of the
    DynamoDB table to be used. A DynamoDB table requires a partition key
    column.
  5. In the DB Type column, select JSON for the EventPayload column, as this is the column in which the JSON
    documents are stored.
  6. In the Access key and Secret key fields, enter the credentials of the
    AWS account to be used to access your DynamoDB database.
  7. From the Region drop-down list, select
    the same region as you selected in the previous steps for
    tDynamoDBOutput.
  8. From the Action drop-down list, select
    Scan.
  9. In the Table Name field, enter the name of the DynamoDB
    table to be created by tDynamoDBOutput.
  10. Select the Use filter expression check box and then the
    Use advanced filter expression check box.
  11. In the Advanced filter expression field, enter the
    filter to be used to select JSON documents.

    The part on the left of the equals sign reflects the structure within a JSON document of the
    sample data, in the EventPayload column. The purpose
    is to use the value of deliveryCode element to filter
    the document to be read.

    You need to define the :value placeholder in the
    Value mapping table.

  12. Under the Value mapping table, click the
    + button to add one row and do the following:

    1. In the value column, enter the value of the JSON
      element to be used as a filter.

      In this example, this element is deliveryCode
      and you need to extract the JSON document in which the value of the
      deliveryCode element is
      261. As this value is a string, enter
      261 within double quotation marks.

      If this value is an integer, do not use any quotation marks.

    2. In the Placeholder column, enter the name of the
      placeholder to be defined, without any quoation marks. In this example,
      it is :value, as you have put in the
      Advanced filter expression.

      A placeholder name must start with a colon (:).
  13. Double-click tLogRow to open its
    Component view and select the
    Table radio box to display the extracted data in a
    table in the console of the Studio.
  14. Press Ctrl+S to save the Job and press
    F6 to run it.
Once done, the retrieved JSON document is displayed in the console of the
Run view of the Studio.

tDynamoDBInput_8.png
In the created DynamoDB table, you can see the both of the sample JSON documents.

tDynamoDBInput_9.png

tDynamoDBInput properties for Apache Spark Batch

These properties are used to configure tDynamoDBInput running in the Spark Batch Job framework.

The Spark Batch
tDynamoDBInput component belongs to the Databases family.

The component in this framework is available in all subscription-based Talend products with Big Data
and 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.

Access
Key

Enter the access key ID that uniquely identifies an AWS
Account. For further information about how to get your Access Key and Secret Key,
see Getting Your AWS Access
Keys
.

Secret
Key

Enter the secret access key, constituting the security
credentials in combination with the access Key.

To enter the secret key, click the […] button next to
the secret key field, and then in the pop-up dialog box enter the password between double
quotes and click OK to save the settings.

Region

Specify the AWS region by selecting a region name from the
list or entering a region between double quotation marks (e.g. “us-east-1”) in the list. For more information about the AWS
Region, see Regions and Endpoints.

Use End Point

Select this check box and in the Server Url field
displayed, specify the Web service URL of the DynamoDB database service.

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.

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

 

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.

Table Name

Specify the name of the table from which you need to read data.

Advanced settings

Number of scan segments

Enter, without using quotation marks, the number of segments for the parallel scan.

Number of partitions

Enter, without using quotation marks, the maximum number of partitions into which you want
Spark to split the input data so that the Spark executors can process the data in parallel.
It is recommended to put a number less or equal to the number of segments.

Throughput read percent

Enter, without using quotation marks, the percentage (expressed in decimal) to be used of
the read capacity pre-defined in Amazon. The rest of this capacity is spared for other
non-
Talend
applications. For further information about this read
capacity, see Provision throughput for read.

Advanced settings

Add properties to define extra operations you need tDynamoDBInput to perform when reading data.

This table is present for future evolution of the component and using it requires the
high-level knowledge of DynamoDB development. Currently, there are no interesting user
configurable properties.

Usage

Usage rule

This component is used as a start component and requires an output
link..

This component should use a tDynamoDBConfiguration
component present in the same Job to connect to a DynamoDB database. You need to drop a
tDynamoDBConfiguration component alongside this
component and configure the Basic settings of this
component to use tDynamoDBConfiguration.

This component, along with the Spark Batch component Palette it belongs to,
appears only when you are creating a Spark Batch Job.

Note that in this documentation, unless otherwise explicitly stated, a
scenario presents only Standard Jobs, that is to
say traditional
Talend
data integration Jobs.

Spark Connection

In the Spark
Configuration
tab in the Run
view, define the connection to a given Spark cluster for the whole Job. In
addition, since the Job expects its dependent jar files for execution, you must
specify the directory in the file system to which these jar files are
transferred so that Spark can access these files:

  • Yarn mode (Yarn client or Yarn cluster):

    • When using Google Dataproc, specify a bucket in the
      Google Storage staging bucket
      field in the Spark configuration
      tab.

    • When using HDInsight, specify the blob to be used for Job
      deployment in the Windows Azure Storage
      configuration
      area in the Spark
      configuration
      tab.

    • When using Altus, specify the S3 bucket or the Azure
      Data Lake Storage for Job deployment in the Spark
      configuration
      tab.
    • When using Qubole, add a
      tS3Configuration to your Job to write
      your actual business data in the S3 system with Qubole. Without
      tS3Configuration, this business data is
      written in the Qubole HDFS system and destroyed once you shut
      down your cluster.
    • When using on-premise
      distributions, use the configuration component corresponding
      to the file system your cluster is using. Typically, this
      system is HDFS and so use tHDFSConfiguration.

  • Standalone mode: use the
    configuration component corresponding to the file system your cluster is
    using, such as tHDFSConfiguration or
    tS3Configuration.

    If you are using Databricks without any configuration component present
    in your Job, your business data is written directly in DBFS (Databricks
    Filesystem).

This connection is effective on a per-Job basis.

Related scenarios

For a scenario about how to use the same type of component in a Spark Batch Job, see Writing and reading data from MongoDB using a Spark Batch Job.


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