Redshift

Supports:

  • ✅ Models
  • ✅ Model sync destination
  • ✅ Bulk sync source
  • ✅ Bulk sync destination

Connection

Configuration

NameTypeDescriptionRequired
auth_modestringAuthentication Method

How to authenticate with AWS. Defaults to Access Key and Secret. Accepted values: access_key_and_secret, iam_role
true
aws_access_key_idstringAWS Access Key ID (destinations only)

Access Key ID with read/write access to a bucket. More info: https://docs.polytomic.com/docs/redshift (required if auth_mode is “aws_access_key_and_secret”)
false
aws_secret_access_keystringAWS Secret Access Key (destinations only)

(required if auth_mode is “aws_access_key_and_secret”)
false
bulk_sync_staging_schemastringStaging schema namefalse
databasestringDatabasetrue
hostnamestringHostnametrue
iam_role_arnstringIAM Role ARN

(required if auth_mode is “iam_role”)
false
passwordstringPasswordtrue
portintegerPorttrue
s3_bucket_namestringS3 Bucket Name (destinations only)

Name of bucket used for staging data load files
false
s3_bucket_regionstringS3 Bucket Region (destinations only)

Region of bucket. Note: must match region of redshift server
false
sshbooleanConnect over SSH tunnelfalse
ssh_hoststringSSH hostfalse
ssh_portintegerSSH portfalse
ssh_private_keystringPrivate keyfalse
ssh_userstringSSH userfalse
use_bulk_sync_staging_schemabooleanUse custom bulk sync staging schemafalse
usernamestringUsernametrue

Example

1{
2 "name": "Redshift connection",
3 "type": "redshift",
4 "configuration": {
5 "auth_mode": "access_key_and_secret",
6 "aws_access_key_id": "AKIAIOSFODNN7EXAMPLE",
7 "aws_secret_access_key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
8 "bulk_sync_staging_schema": "",
9 "database": "mydb",
10 "hostname": "mycluster.us-west-2.redshift.amazonaws.com",
11 "iam_role_arn": "",
12 "password": "password",
13 "port": 5439,
14 "s3_bucket_name": "my-bucket",
15 "s3_bucket_region": "us-west-2",
16 "ssh": false,
17 "ssh_host": "bastion.example.com",
18 "ssh_port": 22,
19 "ssh_private_key": "",
20 "ssh_user": "",
21 "use_bulk_sync_staging_schema": false,
22 "username": "redshift_user"
23 }
24}

Read-only properties

NameTypeDescriptionRequired
aws_userstringUser ARNfalse
external_idstringExternal ID for the IAM rolefalse

Model Sync

Source

Configuration

NameTypeDescriptionRequired
querystringfalse
schemastringSchemafalse
tablestringTablefalse
viewstringViewfalse

Example

1{
2 ...
3 "configuration": {
4 "query": "SELECT * FROM sampledata.users",
5 "schema": "sampledata",
6 "table": "users",
7 "view": "active_users"
8 }
9}

Target

Redshift connections may be used as the destination in a model sync.

All targets

Configuration
NameTypeDescriptionRequired
created_columnstring’Created at’ timestamp columnfalse
preserve_table_on_resyncbooleanPreserve destination table when resyncingfalse
updated_columnstring’Updated at’ timestamp columnfalse
write_record_timestampsbooleanWrite row timestamp metadatafalse
Example
1{
2 ...
3 "target": {
4 "configuration": {
5 "created_column": "",
6 "preserve_table_on_resync": false,
7 "updated_column": "",
8 "write_record_timestamps": false
9 }
10 }
11}

Bulk Sync

Destination

Configuration

NameTypeDescriptionRequired
advancedobjectfalse
mirror_schemasbooleanMirror schemasfalse
schemastringOutput schemafalse

Example

1{
2 ...
3 "destination_configuration": {
4 "advanced": {
5 "empty_strings_null": false,
6 "hard_deletes": false,
7 "table_prefix": "",
8 "truncate_existing": false
9 },
10 "mirror_schemas": false,
11 "schema": "schema"
12 }
13}

Type handling

Destination types

POLYTOMIC TYPEREDSHIFT TYPE
array<>SUPER
bigintBIGINT
booleanBOOL
dateDATE
datetimeTIMESTAMP
decimal(precision, scale)NUMERIC(precision,scale)
doubleFLOAT8
intINTEGER
jsonSUPER
jsonarraySUPER
numberNUMERIC(38,18)
object{}SUPER
singleFLOAT4
smallintSMALLINT
stringVARCHAR(MAX)
timeVARCHAR(255)

Source types

REDSHIFT TYPEPOLYTOMIC TYPE
4000json
BIGINTbigint
BOOLboolean
BOOLEANboolean
BPCHARstring
CHARstring
CHARACTERstring
CHARACTER VARYINGstring
DATEdate
DECIMALnumber
DECIMAL(precision, scale)decimal(precision, scale)
DOUBLE PRECISIONdouble
FLOATdouble
FLOAT4single
FLOAT8double
INTint
INT2smallint
INT4int
INT8bigint
INTEGERint
NCHARstring
NUMERICnumber
NUMERIC(precision, scale)decimal(precision, scale)
NVARCHARstring
REALsingle
SMALLINTsmallint
STRINGstring
TEXTstring
TIMEtime
TIME WITH TIME ZONEtime
TIME WITHOUT TIME ZONEtime
TIMESTAMPdatetime
TIMESTAMP WITH TIME ZONEdatetime_tz
TIMESTAMP WITHOUT TIME ZONEdatetime
TIMESTAMPTZdatetime_tz
TIMETZtime
VARCHARstring