Skip to content

Wire-protocol ADBC driver

Teradata

Wire-Protocol TD2 over TLS
No ODBC, no TTU on the TLS path.

Back to all drivers
Database
Teradata
Wire protocol
TD2 over TLS
Platforms
Linux (x64) · Windows (x64)

Overview

This is a pure-native ADBC driver for Teradata that logs on and runs SQL over the Teradata wire protocol directly, over TLS on the gateway's HTTPS port — no ODBC, no JDBC, no Teradata Tools and Utilities (TTU). Servers that only expose the legacy port 1025 are reached through the customer's TTU CLIv2, loaded in process. Results are decoded straight into Apache Arrow RecordBatches, Arrow data is bulk-loaded with packed INSERT requests, and the driver ships as a self-contained binary for Linux and Windows.

What it does differently

No ODBC, no TTU over TLS

The TD2 logon and the request/response protocol are implemented in the driver, so the TLS path needs no Teradata client software to install or version-match.

Results straight into Arrow

Teradata response rows are decoded directly into Arrow column buffers, with DECIMAL as decimal128, PERIOD, ARRAY, VECTOR, UDT and LOB columns, and rows larger than 64 KB.

Bulk ingest via packed INSERT

Arrow RecordBatches are loaded with many rows per request, with create, append, replace and create-append modes.

Legacy port when you need it

Port 1025 logons go through the customer's TTU CLIv2, loaded in process, on Linux and Windows.

Authentication

  • TD2 username / password
  • Kerberos (KRB5, TDNEGO) and JWT, over TLS or on the legacy port
  • LDAP on the legacy port through TTU CLIv2
  • TLS with sslmode prefer, require, verify-ca or verify-full and a configurable CA store

Connect from your language

The driver loads by name across every ADBC client. Pick your language:

query.py
import adbc_driver_manager.dbapi as dbapi
import pandas as pd

with dbapi.connect(driver="arpeteradata",
                   db_kwargs={"uri": "teradata://dbuser:<password>@host/appdb?sslmode=verify-full"}) as conn:
    # Arrow-backed dtypes, no Python-object columns
    df = pd.read_sql("SELECT * FROM appdb.orders", conn, dtype_backend="pyarrow")

Install the Teradata driver

install.sh
curl -fsSL https://raw.githubusercontent.com/arpe-io/adbc-drivers/main/install.sh \
  | sh -s -- arpeteradata --license /path/to/your.lic
Full installation guide

Reference documentation

Every option, every type mapping and the full troubleshooting guide live in the docs.