In this article

Overview

Use this account type to connect Redshift Snaps with data sources that use Redshift Cross-Account IAM Role Account. The Redshift Snaps support both Redshift Cluster and Redshift Serverless accounts.

Prerequisites

Access to the following folders:

Limitations

Known Issues

None.

Account Settings

image-20240215-121014.png

Field Name

Field Type

Description

Label*

Default Value: None
Example: Redshift Cross-Account IAM Role Account

String

Specify a unique label for the account.

JDBC Driver Class

Default Value: com.amazon.redshift.jdbc42.Driver
Example: org.postgresql.Driver

String/Expression

Name of the JBDC driver class to use. By default, the com.amazon.redshift.jdbc42.Driver class is bundled with the Snap Pack.

JDBC JARs

Default Value: N/A

String/Expression

Specify a list of JDBC JAR files to be loaded.

note

You can upload the Redshift driver(s) that can override the default com.amazon.redshift.jdbc42.Driver.

You can upload the Redshift driver(s) that can override the default com.amazon.redshift.jdbc42.Driver.

JDBC URL

Default Value: N/A
Example: jdbc:redshift://hostname:port/database

String/Expression

Enter the URL of the JDBC database.

Account properties

Enter in the information to create a connection to the database.

Endpoint*

Default Value: N/A
Exampleexamplecluster.c8dwbwr9.us-east-1.redshift.endpoint.com

String/Expression

Enter the server's address to connect to.

Port Number*

Default Value5439
Example5439

Integer/Expression

Enter the database server's port to connect.

Database name*

Default Value: N/A
Examplesnaplogic

String/Expression

Enter the database name to connect.

Username

Default Value: N/A
Exampleredshiftadmin

String/Expression

Enter the username to connect to the database. Username will be used as the default username when retrieving connections. The username must be valid in order to set up the data source.

Password

Default Value: N/A
Examplep@$$20d*

String/Expression

Enter the password used to connect to the data source. Password will be used as the default password when retrieving connections. The password must be valid in order to set up the data source.

S3 Bucket

Default Value: N/A
Examplesl-bucket-ca

String/Expression

Enter the external S3 Bucket name residing in an external AWS account, to use for staging data onto Redshift.

note

This field is required when using Redshift Bulk Load, Redshift Bulk Upsert, Redshift S3 Upsert, and Redshift Unload Snaps. 

This field is required when using Redshift Bulk Load, Redshift Bulk Upsert, Redshift S3 Upsert, and Redshift Unload Snaps. 

S3 Folder

Default Value: N/A
Examples3://bucket-name/folder-name

String/Expression

Enter the relative path to a folder in S3 Bucket. This is used as a root folder for staging data onto Redshift.

S3 Bucket Region

Default Value: N/A
Exampleus-east-2

String/Expression

Enter the name of the region where the S3 bucket belongs.

note

This field is required if the Redshift cluster and the S3 bucket are in the different regions.

This field is required if the Redshift cluster and the S3 bucket are in the different regions.

S3 Bucket Write IAM Role ARN

Default Value: N/A
Examplearn:aws:iam::123456789012:role/S3Access

String/Expression

Enter the IAM role to write to the S3 bucket which resides in either the same or different AWS account.

note
  • You need to have write and delete permissions in this role.

  • This field is required when using Bulk load Snap (with input view data source), Bulk Upsert Snap, and Unload Snap.

  • You need to have write and delete permissions in this role.

  • This field is required when using Bulk load Snap (with input view data source), Bulk Upsert Snap, and Unload Snap.

External ID

Default Value: N/A
Example7609567

String/Expression

Enter an optional external ID which is required by the role. This field is applicable only for streaming bulk load.

IAM properties (Redshift Cluster)

Specify the IAM properties information for Redshift to communicate with IAM.

AWS account ID

Default Value: N/A
ExampleAWS-1

String/Expression

Enter the ID of the Amazon Web Services account to be used for performing bulk load operation.

note

This field is required when using Redshift Bulk Load, Redshift Bulk Upsert, Redshift S3 Upsert, and Redshift Unload Snaps if the IAM role checkbox is selected. 

This field is required when using Redshift Bulk Load, Redshift Bulk Upsert, Redshift S3 Upsert, and Redshift Unload Snaps if the IAM role checkbox is selected. 

IAM role name

Default Value: N/A
Example: rolex

String/Expression

Enter the name of the IAM role that has been assigned to the Redshift cluster to access the S3 bucket provided above.

note

This field is required when using Redshift Bulk Load, Redshift Bulk Upsert, Redshift S3 Upsert, and Redshift Unload Snaps if the IAM role checkbox is selected. 

This field is required when using Redshift Bulk Load, Redshift Bulk Upsert, Redshift S3 Upsert, and Redshift Unload Snaps if the IAM role checkbox is selected. 

S3 Bucket Read IAM Role

Specify the information required to make Redshift work with IAM instead of Access-key ID and Secret.

IAM Role ARN

Default Value: N/A
Example: arn:aws:iam::123456789012:role/S3Access

String/Expression

Enter the ARN of the IAM role set on the above S3 bucket.

note

This field is required only if the S3 bucket is in another AWS account. If S3 bucket is in another AWS account, specify the Cross-Account IAM role to read the S3 bucket. Else, leave this field blank and ensure the IAM role assigned to the Redshift Cluster has permission to read from the S3 bucket. For more information, see Setup for Redshift Cross Account IAM Role.

This field is required only if the S3 bucket is in another AWS account. If S3 bucket is in another AWS account, specify the Cross-Account IAM role to read the S3 bucket. Else, leave this field blank and ensure the IAM role assigned to the Redshift Cluster has permission to read from the S3 bucket. For more information, see Setup for Redshift Cross Account IAM Role.

Advanced properties

Specify advanced properties to support this account.

Auto commit

Default ValueSelected

Checkbox

Select this check box to enable the Snap to commit offsets automatically as messages are consumed and sent to the output view.

Batch size*

Default Value50
Example50

Integer/Expression

Enter the number of statements to execute at a time. Select queries are not batched.

note

User-defined types are not supported if a JDBC driver with a version other than 11.2.0.4.0 is set.

User-defined types are not supported if a JDBC driver with a version other than 11.2.0.4.0 is set.

Fetch size*

Default Value:100
Example:100

Integer/Expression

Enter the number of rows to fetch at a time when executing a query.

note

User-defined typesare not supported if a JDBC driver with a version other than 11.2.0.4.0 is set.

User-defined typesare not supported if a JDBC driver with a version other than 11.2.0.4.0 is set.

Max pool size*

Default Value50
Example30

Integer/Expression

Enter the maximum number of connections a pool will maintain at a time.

note

Redshift Bulk Load/Bulk Upsert/S3 Upsert Snap requires a minimum of 2 connections per Snap in a pipeline. For example, if a pipeline has a Redshift Bulk Load Snap and an S3 Upsert Snap, then the pool size must be greater than or equal to 4 for successful execution.

Redshift Bulk Load/Bulk Upsert/S3 Upsert Snap requires a minimum of 2 connections per Snap in a pipeline. For example, if a pipeline has a Redshift Bulk Load Snap and an S3 Upsert Snap, then the pool size must be greater than or equal to 4 for successful execution.

Max life time*

Default Value30
Example10

Integer/Expression

Enter the maximum lifetime of a connection in the pool. Ensure that the value you enter is a few seconds shorter than any database or infrastructure-imposed connection time limit. A value of 0 indicates an infinite lifetime, subject to the Idle Timeout value. An in-use connection is never retired. Connections are removed only after they are closed.

Idle Timeout*

Default Value5
Example6

Integer/Expression

Enter the maximum amount of time a connection is allowed to sit idle in the pool. A value of 0 indicates that idle connections are never removed from the pool.

Checkout timeout*

Default Value:1000
Example800

Integer/Expression

Enter the number of milliseconds to wait for a connection to be available when the pool is exhausted.

note

If you provide 0, the Snap waits infinitely until the connection is available. Therefore, we recommend you not to specify 0 for Checkout Timeout.

If you provide 0, the Snap waits infinitely until the connection is available. Therefore, we recommend you not to specify 0 for Checkout Timeout.

URL Properties

Use this field set to define the URL properties associated with this account. This field set contains the following fields:

  • URL property name

  • URL property value

URL property name

Default Value: N/A
Example:

Integer/Expression

Enter the URL property name.

URL property value

Default Value: N/A
Example:

Integer/Expression

Enter the URL property value.

Account Encryption

Standard Encryption

If you are using Standard Encryption, the High sensitivity settings under Enhanced Encryption are followed.

Enhanced Encryption

If you have the Enhanced Account Encryption feature, the following describes which fields are encrypted for each sensitivity level selected per each account.

  • High: Password, S3 Access-key ID, S3 Secret key

  • Medium + High: Username, Password, S3 Access-key ID, S3 Secret key

  • Low + Medium + High: Endpoint, Database name, Username, Password, S3 Bucket, S3 Folder, S3 Access-key ID, S3 Secret key, URL property value

Troubleshooting

Error

Reason

Resolution

Error copying data from S3 to Redshift.

Redshift database user is unable to assume the IAM role.

If the Redshift cluster is in the same AWS account as the S3 bucket, remove the role ARN defined in the S3 Bucket Read IAM role field of the Redshift Cross Account and ensure the role attached to the Redshift cluster has the permission to read from the S3 bucket.


Related Content