FASTBCP_TTU_PATH
Overview
The FASTBCP_TTU_PATH environment variable tells FastBCP where to find the customer's Teradata Tools and Utilities (TTU) for the adbc_teradata connection type.
The embedded ArpeTeradata driver needs TTU (CLIv2, libcliv2.so) only for the legacy-port logon: sslmode=disable, or the fallback of the default sslmode=prefer when the server has no TLS. The default TLS logon on the HTTPS port never uses TTU.
The lookup only runs on Linux. On Windows, FastBCP passes nothing and the driver finds wincli32.dll itself (ARPETERADATA_TTU_PATH, its own directory, the registered TTU installation).
Syntax
export FASTBCP_TTU_PATH=/opt/teradata/client/20.00
Configuration
| Property | Value |
|---|---|
| Type | Directory path |
| Default | Not set |
| Applies to | -C adbc_teradata on Linux |
| Since | FastBCP 1.4 |
Search Order
FastBCP looks for TTU in this order and uses the first match:
- The
FASTBCP_TTU_PATHenvironment variable. If the directory does not exist or holds nolibcliv2.so, FastBCP logs a warning and goes on. - A
ttudirectory next to the FastBCP binary. - A
TeradataToolsAndUtilitiesBasedirectory next to the FastBCP binary (the folder of Teradata's Linux download). - Nothing found: no TTU path is passed, and the driver searches itself (
ARPETERADATA_TTU_PATH,/opt/teradata/client, the system library path).
The library directory found is passed to the driver as adbc.arpeteradata.ttu_path and logged:
TTU (adbc_teradata legacy-port logon): /opt/teradata/client/20.00/lib64 (from FASTBCP_TTU_PATH)
Accepted Layouts
Give a full TTU client directory, not only libcliv2.so. Each location can hold:
- the client directory itself, e.g.
/opt/teradata/client/20.00(with itslib64directory); - the library directory itself, e.g.
/opt/teradata/client/20.00/lib64; - a directory above the client directory laid out as
<version>/,client/<version>/,teradata/client/<version>/oropt/teradata/client/<version>/(the last one is what unpacking the TTU RPMs gives).
When several versions are found, the newest wins.
CLIv2 reaches its own files through lib64/tdclientdir (which holds ../..) and appends its version, so the client directory must keep its version name (for example 20.00). A copy of an installed TTU next to the binary must be ttu/20.00, not ttu/ alone.
Using Teradata's TTU Download Without Installing It
Teradata's Linux download is a set of RPMs. To use it without installing it, run these commands next to the FastBCP binary. They unpack CLIv2 and its ICU libraries into TeradataToolsAndUtilitiesBase/opt/teradata/client/20.00 and add the two things the TTU installer would add: lib64/tdclientdir and the ICU links. Adapt the file name to your TTU version.
tar xzf TeradataToolsAndUtilitiesBase__linux_x8664.20.00.39.00-1.tar.gz
cd TeradataToolsAndUtilitiesBase
for r in Linux/x8664/cliv2*.rpm Linux/x8664/tdicu*.rpm; do rpm2cpio "$r" | cpio -idm; done
cd opt/teradata/client/20.00/lib64
printf '../..' > tdclientdir
for f in libicu*td.so.*.*; do ln -sf "$f" "${f%.*}"; ln -sf "$f" "${f%.so.*}.so"; done
FastBCP finds this TeradataToolsAndUtilitiesBase folder by itself; FASTBCP_TTU_PATH is not needed.
FastBCP warns at startup when the TTU folder it found lacks tdclientdir or the ICU links (libicu*td.so.65 and libicu*td.so), or when the client directory is not named after its version. CLIv2 would otherwise fail at logon with DBCHINI failed.
Example
export FASTBCP_TTU_PATH=/opt/teradata/client/20.00
./FastBCP \
--connectiontype adbc_teradata \
--sourceconnectstring "Server=td-host;Port=1025;User Id=FastUser;Password=FastPassword;SSL Mode=disable" \
--sourceschema "TPCH" \
--sourcetable "ORDERS" \
--directory "/data/export/orders" \
--fileoutput "orders.parquet" \
--parallelmethod Ntile \
--distributekeycolumn "o_orderkey" \
--paralleldegree 8