ibis-framework-teradata
Use ibis to join local data with tables on Teradata. This is not feature complete.
ibis.memtable()-> temporary (volatile) Teradata tables, uploaded automatically- Polars, pandas or Arrow -> local data inputs
- Local + remote joins -> run on Teradata, using the same connection as the upload
- Close the connection -> temporary tables dropped
Install
pip install 'ibis-framework-teradata'
- Python 3.11+; Ibis 12
- After installing, use
ibis.teradata(no separate package import required)
Join local data to Teradata
import os
import ibis
import polars as pl
lookup = pl.DataFrame({
'customer_id': [101, 205],
'segment': ['retail', 'partner'],
})
with ibis.teradata.connect(
host=os.environ['TD_HOST'],
user=os.environ['TD_USER'],
password=os.environ['TD_PASSWORD'],
database='analytics',
) as con:
sales = con.table('sales')
local = ibis.memtable(lookup)
joined = sales.join(local, 'customer_id')
query = joined.group_by('segment').aggregate(total=joined.amount.sum())
result = con.to_polars(query)
Handy examples
Inside an open connection (i.e., in the above with block):
sql = con.compile(query) # Preview the SQL
frame = con.execute(query) # pandas result
arrow = con.to_pyarrow(query) # Arrow result
con.cleanup_memtables() # Clear uploads if keeping the connection open
A date lookback:
events = con.table('events')
lookback = ibis.literal(7).as_interval('D')
query = events.filter(
events.dt.between(events.index_date - lookback, events.index_date)
)
result = con.to_polars(query)
Trailing spaces in remote text:
customers = con.table('customers')
customers = customers.mutate(code=customers.code.rstrip())
Good to know
- Includes common operations: joins, filters, grouping, strings and date calculations
- Most advanced ibis features aren't supported (yet?)
- Day lookbacks: up to 9999 days in either direction
- Time precision: microseconds; nanoseconds aren't supported
Metadata
Release files for ibis-framework-teradata 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ibis_framework_teradata-0.1.0.tar.gz | 24.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ibis_framework_teradata-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 39.5 kB
Release files / ibis_framework_teradata-0.1.0.tar.gz
| Download URL | ibis_framework_teradata-0.1.0.tar.gz |
|---|---|
| Size | 24.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2e96b9dd5612340f5bcc06e1ff9c06662d6778422723e1ceb743606bf387de37
|
|
BLAKE2b-256 checksum How to use checksums |
d3a1b8949bf099d2d38ee8c6603a5e33a7aa9364be46aa86b1e7d50d00dfaa32
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.
Transparency logRelease files / ibis_framework_teradata-0.1.0-py3-none-any.whl
| Download URL | ibis_framework_teradata-0.1.0-py3-none-any.whl |
|---|---|
| Size | 14.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7239102755664b0e638cbf6d560449ac62302548bf490e95b0fcdab46bd9dd79
|
|
BLAKE2b-256 checksum How to use checksums |
8b9533080699bf28f76e179ed43bae9aa544d7a0003c155fb85f577f9c16b68e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.
Transparency log