> For the complete documentation index, see [llms.txt](https://docs.collibra.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.collibra.com/data-quality-self-hosted/connections/supported-connections/supported-jdbc-data-sources/connecting-to-amazon-redshift.md).

# Connecting to Amazon Redshift

This section contains details for Amazon Redshift connections.

## General information

<table><thead><tr><th width="152">Field</th><th>Description</th></tr></thead><tbody><tr><td>Data source</td><td>Amazon Redshift</td></tr><tr><td>Supported version</td><td>2.1.0.9</td></tr><tr><td>Connection string</td><td><code>jdbc:redshift://</code></td></tr><tr><td>Packaged?</td><td><img src="https://4121921244-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWCrP7Albs8DfJjIQxUxw%2Fuploads%2Fgit-blob-d06dd40622fc7d030e21f7c0303a90eb28d229fc%2Fok-large%402x.png?alt=media" alt="" data-size="line"> Yes</td></tr><tr><td>Certified?</td><td><img src="https://4121921244-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWCrP7Albs8DfJjIQxUxw%2Fuploads%2Fgit-blob-d06dd40622fc7d030e21f7c0303a90eb28d229fc%2Fok-large%402x.png?alt=media" alt="" data-size="line"> Yes</td></tr><tr><td colspan="2">Supported features</td></tr><tr><td>Estimate job</td><td><img src="https://4121921244-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWCrP7Albs8DfJjIQxUxw%2Fuploads%2Fgit-blob-d06dd40622fc7d030e21f7c0303a90eb28d229fc%2Fok-large%402x.png?alt=media" alt="" data-size="line"> Yes</td></tr><tr><td>Analyze data</td><td><img src="https://4121921244-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWCrP7Albs8DfJjIQxUxw%2Fuploads%2Fgit-blob-d06dd40622fc7d030e21f7c0303a90eb28d229fc%2Fok-large%402x.png?alt=media" alt="" data-size="line"> Yes</td></tr><tr><td>Schedule</td><td><img src="https://4121921244-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWCrP7Albs8DfJjIQxUxw%2Fuploads%2Fgit-blob-d06dd40622fc7d030e21f7c0303a90eb28d229fc%2Fok-large%402x.png?alt=media" alt="" data-size="line"> Yes</td></tr><tr><td colspan="2">Processing capabilities</td></tr><tr><td>Pushdown</td><td><img src="https://4121921244-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWCrP7Albs8DfJjIQxUxw%2Fuploads%2Fgit-blob-d06dd40622fc7d030e21f7c0303a90eb28d229fc%2Fok-large%402x.png?alt=media" alt="" data-size="line"> Yes</td></tr><tr><td>Spark agent</td><td><img src="https://4121921244-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWCrP7Albs8DfJjIQxUxw%2Fuploads%2Fgit-blob-d06dd40622fc7d030e21f7c0303a90eb28d229fc%2Fok-large%402x.png?alt=media" alt="" data-size="line"> Yes</td></tr><tr><td>Yarn agent</td><td><img src="https://4121921244-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWCrP7Albs8DfJjIQxUxw%2Fuploads%2Fgit-blob-d06dd40622fc7d030e21f7c0303a90eb28d229fc%2Fok-large%402x.png?alt=media" alt="" data-size="line"> Yes</td></tr><tr><td>Parallel JDBC</td><td><img src="https://4121921244-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWCrP7Albs8DfJjIQxUxw%2Fuploads%2Fgit-blob-d06dd40622fc7d030e21f7c0303a90eb28d229fc%2Fok-large%402x.png?alt=media" alt="" data-size="line"> Yes</td></tr><tr><td colspan="2">Java Platform version compatibility</td></tr><tr><td>JDK 8</td><td><img src="https://4121921244-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWCrP7Albs8DfJjIQxUxw%2Fuploads%2Fgit-blob-d06dd40622fc7d030e21f7c0303a90eb28d229fc%2Fok-large%402x.png?alt=media" alt="" data-size="line"> Yes</td></tr><tr><td>JDK 11</td><td><img src="https://4121921244-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWCrP7Albs8DfJjIQxUxw%2Fuploads%2Fgit-blob-d06dd40622fc7d030e21f7c0303a90eb28d229fc%2Fok-large%402x.png?alt=media" alt="" data-size="line"> Yes</td></tr></tbody></table>

## Minimum user permissions

In order to bring your Redshift data into Data Quality & Observability (self-hosted), you need the following permissions.

* Read access on your Redshift database tables.
* ROLE\_ADMIN assigned to your user in Collibra DQ.

## Recommended and required connection properties

<table><thead><tr><th>Required</th><th>Connection Property</th><th>Type</th><th>Value</th></tr></thead><tbody><tr><td><img src="https://4121921244-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWCrP7Albs8DfJjIQxUxw%2Fuploads%2Fgit-blob-d06dd40622fc7d030e21f7c0303a90eb28d229fc%2Fok-large%402x.png?alt=media" alt="" data-size="line"> Yes</td><td>Name</td><td>Text</td><td>The unique name of your connection. Ensure that there are no spaces in your connection name.</td></tr><tr><td><img src="https://4121921244-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWCrP7Albs8DfJjIQxUxw%2Fuploads%2Fgit-blob-d06dd40622fc7d030e21f7c0303a90eb28d229fc%2Fok-large%402x.png?alt=media" alt="" data-size="line"> Yes</td><td>Connection URL</td><td>String</td><td><p>The connection string path of your Redshift connection.</p><p>When referring to the example below, replace the <code>${value}</code> sections of the connection URL with your actual value.</p><div data-gb-custom-block data-tag="tabs"><div data-gb-custom-block data-tag="tab" data-title="Example" data-icon="glasses-round"><p><code>jdbc:redshift://${host}:5439/${database}</code></p></div></div></td></tr><tr><td><img src="https://4121921244-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWCrP7Albs8DfJjIQxUxw%2Fuploads%2Fgit-blob-d06dd40622fc7d030e21f7c0303a90eb28d229fc%2Fok-large%402x.png?alt=media" alt="" data-size="line"> Yes</td><td>Driver Name</td><td>String</td><td><p>The driver class name of your Redshift connection.</p><pre><code>com.amazon.redshift.jdbc42.Driver
</code></pre></td></tr><tr><td><img src="https://4121921244-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWCrP7Albs8DfJjIQxUxw%2Fuploads%2Fgit-blob-d06dd40622fc7d030e21f7c0303a90eb28d229fc%2Fok-large%402x.png?alt=media" alt="" data-size="line"> Yes</td><td>Port</td><td>Integer</td><td><p>The port number to establish a connection to the datasource.</p><p>The default port is <code>5439</code></p></td></tr><tr><td><img src="https://4121921244-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWCrP7Albs8DfJjIQxUxw%2Fuploads%2Fgit-blob-de45f34193ae06a2b093c2dfb8fb80cfda945166%2Fclose-large%402x.png?alt=media" alt="" data-size="line"> No</td><td>Limit Schemas</td><td>Option</td><td><p>Allows you to manage usage and restrict visibility to only the necessary schemas in the <a href="/data-quality-self-hosted/core-concepts/explorer/create-a-dq-job/connect-to-a-data-source.md">Explorer</a> tree.</p><p>See <a href="/data-quality-self-hosted/admin-configuration/admin-console/connections/limiting-schemas.md">Limiting schemas</a> to learn how to limit schemas from the Connection Management page.</p><div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p>When you include a restricted schema in the query of a DQ Job, the query scope may be overwritten when the job runs. While only the schemas you selected when you set up the connection are shown in the Explorer menu, users are not restricted from running SQL queries on any schema from the data source.</p></div></td></tr><tr><td><img src="https://4121921244-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWCrP7Albs8DfJjIQxUxw%2Fuploads%2Fgit-blob-de45f34193ae06a2b093c2dfb8fb80cfda945166%2Fclose-large%402x.png?alt=media" alt="" data-size="line"> No</td><td>Source Name</td><td>String</td><td>N/A</td></tr><tr><td><img src="https://4121921244-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWCrP7Albs8DfJjIQxUxw%2Fuploads%2Fgit-blob-de45f34193ae06a2b093c2dfb8fb80cfda945166%2Fclose-large%402x.png?alt=media" alt="" data-size="line"> No</td><td>Target Agent</td><td>Option</td><td>The <a href="/data-quality-self-hosted/installation/agent.md">Agent</a> that submits your Spark job for processing.</td></tr><tr><td><img src="https://4121921244-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWCrP7Albs8DfJjIQxUxw%2Fuploads%2Fgit-blob-d06dd40622fc7d030e21f7c0303a90eb28d229fc%2Fok-large%402x.png?alt=media" alt="" data-size="line"> Yes</td><td>Auth Type</td><td>Option</td><td><p>The method to authenticate your connection.</p><div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p>The configuration requirements are different depending on the Auth Type you select. See <a href="#authentication">Authentication</a> for more details on available authentication types.</p></div></td></tr><tr><td><img src="https://4121921244-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWCrP7Albs8DfJjIQxUxw%2Fuploads%2Fgit-blob-de45f34193ae06a2b093c2dfb8fb80cfda945166%2Fclose-large%402x.png?alt=media" alt="" data-size="line"> No</td><td>Properties</td><td>String</td><td>The configurable driver properties for your connection. Multiple properties must be semicolon-delimited, and each property=value pair, including the last one, must end with a semicolon (;). <code>abc=123;test=true;</code></td></tr></tbody></table>

## Authentication

Select an authentication type from the dropdown menu. The options available in the dropdown menu are the currently supported authentication types for this data source.

{% tabs %}
{% tab title="Username/Password" %}

| Required                                                                                                                                                                                                                                        | Field    | Description                            |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | -------------------------------------- |
| <img src="https://4121921244-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWCrP7Albs8DfJjIQxUxw%2Fuploads%2Fgit-blob-d06dd40622fc7d030e21f7c0303a90eb28d229fc%2Fok-large%402x.png?alt=media" alt="" data-size="line"> Yes | Username | The username of your Redshift account. |
| <img src="https://4121921244-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWCrP7Albs8DfJjIQxUxw%2Fuploads%2Fgit-blob-d06dd40622fc7d030e21f7c0303a90eb28d229fc%2Fok-large%402x.png?alt=media" alt="" data-size="line"> Yes | Password | The password of your Redshift account. |

### Locating the JDBC URL

Before you can connect to your Redshift cluster from a SQL client tool, you need to know the JDBC URL of your cluster. The JDBC URL has the following format: `jdbc:redshift://endpoint`:`port`/`database`.Note

A JDBC URL specified with the former format of `jdbc:postgresql://endpoint`:`port`/`database` still works.

The fields of the format shown preceding have the following values.

| Field      | Value                                                                                                                                      |
| ---------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| `jdbc`     | The protocol for the connection.                                                                                                           |
| `redshift` | The sub-protocol that specifies to use the Redshift driver to connect to the database.                                                     |
| `endpoint` | The endpoint of the Redshift cluster.                                                                                                      |
| `port`     | The port number that you specified when you launched the cluster. If you have a firewall, make sure that this port is open for you to use. |
| `database` | The database that you created for your cluster.                                                                                            |

The following is an example JDBC URL: `jdbc:redshift://examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com:5439/dev`

For information about how to get your JDBC connection, see [Finding your cluster connection string](https://docs.aws.amazon.com/redshift/latest/mgmt/configuring-connections.html#connecting-connection-string).

If the client computer fails to connect to the database, you can troubleshoot possible issues. For more information, see [Troubleshooting connection issues in Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/troubleshooting-connections.html).\\

<https://docs.aws.amazon.com/redshift/latest/mgmt/configure-jdbc-connection.html>

### Configuring Amazon S3 for source-to-target validation

When setting up source-to-target validation jobs between Amazon S3 and Redshift, the authentication type used for the AWS S3 connection does not impact how DQ processes the data. For example, if Access Key-based authentication is used for the DQ S3 connection, and the DQ Agent is configured to use the Spark Cluster of EMR, DQ jobs are executed at EMR. The DQ Agent will generate the session credentials and share them with DQ jobs at run-time for dataset processing.

If using Instance Profile for authentication, DQ uses the IAM role attached to the EC2 instance to retry the session credentials required to authenticate with the AWS S3 service. The same session credentials are shared during run-time with DQ Agents for dataset processing, which involves fetching the data from the AWS S3 service into the Spark data frames.
{% endtab %}

{% tab title="Password Manager" %}

| Required                                                                                                                                                                                                                                          | Field    | Description                                                                                                                                                                                                                           |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <img src="https://4121921244-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWCrP7Albs8DfJjIQxUxw%2Fuploads%2Fgit-blob-d06dd40622fc7d030e21f7c0303a90eb28d229fc%2Fok-large%402x.png?alt=media" alt="" data-size="line"> Yes   | Username | The username of your Redshift account.                                                                                                                                                                                                |
| <img src="https://4121921244-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWCrP7Albs8DfJjIQxUxw%2Fuploads%2Fgit-blob-d06dd40622fc7d030e21f7c0303a90eb28d229fc%2Fok-large%402x.png?alt=media" alt="" data-size="line"> Yes   | Script   | <p>The file path containing the script file that the password manager uses to interact with and authenticate a user account.</p><p><i class="fa-glasses-round">:glasses-round:</i> Example: /tmp/keytab/redshift\_pwd\_mgr.sh</p><hr> |
| <img src="https://4121921244-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWCrP7Albs8DfJjIQxUxw%2Fuploads%2Fgit-blob-de45f34193ae06a2b093c2dfb8fb80cfda945166%2Fclose-large%402x.png?alt=media" alt="" data-size="line"> No | Param $1 | Optional. An additional parameter to authenticate your Redshift connection.                                                                                                                                                           |
| <img src="https://4121921244-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWCrP7Albs8DfJjIQxUxw%2Fuploads%2Fgit-blob-de45f34193ae06a2b093c2dfb8fb80cfda945166%2Fclose-large%402x.png?alt=media" alt="" data-size="line"> No | Param $2 | Optional. An additional parameter to authenticate your Redshift connection.                                                                                                                                                           |
| <img src="https://4121921244-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWCrP7Albs8DfJjIQxUxw%2Fuploads%2Fgit-blob-de45f34193ae06a2b093c2dfb8fb80cfda945166%2Fclose-large%402x.png?alt=media" alt="" data-size="line"> No | Param $3 | Optional. An additional parameter to authenticate your Redshift connection.                                                                                                                                                           |

### Locating the JDBC URL

Before you can connect to your Redshift cluster from a SQL client tool, you need to know the JDBC URL of your cluster. The JDBC URL has the following format: `jdbc:redshift://endpoint`:`port`/`database`.Note

A JDBC URL specified with the former format of `jdbc:postgresql://endpoint`:`port`/`database` still works.

The fields of the format shown preceding have the following values.

| Field      | Value                                                                                                                                      |
| ---------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| `jdbc`     | The protocol for the connection.                                                                                                           |
| `redshift` | The sub-protocol that specifies to use the Redshift driver to connect to the database.                                                     |
| `endpoint` | The endpoint of the Redshift cluster.                                                                                                      |
| `port`     | The port number that you specified when you launched the cluster. If you have a firewall, make sure that this port is open for you to use. |
| `database` | The database that you created for your cluster.                                                                                            |

The following is an example JDBC URL: `jdbc:redshift://examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com:5439/dev`

For information about how to get your JDBC connection, see [Finding your cluster connection string](https://docs.aws.amazon.com/redshift/latest/mgmt/configuring-connections.html#connecting-connection-string).

If the client computer fails to connect to the database, you can troubleshoot possible issues. For more information, see [Troubleshooting connection issues in Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/troubleshooting-connections.html).\\

<https://docs.aws.amazon.com/redshift/latest/mgmt/configure-jdbc-connection.html>

### Configuring Amazon S3 for source-to-target validation

When setting up source-to-target validation jobs between Amazon S3 and Redshift, the authentication type used for the AWS S3 connection does not impact how DQ processes the data. For example, if Access Key-based authentication is used for the DQ S3 connection, and the DQ Agent is configured to use the Spark Cluster of EMR, DQ jobs are executed at EMR. The DQ Agent will generate the session credentials and share them with DQ jobs at run-time for dataset processing.

If using Instance Profile for authentication, DQ uses the IAM role attached to the EC2 instance to retry the session credentials required to authenticate with the AWS S3 service. The same session credentials are shared during run-time with DQ Agents for dataset processing, which involves fetching the data from the AWS S3 service into the Spark data frames.
{% endtab %}
{% endtabs %}

## Limitations

When using Pushdown for Redshift, the following column [data types](/data-quality-self-hosted/connections/supported-connections/unsupported-data-types.md) are not supported:

* BINARY VARYING
* GEOGRAPHY
* GEOMETRY
* HLLSKETCH
* SQL\_VARCHAR
* SUPER
* VARBINARY
* VARBYTE
