Amazon AWS Redshift
This connector allows Turbine to execute SQL statements on AWS Redshift.
Asset Setup
This integration authenticates with AWS Redshift using the following input values:
- AWS Access Key ID: A long-term AWS access key ID with access to Redshift.
- AWS Secret Key ID: A long-term secret access key associated with the above AccessKey ID.
- Region Name: The AWS region.
- Role ARN: An ARN of an AWS IAM Role to assume.
Capabilities
This connector has the following capabilities:
- Execute Statement
- Get Statement Result
Obtaining AWS Credentials
To use this integration, you will need to have an AWS account and obtain the necessary AWS credentials. You can obtain these credentials by following the steps below:
- Log in to your AWS account and navigate to the IAM console.
- In the left navigation pane, click on the "Users" tab and select the user for which you want to create credentials.
- Click on the "Security credentials" tab, and then click on the "Create access key".
- Make sure to save the access key ID and secret access key in a secure location, as you will not be able to see the secret access key again after this step.
- If you want to use an AWS IAM Role, you will need to have the ARN of the role and an optional External ID, if one was specified by the AWS account administrator.
Notes
Temporary credentials - when connecting to your data warehouse, choose one of the following options:
- When connecting to a serverless workgroup, specify the workgroup name and database name. The database user name is derived from the IAM identity. For example, arn:iam::123456789012:user:foo has the database username IAM:foo. Also, permission to call the redshift-serverless:GetCredentials operation is required.
- When connecting to a cluster as an IAM identity, specify the cluster identifier and the database name. The database user name is derived from the IAM identity. For example, arn:iam::123456789012:user:foo has the database username IAM:foo. Also, permission to call the redshift:GetClusterCredentialsWithIAM operation is required.
- When connecting to a cluster as a database user, specify the cluster identifier, the database name, and the database user name. Also, permission to call the redshift:GetClusterCredentials operation is required.
Configurations
Asset
Authenticates using AWS credentials
Configuration Parameters
Parameter | Description | Type | Required |
|---|---|---|---|
aws_access_key_id | A specific long-term AWS access key ID | string | Required |
aws_secret_access_key | A specific long-term AWS secret access key | string | Required |
region_name | The AWS Region where you want to create new connections | string | Required |
role_arn | Role ARN | string | Required |
Actions
Execute Statement
Runs one or more SQL statements.
Input
Argument Name | Type | Required | Description |
|---|---|---|---|
ClientToken | string | Optional | A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. This field is auto populated if not provided. |
ClusterIdentifier | string | Optional | This parameter is required when connecting to a cluster and authenticating using either Secrets Manager or temporary credentials. |
Database | string | Required | The name of the database. |
Parameters | array | Optional | Parameters for the Execute Statement action |
Parameters.name | string | Optional | Parameters for the Execute Statement action |
Parameters.value | string | Optional | Parameters for the Execute Statement action |
DbUser | string | Optional | The database user name. |
SecretArn | string | Optional | The name or ARN of the secret that enables access to the database. |
Sql | string | Required | The SQL statement text to run. |
StatementName | string | Optional | The name of the SQL statements. |
WithEvent | boolean | Optional | A value that indicates whether to send an event to the Amazon EventBridge event bus after the SQL statements run. |
WorkgroupName | string | Optional | The serverless workgroup name or Amazon Resource Name (ARN). |
Input Example
{"Parameters":[{"name":"string","value":"string"}]}
Output
Parameter | Type | Description |
|---|---|---|
ClusterIdentifier | string | Unique identifier |
CreatedAt | string | Output field: CreatedAt |
Database | string | Response data |
DbUser | string | Output field: DbUser |
Id | string | Unique identifier |
SecretArn | string | Output field: SecretArn |
WorkgroupName | string | Name of the resource |
Output Example
{"ClusterIdentifier":"string","CreatedAt":"02/23/2012","Database":"string","DbUser":"string","Id":"string","SecretArn":"string","WorkgroupName":"string"}
Get Statement Result
Fetches the temporarily cached result of an SQL statement.
Input
Argument Name | Type | Required | Description |
|---|---|---|---|
id | string | Required | This value is a universally unique identifier (UUID) generated by Amazon Redshift Data API. |
NextToken | string | Optional | A value that indicates the starting point for the next set of response records in a subsequent request. |
Input Example
{"id":"12345678-1234-1234-1234-123456789abc","NextToken":"string"}
Output
Parameter | Type | Description |
|---|---|---|
ColumnMetadata | array | Response data |
ColumnMetadata.columnDefault | string | Response data |
ColumnMetadata.isCaseSensitive | boolean | Response data |
ColumnMetadata.isCurrency | boolean | Response data |
ColumnMetadata.isSigned | boolean | Response data |
ColumnMetadata.label | string | Response data |
ColumnMetadata.length | number | Response data |
ColumnMetadata.name | string | Response data |
ColumnMetadata.nullable | number | Response data |
ColumnMetadata.precision | number | Response data |
ColumnMetadata.scale | number | Response data |
ColumnMetadata.schemaName | string | Response data |
ColumnMetadata.tableName | string | Response data |
ColumnMetadata.typeName | string | Response data |
NextToken | string | Output field: NextToken |
Records | array | Output field: Records |
Records.0 | object | Output field: Records.0 |
Records.0.booleanValue | boolean | Value for the parameter |
Records.0.doubleValue | number | Value for the parameter |
Records.0.isNull | boolean | Output field: Records.0.isNull |
Records.0.longValue | number | Value for the parameter |
Records.0.stringValue | string | Value for the parameter |
TotalNumRows | number | Output field: TotalNumRows |
Output Example
{"ColumnMetadata":[{"columnDefault":"string","isCaseSensitive":true,"isCurrency":true,"isSigned":false,"label":"string","length":123,"name":"string","nullable":123,"precision":123,"scale":123,"schemaName":"string","tableName":"string","typeName":"string"}],"NextToken":"string","Records":[[{}]],"TotalNumRows":123}
Response Headers
Header | Description | Example |
|---|---|---|
Content-Type | The media type of the resource | application/json |
Date | The date and time at which the message was originated | Thu, 01 Jan 2024 00:00:00 GMT |