# tRedshiftBulkExec

Loads data into Amazon Redshift from Amazon S3, Amazon EMR cluster, Amazon DynamoDB, or remote hosts.

The tRedshiftOutputBulk and tRedshiftBulkExec components can be used together in a two step process to load data to Amazon Redshift from a delimited/CSV file on Amazon S3. In the first step, a delimited/CSV file is generated. In the second step, this file is used in the INSERT statement used to feed Amazon Redshift. These two steps are fused together in the tRedshiftOutputBulkExec component. The advantage of using two separate steps is that the data can be transformed before it is loaded to Amazon Redshift.

tRedshiftBulkExec loads data into an Amazon Redshift table from an Amazon DynamoDB table or from data files located in an Amazon S3 bucket, an Amazon EMR cluster, or a remote host that is accessed using an SSH connection.

## tRedshiftBulkExec Standard properties

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

The Standard tRedshiftBulkExec component belongs to the Cloud and the Databases families.

The component in this framework is available in all Talend products.

Information noteNote: This component is a specific version of a dynamic database connector. The properties related to database settings vary depending on your database type selection. For more information about dynamic database connectors, see [DB Generic components](https://help.qlik.com/talend/r/en-US/8.0/components/db-generic/db-generic-component).

## Basic settings

| Properties | Description |
| --- | --- |
| Database | Select the desired database type from the list and click<br>Apply. |
| Property<br>Type | Either Built-In or Repository.<br><br><ul> <li> <p> <span>Built-In</span>: No property data stored centrally.</p> </li> <li> <p> <span>Repository</span>: Select the repository file where the            properties are stored.</p> </li> </ul> |
| Use an existing<br>connection | Select this check box and in the Component<br>List drop-down list, select the desired connection component to<br>reuse the connection details you already defined. |
| Driver version | Select the Redshift driver version to be used: Driver v1 or<br>Driver v2.<br><br>Information noteNote: This option is available only when you have installed the 8.0.1-R2022-04<br>Talend Studio<br>Monthly update or a later one delivered by Talend. For more information, check with your administrator. |
| Host | Type in the IP<br>address or hostname of the database server. |
| Port | Type in the<br>listening port number of the database server. |
| Database | Type in the name of<br>the database. |
| Schema | Type in the name of<br>the schema. |
| Username and Password | Type in the database<br>user authentication data.<br><br>To enter the password, click the [...] button<br>next to the password field, enter the password in double quotes in the pop-up dialog box,<br>and click OK to save the settings. |
| Use String JDBC parameters | Set JDBC properties in a string. If you select this option, enter your JDBC parameter string in<br>the Additional JDBC Parameters field; otherwise, enter JDBC<br>properties and property values in the Additional JDBC<br>Parameters table.<br><br>This option is not available if Driver v1 is selected from<br>the Driver version drop-down list.<br><br>Information noteNote: This option is available only when you have installed the 8.0.1-R2022-04<br>Talend Studio<br>Monthly update or a later one delivered by Talend. For more information, check with your administrator. |
| Additional JDBC<br>Parameters | Specify additional JDBC properties for the connection you are creating. The<br>properties are separated by ampersand & and each property is a key-value pair. For<br>example, *ssl=true &<br>sslfactory=com.amazon.redshift.ssl.NonValidatingFactory*, which means the<br>connection will be created using SSL.<br><br>This field is not available if Driver v2 is selected<br>from the Driver version drop-down list and the<br>Use String JDBC parameters option is not<br>selected. |
| Additional JDBC Parameters (table) | Specify JDBC properties in table rows.<br><br>To specify a JDBC property, add a row in the table by clicking the plus button on<br>the bottom of this table, enter the property name in the<br>Key column, and then enter the property value in the<br>Value column.<br><br>This table is available when Driver v2 is selected from the<br>Driver version drop-down list and the Use<br>String JDBC parameters option is not selected.<br><br>Information noteNote: This option is available only when you have installed the 8.0.1-R2022-04<br>Talend Studio<br>Monthly update or a later one delivered by Talend. For more information, check with your administrator. |
| Table Name | Specify the name of<br>the table to be written. Note that only one table can be written at a<br>time. |
| Action on<br>table | On the table<br>defined, you can perform one of the following operations:<br><br><ul> <li> <p> <span>None</span>: No operation is carried out.</p> </li> <li> <p> <span>Drop and create                                        table</span>: The table is removed and created                                    again.</p> </li> <li> <p> <span>Create                                        table</span>: The table does not exist and gets                                    created.</p> </li> <li> <p> <span>Create table if                                        not exists</span>: The table is created if it does not                                    exist.</p> </li> <li> <p> <span>Drop table if                                        exists and create</span>: The table is removed if it                                    already exists and created again.</p> </li> <li> <p> <span>Clear                                        table</span>: The table content is deleted. You have                                    the possibility to rollback the operation.</p> </li> </ul> |
| Schema and Edit<br>schema | A schema is a row description. It defines the number of fields<br>(columns) to be processed and passed on to the next component. When you create a Spark<br>Job, avoid the reserved word line when naming the<br>fields.<br><br><ul> <li> <p> <span>Built-In</span>: You create and store the schema locally for this component                only.</p> </li> <li> <p> <span>Repository</span>: You have already created the schema and stored it in the                Repository. You can reuse it in various projects and Job designs.</p> </li> </ul><br><br>Click Edit<br>schema to make changes to the schema. If the current schema is of the Repository type, three options are available:<br><br><ul> <li> <p> <span>View schema</span>: choose this                option to view the schema only.</p> </li> <li> <p> <span>Change to built-in property</span>:                choose this option to change the schema to <span>Built-in</span> for local changes.</p> </li> <li> <p> <span>Update repository connection</span>:                choose this option to change the schema stored in the repository and decide whether                to propagate the changes to all the Jobs upon completion.</p> <p>If you just want to                propagate the changes to the current Job, you can select <span>No</span> upon completion and choose this schema metadata                again in the <span>Repository Content</span>                window.</p> </li> </ul> |
| Data source<br>type | Select the<br>location of the source data to be loaded.<br><br><ul> <li> <p> <span>S3</span>:                                    load data from a file in an Amazon S3 bucket.</p> </li> <li> <p> <span>EMR</span>: load data from an Amazon EMR cluster.</p> </li> <li> <p> <span>DynamoDB</span>: load data from an existing DynamoDB                                    table.</p> </li> <li> <p> <span>Remote                                        host</span>: load data from one or more remote hosts,                                    such as Amazon Elastic Compute Cloud (Amazon EC2) instances or                                    other computers.</p> </li> </ul><br><br>For more information, see [Data<br>Sources](http://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-source.html). |
| Use an existing S3<br>connection | Select this check box and in the Component<br>List drop-down list, select the desired connection component to<br>reuse the connection details you already defined.<br><br>This option is available when S3 is selected from the Data source type drop-down<br>list.<br><br>Information noteNote: This component works with static credentials only. That is, it does not<br>inherit credentials from AWS role. The component will generate an error in<br>Job execution if any option other than Static<br>Credentials is selected from the Credential<br>Provider drop-down list of the tS3Connection component that<br>creates the S3 connection. |
| Access Key/S3 Access Key | Specify the Access<br>Key ID that uniquely identifies an AWS account. For how to get your<br>Access Key and Access Secret Key, visit [Getting Your AWS<br>Access Keys](http://docs.aws.amazon.com/ses/latest/DeveloperGuide/get-aws-keys.html).<br><br>Information noteNote:<br><br><ul> <li>This option is not available if <span>Use an existing S3 connection</span>                                    is selected.</li> <li>This option appears as <span>S3 Access Key</span> if you select                                        <span>Remote host</span> from the                                        <span>Data source type</span>                                    drop-down list.</li> </ul> |
| Secret Key/S3 Secret Key | Specify the Secret<br>Access Key, constituting the security credentials in combination with<br>the Access Key.<br><br>To enter the secret key, click the [...]<br>button next to the secret key field, and then in the pop-up dialog box enter the password<br>between double quotes and click OK to save the<br>settings.<br><br>Information noteNote:<br><br><ul> <li>This option is not available if <span>Use an existing S3 connection</span>                                    is selected.</li> <li>This option appears as <span>S3 Secret Key</span> if you select                                        <span>Remote host</span> from the                                        <span>Data source type</span>                                    drop-down list.</li> </ul> |
| Assume<br>Role | Select this checkbox and specify the values for the<br>following parameters used to create a new assumed role session.<br><br><ul> <li> <p> <span>IAM Role ARNs chains</span>: a series of                                chained roles, which may belong to other accounts, that your cluster                                can assume to access resources. </p> <p>You can chain a maximum of 10 roles.</p> </li> <li> <p> <span>Role ARN</span>: the Amazon Resource Name                                (ARN) of the role to assume. </p> </li> </ul><br><br>This option is not available if Use an existing S3 connection is<br>selected.<br><br>For more information on IAM<br>Role ARNs chains, see [Authorizing Redshift service](https://docs.aws.amazon.com/redshift/latest/mgmt/authorizing-redshift-service.html). |
| Bucket/S3 bucket | Specify the name<br>of the Amazon S3 bucket in which the file is located.<br><br>This field is available only when<br>S3 or<br>Remote host<br>is selected from the Data<br>source type drop-down list.<br><br>Information noteNote: This field appears as Bucket if you select S3 from the Data source<br>type drop-down list; it appears as S3 bucket if you select Remote host from the drop-down<br>list.<br><br>The bucket and the Redshift database to be used<br>must be in the same region on Amazon. This could avoid the S3ServiceException errors known to<br>Amazon. For further information about these errors, see [S3ServiceException Errors](https://docs.aws.amazon.com/redshift/latest/dg/s3serviceexception-error.html). |
| Key | Specify the path<br>to the file that contains the data to be loaded.<br><br>This field is available only when S3 is selected from the<br>Data source<br>type drop-down list. |
| Cluster<br>id | Specify the ID of<br>the cluster that stores the data to be loaded.<br><br>This field is available only when EMR is selected from<br>the Data source<br>type drop-down list. |
| HDFS path | Specify the HDFS<br>file path that references the data file.<br><br>This field is available only when EMR is selected from<br>the Data source<br>type drop-down list. |
| Table | Specify the name<br>of the DynamoDB table that contains the data to be loaded.<br><br>This field is available only when<br>DynamoDB is<br>selected from the Data<br>source type drop-down list. |
| Read<br>ratio | Specify the<br>percentage of the DynamoDB table's provisioned throughput to use for the<br>data load.<br><br>This field is<br>available only when DynamoDB is selected from the Data source type<br>drop-down list. |
| SSH manifest<br>file | Specify the object<br>key for the SSH manifest file that provides the information used to open<br>SSH connections and execute remote commands.<br><br>This field is available only when Remote host is selected<br>from the Data source<br>type drop-down list. |

## Advanced settings

| Properties | Description |
| --- | --- |
| File type | Select the type of<br>the file that contains the data to be loaded.<br><br><ul> <li> <p> <span>Delimited file                                        or CSV</span>: a delimited/CSV file.</p> </li> <li> <p> <span>JSON</span>: a JSON file.</p> </li> <li> <p> <span>AVRO</span>: an Avro file.</p> </li> <li> <p> <span>Fixed                                        width</span>: a fixed-width file.</p> </li> <li> <p> <span>Apache Parquet</span>: an Apache Parquet file. This                                    option is available only when <span>S3</span> is selected from the <span>Data source type</span> drop-down list                                    in the <span>Basic settings</span>                                    view.</p> </li> </ul><br><br>This list is available when<br>S3,<br>EMR, or<br>Remote host<br>is selected from the Data<br>source type drop-down list. |
| Fields terminated<br>by | Enter the<br>character used to separate fields.<br><br>This field is available only when Delimited file or CSV<br>is selected from the File<br>type list. |
| Enclosed<br>by | Select the<br>character in which the fields are enclosed.<br><br>This list is available only when Delimited file or CSV<br>is selected from the File<br>type list. |
| JSON<br>mapping | Specify how to map<br>the data elements in the source file to the columns in the target table<br>on Amazon Redshift. The valid values are:<br><br><ul> <li> <p> <span>auto</span>: Map the data by matching object keys or                                    names in the source name/value pairs for a JSON file or field                                    names in the Avro schema for an Avro file to the names of                                    columns in the target table. The argument is case-sensitive and                                    must be enclosed in double quotation marks.</p> </li> <li> <p> <em>s3://jsonpaths_file</em>: Map the data using the named JSONPaths                                    file. The parameter must be an Amazon S3 object key that is                                    enclosed in double quotation marks and explicitly references a                                    single file, for example, <em>s3://mybucket/jsonpaths.txt</em>. For more information, see                                        <a href="http://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-format.html#copy-json-jsonpaths" target="_blank">Data                                        Format Parameters</a>.</p> </li> </ul><br><br>This field is available only when<br>JSON or<br>AVRO is<br>selected from the File<br>type list. |
| Fixed width<br>mapping | Enter a string<br>that specifies a user-defined column label and column width between<br>double quotation marks. The format of the string is:<br><br><br>ColumnLabel1:ColumnWidth1,ColumnLabel2:ColumnWidth2,....<br><br>Note that the column label in the<br>string has no relation to the table column name and it can be either a<br>text string or an integer. The order of the label/width pairs must match<br>the order of the table columns exactly.<br><br>This field is available only when Fixed width is selected<br>from the File<br>type list. |
| Compressed<br>by | Select this check<br>box and from the list displayed select the compression type of the<br>source file.<br><br>This check box is<br>available when S3, EMR, or Remote host is selected from the Data source type<br>drop-down list. |
| Decrypt | Select this check<br>box if the file is encrypted using Amazon S3 client-side encryption. In<br>the Encryption<br>key field displayed, specify the encryption key used to<br>encrypt the file. Note that only a base64 encoded AES 128-bit or AES<br>256-bit envelope key is supported. For more information, see [Loading Encrypted<br>Data Files from Amazon S3](http://docs.aws.amazon.com/redshift/latest/dg/c_loading-encrypted-files.html).<br><br>This check box is available when S3 is selected from<br>the Data source<br>type drop-down list and Use<br>an existing S3 connection is not selected in the<br>Basic settings<br>view. |
| Encoding | Select the<br>encoding type of the data to be loaded from the list.<br><br>This list is available when S3, EMR, or Remote host is<br>selected from the Data<br>source type drop-down list. |
| Date<br>format | Select one of the<br>following items from the list to specify the date format in the source<br>data:<br><br><ul> <li> <p> <span>NONE</span>: No date format is specified.</p> </li> <li> <p> <span>PATTERN</span>: Select this item and specify the date                                    format in the field displayed. The default date format is                                    YYYY-MM-DD.</p> </li> <li> <p> <span>AUTO</span>: Select this item if you want Amazon                                    Redshift to recognize and convert automatically the date                                    format.</p> </li> </ul> |
| Time<br>format | Select one of the<br>following items from the list to specify the time format in the source<br>data:<br><br><ul> <li> <p> <span>NONE</span>: No time format is specified.</p> </li> <li> <p> <span>PATTERN</span>: Select this item and specify the time                                    format in the field displayed. The default time format is                                    YYYY-MM-DD HH:MI:SS.</p> </li> <li> <p> <span>AUTO</span>: Select this item if you want Amazon                                    Redshift to recognize and convert automatically the time                                    format.</p> </li> <li> <p> <span>EPOCHSECS</span>: Select this item if the source data                                    is represented as epoch time, the number of seconds since Jan 1,                                    1970 00:00:00 UTC.</p> </li> <li> <p> <span>EPOCHMILLISECS</span>: Select this item if the source                                    data is represented as epoch time, the number of milliseconds                                    since Jan 1, 1970 00:00:00 UTC.</p> </li> </ul> |
| Settings | Click the<br>[+] button<br>below the table to specify more parameters for loading the data.<br><br><ul> <li> <p> <span>Parameter</span>: Click the cell and select a                                    parameter from the drop-down list.</p> </li> <li> <p> <span>Value</span>: Set the value for the corresponding                                    parameter. Note that you cannot set the value for a parameter                                    (such as <span>IGNOREBLANKLINES</span>) that does not need a                                    value.</p> </li> </ul><br><br>For more information about the<br>parameters, see http://docs.aws.amazon.com/redshift/latest/dg/r\_COPY.html. |
| JDBC<br>url | Select a way to access to an Amazon Redshift database from the<br>JDBC url drop-down list.<br><br><ul> <li> <span>Standard</span>: Use the          standard way to access the Redshift database.</li> <li> <span>SSO</span>: Use the IAM          Single Sign-ON (SSO) authentication way to access the Redshift Database. Before selecting          this option, ensure that the IAM role added to your Redshift cluster has appropriate          access rights and permissions to this cluster. You can ask the administrator of your AWS          services for more details.<p>This option is available only when <span>Use an existing connection</span> check box is not selected from            the <span>Basic settings</span>. </p> </li> </ul> |
| tStatCatcher<br>Statistics | Select this checkbox to gather the Job processing metadata at the Job level<br>as well as at each component level. |

## Global Variables

| Variables | Description |
| --- | --- |
| Global<br>Variables | ERROR\_MESSAGE: the error message generated by the<br>component when an error occurs. This is an After variable and it returns a string. This<br>variable functions only if the Die on error checkbox is<br>cleared, if the component has this checkbox.<br><br>A Flow variable functions during the execution of a component<br>while an After variable functions after the execution of the component.<br><br>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<br>it.<br><br>For more information about variables, see [Using contexts and variables](https://help.qlik.com/talend/r/en-US/8.0/studio-user-guide/contexts-and-variables). |

Information noteNote:

This component does not support the Row &gt; Reject link.

## Usage

| Usage guidance | Description |
| --- | --- |
| **Usage<br>rule** | The tRedshiftBulkExec<br>component supports loading data to Amazon Redshift from a delimited/CSV,<br>JSON, or fixed-width file on Amazon S3, but the tRedshiftOutputBulk<br>component now only supports generating and uploading a delimited/CSV<br>file to Amazon S3. When you need to load data from a JSON or fixed-width<br>file, you can use the tFileOutputJSON or tFileOutputPositional component<br>together with the tS3Put component instead of using the tRedshiftOutputBulk<br>component to generate and upload the file to Amazon S3. |
| Dynamic<br>settings | Click the [+] button to add a row in the table<br>and fill the Code field with a context<br>variable to choose your database connection dynamically from multiple<br>connections planned in your Job. This feature is useful when you need to<br>access database tables having the same data structure but in different<br>databases, especially when you are working in an environment where you<br>cannot change your Job settings, for example, when your Job has to be<br>deployed and executed independent of Talend Studio.<br><br>The Dynamic settings table is<br>available only when the Use an existing<br>connection check box is selected in the Basic settings view. Once a dynamic parameter is<br>defined, the Component List box in the<br>Basic settings view becomes unusable.<br><br>For examples on using dynamic parameters, see [Reading data from databases through<br>context-based dynamic connections](https://help.qlik.com/talend/r/en-US/8.0/components/defining-context-groups/reading-data-from-databases-through-context-based-dynamic-connections) and [Reading data from different MySQL databases<br>using dynamically loaded connection parameters](https://help.qlik.com/talend/r/en-US/8.0/components/context/reading-data-from-different-mysql-databases-using-dynamically-loaded-connection-parameters). For more information on<br>Dynamic settings and context variables, see<br>[Dynamic schema](https://help.qlik.com/talend/r/en-US/8.0/studio-user-guide/dynamic-schema) and [Creating a context group and define context<br>variables in it](https://help.qlik.com/talend/r/en-US/8.0/studio-user-guide/creating-context-group-and-define-context-variables-in-it). |

**Related concepts**

* [Loading/unloading data to/from Amazon S3](https://help.qlik.com/talend/en-US/components/8.0/amazon-redshift/tredshiftinput-tredshiftbulkexec-ts3get-loading-unloading-data-to-from-amazon-s3-standard-component-this)