# tRedshiftConfiguration properties for Apache Spark Streaming

These properties are used to configure tRedshiftConfiguration running in the Spark Streaming Job framework.

The Spark Streaming tRedshiftConfiguration component belongs to the Storage and the Databases families.

This component is available in Talend Real Time Big Data Platform and Talend Data Fabric.

## Basic settings

| Property type | Either Built-In or Repository.<br><br><br>Built-In: No property data stored centrally.<br><br><br>Repository: Select the repository file where the<br>properties are stored. |
| --- | --- |
| Host | Enter the endpoint of the database you need to connect to in<br>Redshift. |
| Port | Enter the port number of the database you need to connect to in<br>Redshift.<br><br>The related information can be found in the Cluster Database<br>Properties area in the Web console of your Redshift.<br><br>For further information, see [Managing clusters console](http://docs.aws.amazon.com/redshift/latest/mgmt/managing-clusters-console.html). |
| Username and Password | Enter the authentication information to the Redshift database you<br>need to connect to.<br><br>To enter the password, click the [...] button next to the<br>password field, and then in the pop-up dialog box enter the password between double quotes<br>and click OK to save the settings. |
| Database | Enter the name of the database you need to connect to in<br>Redshift.<br><br>The related information can be found in the Cluster Database<br>Properties area in the Web console of your Redshift.<br><br>For further information, see [Managing clusters console](http://docs.aws.amazon.com/redshift/latest/mgmt/managing-clusters-console.html). |
| Schema | Enter the name of the database schema to be used in Redshift. The<br>default schema is called *PUBLIC*.<br><br>A schema in terms of Redshift is similar to a operating system<br>directory. For further information about a Redshift schema, see [Schemas](http://docs.aws.amazon.com/redshift/latest/dg/r_Schemas_and_tables.html). |
| Additional JDBC 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. |
| S3 configuration | Select the tS3Configuration component from which you want Spark to use the<br>configuration details to connect to S3.<br><br>You need drop the tS3Configuration component to be used alongside<br>tRedshiftConfiguration in<br>the same Job so that this tS3Configuration is displayed on the S3 configuration list. |
| S3 temp path | Enter the location in S3 in which the data to be<br>transferred from or to Redshift is temporarily stored.<br><br>This path is independent of the temporary path you need<br>to set in the Basic settings<br>tab of tS3Configuration. |

## Advanced settings

| Connection pool | In this area, you configure, for each Spark executor, the connection pool used to control<br>the number of connections that stay open simultaneously. The default values given to the<br>following connection pool parameters are good enough for most use cases.<br><br><ul> <li> <p> <span>Max total number of connections</span>: enter the maximum number            of connections (idle or active) that are allowed to stay open simultaneously.</p> <p>The default number is <em>8</em>. If you enter <em>-1</em>, you allow unlimited number of open connections at the same                time.</p> </li> <li> <p> <span>Max waiting time (ms)</span>: enter the maximum amount of time                    at the end of which the response to a demand for using a connection should be returned by                    the connection pool. By default, it is -1, that is to say, infinite.</p> </li> <li> <p> <span>Min number of idle connections</span>: enter the minimum number                        of idle connections (connections not used) maintained in the connection pool.</p> </li> <li> <p> <span>Max number of idle connections</span>: enter the maximum number                            of idle connections (connections not used) maintained in the connection pool.</p> </li> </ul> |
| --- | --- |
| Evict connections | Select this check box to define criteria to destroy connections in the connection pool. The<br>following fields are displayed once you have selected it.<br><br><ul> <li> <p> <span>Time between two eviction runs</span>: enter the time interval                                    (in milliseconds) at the end of which the component checks the status of the connections and                                    destroys the idle ones.</p> </li> <li> <p> <span>Min idle time for a connection to be eligible to                                            eviction</span>: enter the time interval (in milliseconds) at the end of which the idle                                        connections are destroyed.</p> </li> <li> <p> <span>Soft min idle time for a connection to be eligible to                                                eviction</span>: this parameter works the same way as <span>Min idle                                                    time for a connection to be eligible to eviction</span> but it keeps the minimum number                                            of idle connections, the number you define in the <span>Min number of idle                                                connections</span> field.</p> </li> </ul> |

## Usage

| **Usage rule** | This component is used with no need to be connected to other components.<br><br>You need to drop tRedshiftConfiguration alongside the other Redshift related Subjobs to be run<br>in the same Job so that the configuration is used by the whole Job at runtime.<br><br>Since Redshift uses S3 to store temporary data, you need<br>to drop a tS3Configuration<br>component alongside tRedshiftConfiguration in the same Job so that the S3 configuration<br>is used by the whole Job at runtime.<br><br>This component, along with the Spark Streaming component Palette it belongs to, appears<br>only when you are creating a Spark Streaming Job.<br><br>Note that in this documentation, unless otherwise explicitly stated, a scenario presents<br>only Standard Jobs, that is to say traditional<br>Talend<br>data<br>integration Jobs. |
| --- | --- |
| Spark Connection | In the Spark<br>Configuration tab in the Run<br>view, define the connection to a given Spark cluster for the whole Job. In<br>addition, since the Job expects its dependent jar files for execution, you must<br>specify the directory in the file system to which these jar files are<br>transferred so that Spark can access these files:<br><br><ul> <li> <div> <span>Yarn mode</span> (Yarn client or Yarn cluster):<ul> <li> <p>When using Google Dataproc, specify a bucket in the                                            <span>Google Storage staging bucket</span>                                        field in the <span>Spark configuration</span>                                        tab.</p> </li> <li> <p>When using HDInsight, specify the blob to be used for Job                                        deployment in the <span>Windows Azure Storage                                            configuration</span> area in the <span>Spark                                            configuration</span> tab.</p> </li> <li>When using Altus, specify the S3 bucket or the Azure                                    Data Lake Storage for Job deployment in the <span>Spark                                        configuration</span> tab.</li> <li>When using Qubole, add a                                        <span>tS3Configuration</span> to your Job to write                                    your actual business data in the S3 system with Qubole. Without                                        <span>tS3Configuration</span>, this business data is                                    written in the Qubole HDFS system and destroyed once you shut                                    down your cluster.</li> <li> <p>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 <span></span>.</p> </li> </ul> </div> </li> <li> <p> <span>Standalone mode</span>: use the                            configuration component corresponding to the file system your cluster is                            using, such as <span>tHDFSConfiguration</span> or <span>tS3Configuration</span>.</p> <p>If you are using Databricks without any configuration component present                            in your Job, your business data is written directly in DBFS (Databricks                            Filesystem).</p> </li> </ul><br><br>This connection is effective on a per-Job basis. |