Validating Data from Amazon Redshift

This page covers Amazon Redshift-specific setup for Data validation. For workflow field definitions, see Data validation configuration reference.

Prerequisites

  • ODBC connectivity to Redshift from Worker hosts (standard or IAM auth; same TOML as Migrating Data from Amazon Redshift).
  • Live Redshift access for L2/L3: validation runs SQL against live Redshift even when tables were loaded via UNLOAD to S3.

Connectivity

Reuse the same [connections.source.redshift] Worker TOML as Migrating Data from Amazon Redshift.

Standard authentication example:

[connections.source.redshift]
username = "myuser"
password = "mypassword"
database = "mydatabase"
host = "my-cluster.abcdef123456.us-west-2.redshift.amazonaws.com"
port = 5439
auth_method = "standard"

Validation behavior

  • After UNLOAD migrations: Validation still runs SQL against live Redshift for source-side metrics and row checks. Ensure the Worker can reach the cluster and that large partition result sets stay within timeout and spool limits.
  • Iceberg targets: Validation compares whatever is in Snowflake (native or Iceberg). Iceberg targets don’t change L2/L3 SQL on the Redshift side.

For partitioning and index_column_list, see Data validation configuration reference.

Example workflow excerpt:

source_platform: redshift
target_database: TARGET_DB
validation_configuration:
  schema_validation: true
  metrics_validation: true
  row_validation: false
tables:
  - fully_qualified_name: snowconvert_demo.ecommerce_raw.customers
    column_names_to_partition_by:
      - customer_id
  - fully_qualified_name: snowconvert_demo.ecommerce_raw.orders
    column_names_to_partition_by:
      - order_id
    index_column_list:
      - order_id
    validation_configuration:
      row_validation: true

Data type mappings

Redshift typeSnowflake target typeSupported for validationNotes
SMALLINT, INTEGER, BIGINT, DECIMAL, REAL, DOUBLE PRECISIONNUMBER / FLOATYes
BOOLEAN, DATE, TIMESTAMPBOOLEAN / DATE / TIMESTAMP_NTZYes
CHAR, VARCHARVARCHARYes
VARBYTE / BINARY VARYINGBINARYYes
TIMESTAMPTZTIMESTAMP_TZNo
TIME, TIMETZTIMENo
INTERVALY2M, INTERVALD2SVARCHARNo
GEOMETRY, GEOGRAPHYGEOGRAPHYNoSchema-level comparison only
HLLSKETCHVARCHARNoNo Snowflake equivalent
SUPERVARIANTNo

Platform-specific suggestions

  • For tables migrated via UNLOAD, confirm the live Redshift source still reflects the data snapshot you expect to compare.
  • Keep large partition result sets within Redshift timeout and spool limits when running L2/L3 against wide tables.
  • Anti-locking: No automatic hint is added on Redshift. Set queryModifiers only when you need custom source SQL hints. See Anti-locking and query modifiers.