URI definition for Redshift follows this standard:

Identifier fragments:

  • Namespace: redshift://{cluster_identifier}.{region_name}:{port}
    • Scheme = redshift
    • Authority = {cluster_identifier}.{region_name}:{port}
  • Unique name: {database}.{schema}.{table}

URI format:

  • redshift://{cluster_identifier}.{region_name}:{port}/{database}.{schema}.{table}

How to find my cluster identifier and region name:

  • When creating a redshift integration in Sifflet you have to provide an Host parameter that looks like that sifflet-dev-redshift.azert43jaj.eu-west-1.redshift.amazonaws.com. Both the parameters we are looking for are here
    • sifflet-dev-redshift is the cluster identifier
    • eu-west-1 is the region name

Parameters limitations:

  • cluster identifier and region name must start with a lowercase letter and include only lowercase letters, numbers and dash (regex: [a-z][a-z0-9-]*)
  • port number must include only numbers
  • database, schema and table can have two format, following Redshift naming standards: quoted format and unquoted format
    • unquoted identifier must include only lowercases letters, numbers, underscore and characters included in the unicode range U+0080 to U+10FFFF
    • quoted identifier needs to be quoted using double quotes and must include only characters included in the unicode range U+0001 to U+10FFFF. If a double quote character is present in the name, it needs to be escaped with another double quote character in front of it.

Examples:

  • redshift://sifflet-dev-redshift.na-south-12:5439/dev.schema.table
  • redshift://sifflet-test-redshift.eu-west-1:5439/dev.schema."таблица table お客様"