Teradata
Teradata is supported as a source database -- the database LakeXpress extracts data from. It cannot be used as the LakeXpress DB.
Connecting to Teradata requires the teradatasql Python driver.
Connection Parameters
| Parameter | Required | Description |
|---|---|---|
ds_type | Yes | Must be "teradata" |
auth_mode | Yes | "classic" for individual fields; "connection_string" to supply a full connection string |
server | No | Hostname or IP (host is also accepted; default: localhost) |
port | No | Port (default: 1025) |
database | No | Default database to connect to. If omitted, LakeXpress connects without selecting a default database |
username | Classic only | Teradata username |
password | Classic only | Teradata password |
use_adbc | No | Export through FastBCP's ADBC driver (default: true). false uses FastBCP's native driver. Set at the same level as ds_type, not inside info. See ADBC Export |
Required Permissions
-- Source database user:
GRANT SELECT ON your_database TO lakexpress_user;
-- Metadata access (table discovery, column metadata, primary keys, foreign keys):
GRANT SELECT ON DBC.TablesV TO lakexpress_user;
GRANT SELECT ON DBC.ColumnsV TO lakexpress_user;
GRANT SELECT ON DBC.IndicesV TO lakexpress_user;
GRANT SELECT ON DBC.All_RI_ChildrenV TO lakexpress_user;
Example: Source Database
{
"source_teradata": {
"ds_type": "teradata",
"auth_mode": "classic",
"info": {
"server": "teradata-prod.company.com",
"port": 1025,
"database": "DW",
"username": "$env{LX_TD_USER}",
"password": "$env{LX_TD_PASSWORD}"
}
}
}
Example: Connection String Mode
Use auth_mode: "connection_string" when you need to pass advanced driver options.
{
"source_teradata_cs": {
"ds_type": "teradata",
"auth_mode": "connection_string",
"info": {
"connection_string": "{\"host\":\"$env{LX_TD_HOST}\",\"dbs_port\":\"1025\",\"user\":\"$env{LX_TD_USER}\",\"password\":\"$env{LX_TD_PASSWORD}\",\"database\":\"DW\"}"
}
}
}
LakeXpress converts this JSON string for FastBCP's Teradata .NET driver: host, dbs_port, user, password and database are passed. Other keys (for example logmech) are not passed to FastBCP, and LakeXpress logs a warning. To pass them, add fastbcp_connection_string to info, in the .NET format (Data Source=...;Port Number=1025;User Id=...;Password=...), which FastBCP then uses as is.
FastBCP Methods
All generic FastBCP distribution methods are supported with Teradata sources:
| Method | Description |
|---|---|
None | Single-threaded export (default) |
Random | Parallel export using an integer column |
DataDriven | Split by column values into separate files |
RangeId | Split by column min/max ranges |
Ntile | Evenly distributed chunks |
Timepartition | Partition by date/time column -- supports (col,year), (col,year,month), (col,year,month,day), (col,year,week) |
Timepartition splits exports into Hive-style paths (e.g., year=2008/month=01/table.parquet) where each parallel thread handles a specific time period. It is well suited for large historical tables with a date column.
# Single table
--fastbcp_table_config "ORDERS:Timepartition:(ORDER_DATE,year,month):8"
# Multiple tables with different date columns
--fastbcp_table_config "CARRIER_CLAIMS:Timepartition:(CLM_FROM_DT,year,month):4" \
--fastbcp_table_config "PRESCRIPTION_DRUG_EVENTS:Timepartition:(SRVC_DT,year,month):4"
ADBC Export
By default, FastBCP reads the source through the arpe.io ADBC driver for Teradata (connection type adbc_teradata). Set "use_adbc": false to use FastBCP's native .NET driver instead. The setting only changes the export: LakeXpress still discovers schemas and tables with teradatasql. The run log shows the path once per run, e.g. Source extraction: adbc_teradata (ADBC).
{
"teradata_native": {
"ds_type": "teradata",
"auth_mode": "classic",
"use_adbc": false,
"info": {
"username": "$env{LX_TD_USER}",
"password": "$env{LX_TD_PASSWORD}",
"server": "teradata-prod.company.com",
"port": 1025
}
}
}
How the driver logs on:
- By default it uses TLS on the HTTPS port (443) and needs no Teradata client software.
- If the server does not accept TLS, it falls back to the legacy port (1025, or
port) through the Teradata Tools and Utilities (TTU) client, on Linux and Windows. The driver looks for TTU inARPETERADATA_TTU_PATH, then/opt/teradata/client, then the system library path. - With
auth_mode: "connection_string", thesslmode,https_port,sslcaandsslcapathkeys are passed to the ADBC driver."sslmode": "DISABLE"always uses the legacy port. The native driver ("use_adbc": false) ignores these keys.
The ADBC driver needs its own license. It is included in the license file that arpe.io sends for LakeXpress, and LakeXpress passes it to FastBCP. If your license file has no ADBC block, provide the driver license with ARPEIO_ADBC_LICENCE (license text) or ARPEIO_ADBC_LICENCE_FILE (path). Without either, the sync stops before the export with exit code 13 (LICENSE_ERROR). A license file issued before 2026-10-26 has no FastBCP block: FastBCP then uses its own FastBCP.lic, which must carry the ADBC block. See License Information.
ADBC drivers ship with FastBCP for linux-x64 and win-x64. See ADBC Extraction for the other sources.
See Also
- Database Connections OverviewCredentials file format, security best practices