Migrating Data from Teradata¶
This page covers Teradata-specific setup for Data migration. For workflow and Worker field definitions, see Data migration configuration reference. For SnowConvert AI CLI commands, see Manual Migration: Data migration.
Prerequisites¶
Before you migrate data from Teradata, make sure the following are in place:
- Teradata connectivity on Workers: Install
teradatasql(preferred, pure Python) or register a Teradata ODBC driver on each Worker host. Default gateway port is 1025 unless your site uses another. - Teradata Tools and Utilities (for
tpt): If you use thetptextraction strategy,tbuildmust be onPATHor set viaTPT_TBUILD_EXECUTABLE. - NOS / WRITE_NOS (for
write_nos): Teradata NOS / WRITE_NOS must be enabled on the source system, and you need cloud storage credentials aligned with your Snowflake external stage. - Snowflake external stage (for
write_nos): Create an external stage whose URL matches the bucket or container Teradata writes to.
Connectivity and extraction strategies¶
Teradata supports three extraction strategies. Pick one per table (or inherit from defaultTableConfiguration.extraction).
| Strategy | Workflow extraction.externalStage | Snowflake stage | Worker requirements |
|---|---|---|---|
regular (default) | Omit | Internal migration stage | teradatasql or Teradata ODBC; optional odbc_driver, dbc_name, authentication |
write_nos | Required (same bucket/container Teradata writes to) | External stage | write_nos_* TOML fields; Teradata NOS enabled |
tpt | Omit | Internal migration stage (same as regular) | tbuild on PATH or TPT_TBUILD_EXECUTABLE |
regular — partitioned SQL extraction¶
The Worker runs partitioned SELECT streams through teradatasql (preferred) or pyodbc with a registered Teradata ODBC driver. Data is converted to Parquet and uploaded to the Snowflake internal migration stage.
Authentication: TD2 (default), LDAP, or KRB5 via optional authentication in Worker TOML.
Worker TOML example (standard authentication):
Workflow YAML (default — omit extraction block):
write_nos — server-side export to object storage¶
Teradata writes Parquet directly to S3, Azure Blob, or GCS. Fixed output settings: FORMAT PARQUET, COMPRESSION SNAPPY, MAXOBJECTSIZE 16MB, OVERWRITE FALSE.
Worker TOML example:
Workflow YAML:
Credential modes (choose exactly one): write_nos_function_mapping (recommended), write_nos_authorization_name, or write_nos_access_id plus write_nos_access_key.
tpt — Teradata Parallel Transporter on the Worker¶
The Worker generates a TPT EXPORT job, runs tbuild, converts delimited output to Parquet, then uploads like regular. Optional tuning: tpt_delimiter (default ASCII file separator U+001C), tpt_max_sessions (default 4).
Worker TOML example:
Workflow YAML:
Under regular extraction, the Worker auto-enables TPT when tbuild is available unless you set use_tpt_for_bulk = false in Worker TOML.
Data type mappings¶
These mappings are applied automatically during migration type conversion:
| Teradata type | Snowflake target type | Supported for migration | Notes |
|---|---|---|---|
| BYTEINT, SMALLINT, INTEGER, BIGINT | NUMBER | Yes | |
| NUMERIC, NUMBER, DECIMAL | NUMBER | Yes | |
| FLOAT, REAL, DOUBLE PRECISION | FLOAT | Yes | |
| DATE | DATE | Yes | |
| TIME | TIME | Yes | |
| TIME WITH TIME ZONE | TIME | Yes | TZ offset dropped; local time preserved |
| TIMESTAMP | TIMESTAMP_NTZ | Yes | |
| TIMESTAMP WITH TIME ZONE | TIMESTAMP_TZ | Yes | |
| CHAR, VARCHAR | VARCHAR | Yes | |
| CLOB | TEXT | Yes | LOB; max 2GB |
| BYTE, VARBYTE, BLOB | BINARY | Yes | LOB; max 2GB for BLOB |
| JSON, XML | VARIANT | Yes | |
| ST_GEOMETRY | GEOGRAPHY | Yes | |
| BOOLEAN | BOOLEAN | Yes | |
| INTERVAL types (YEAR, DAY, HOUR, and so on) | VARCHAR | Yes | Stored as a text representation |
| PERIOD(DATE), PERIOD(TIME), PERIOD(TIMESTAMP), and TIME ZONE variants | VARCHAR | Yes | Stored as a text representation |
| ARRAY | ARRAY | Yes | |
| LONG VARCHAR, GRAPHIC, VARGRAPHIC, CHAR/VARCHAR UNICODE | VARCHAR | Yes |
Platform-specific suggestions¶
- Large tables: Prefer
write_noswhen Teradata can write directly to cloud storage aligned with your Snowflake external stage. Usetptwhen you need bulk export through Teradata Parallel Transporter on the Worker. - Worker parallelism: Teradata systems are often CPU and BYNET sensitive. Keep Worker parallelism moderate and coordinate with your DBA.
- Anti-locking: AIM DMV adds
LOCKING ROW FOR ACCESSautomatically on every Teradata source scan. No configuration is required. See Anti-locking and query modifiers.