Skip to main content
Version: 0.6 (Latest)

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​

ParameterRequiredDescription
ds_typeYesMust be "teradata"
auth_modeYes"classic" for individual fields; "connection_string" to supply a full connection string
serverNoHostname or IP (host is also accepted; default: localhost)
portNoPort (default: 1025)
databaseNoDefault database to connect to. If omitted, LakeXpress connects without selecting a default database
usernameClassic onlyTeradata username
passwordClassic onlyTeradata password
use_adbcNoExport 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:

MethodDescription
NoneSingle-threaded export (default)
RandomParallel export using an integer column
DataDrivenSplit by column values into separate files
RangeIdSplit by column min/max ranges
NtileEvenly distributed chunks
TimepartitionPartition 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 in ARPETERADATA_TTU_PATH, then /opt/teradata/client, then the system library path.
  • With auth_mode: "connection_string", the sslmode, https_port, sslca and sslcapath keys 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​

Copyright © 2026 Architecture & Performance.