Skip to main content

Redshift

This connector replicates data from Amazon Redshift to your destination using JDBC. It supports both full refresh and cursor-based incremental syncs.

Features​

FeatureSupportedNotes
Full Refresh SyncYes
Incremental SyncYesCursor-based, using ORDER BY on a user-defined cursor column
Replicate Incremental DeletesNo
Logical Replication (WAL)No
SSL SupportYesEnabled by default on all connections
SSH Tunnel ConnectionNo
NamespacesYesEnabled by default
Schema SelectionYesMultiple schemas may be used at one time; leave empty to replicate all schemas

The Redshift source does not alter the schema present in your warehouse. Depending on the destination connected to this source, however, the schema may be altered. See the destination's documentation for more details.

Incremental sync​

The Redshift source connector supports incremental syncs using a user-defined cursor field such as an updated_at column. The connector uses this column to track which rows have changed since the previous sync.

To run incremental + dedupe syncs, you also need to configure a primary key for the stream.

Prerequisites​

  1. An active Amazon Redshift cluster.
  2. A database user with SELECT permission on the tables you want to replicate. Creating a dedicated read-only user is recommended.
  3. Network access from Airbyte to your Redshift cluster (if they are in separate VPCs). See Authorizing access to your cluster in the AWS docs.

Setup guide​

1. Verify cluster accessibility​

The easiest way to confirm that Airbyte can reach your Redshift cluster is to use the Test Connection button in the Airbyte UI. If the connection fails, review your VPC security groups and subnet routing.

2. Configure the source​

Provide the following connection details in the Airbyte UI:

FieldDescription
HostThe endpoint of your Redshift cluster, without the port or database name. This typically includes the cluster ID, region, and ends with .redshift.amazonaws.com. Find it on the cluster details page under Connection string.
PortThe port your cluster listens on. The default is 5439.
DatabaseThe name of the database to connect to.
UsernameThe database user to authenticate as.
PasswordThe password for the database user.
Schemas(Optional) A list of schemas to replicate. Schema names are case-sensitive. Leave empty to replicate all schemas the user has access to.
JDBC URL Params(Optional) Additional JDBC connection properties, formatted as key=value pairs separated by & (for example, loginTimeout=30&tcpKeepAlive=true).

Encryption​

All connections use SSL by default. No additional configuration is required.

Data type handling​

The connector maps Redshift data types to Airbyte types automatically. A few behaviors to be aware of:

  • timestamp and timestamptz columns are read as raw server-rendered strings and parsed by the connector, bypassing the JDBC driver's timezone conversion. This avoids a known JDBC driver behavior where timestamps can shift by an hour during daylight saving time transitions.
  • timestamptz values are stored in Redshift as UTC. The connector preserves the UTC instant when serializing these values.
  • If you use a timestamptz column as a cursor for incremental syncs, the connector handles both timezone-aware and timezone-naive cursor formats.

Limitations​

  • Change Data Capture (CDC) is not supported. Only cursor-based incremental replication is available.
  • SSH tunnel connections are not supported.
  • IAM-based authentication is not supported; you must authenticate with a database username and password.

IP allow list​

If you use Airbyte Cloud and your organization restricts access to specific IPs, add the Airbyte Cloud IP addresses to your allow list.

Reference​

Config fields reference

Field
Type
Property name
string
database
string
host
string
password
integer
port
string
username
string
jdbc_url_params
array<string>
schemas

Changelog​

Expand to review
VersionDatePull RequestSubject
0.5.52026-06-0474769Handle timezone-aware timestamps in cursor parsing and fix DST offset in timestamptz reads
0.5.42025-07-1662922Convert to new gradle build flow
0.5.32024-12-1849893Use a base image: airbyte/java-connector-base:1.0.0
0.5.22024-02-1335223Adopt CDK 0.20.4
0.5.12024-01-2434453bump CDK version
0.5.02023-12-1833484Remove LEGACY state
(none)2023-11-1732616Improve timestamptz handling
0.4.02023-06-2627737License Update: Elv2
0.3.172023-06-2027212Fix silent exception swallowing in StreamingJdbcDatabase
0.3.162022-12-1420346Consolidate date/time values mapping for JDBC sources
0.3.152022-10-1316238Update incremental query to avoid data missing when new data is inserted at the same time as a sync starts under non-CDC incremental mode
0.3.142022-09-0116258Emit state messages more frequently
0.3.132022-05-25Added JDBC URL params
0.3.122022-08-1814356DB Sources: only show a table can sync incrementally if at least one column can be used as a cursor field
0.3.112022-07-1414574Removed additionalProperties:false from JDBC source connectors
0.3.102022-04-2912480Query tables with adaptive fetch size to optimize JDBC memory consumption
0.3.92022-02-219744List only the tables on which the user has SELECT permissions.
0.3.82022-02-1410256Add -XX:+ExitOnOutOfMemoryError JVM option
0.3.72022-01-269721Added schema selection
0.3.62022-01-208617Update connector fields title/description
0.3.52021-12-248958Add support for JdbcType.ARRAY
0.3.42021-10-217234Allow SSL traffic only
0.3.32021-10-126965Added SSL Support
0.3.22021-08-134699Added json config validator