Supported Compression Types
| Parquet | ORC | AVRO | |
|---|---|---|---|
| Snappy | Yes | Yes | Yes |
| ZSTD (zstandard) | Yes | Yes | Yes |
| ZLIB | No | Yes | No |
| LZ4 | No | Yes | No |
| GZIP (deflate) | Yes | No | Yes |
Supported Data Types
| Teradata Type | Iceberg Type | Delta Type |
|---|---|---|
| BYTEINT | BOOLEAN | BOOLEAN |
| SMALLINT | INTEGER | SMALLINT |
| INTEGER | INTEGER | INTEGER |
| BIGINT | LONG | BIGINT |
| REAL | DOUBLE | DOUBLE |
| DATE | DATE | DATE |
| DECIMAL1 | DECIMAL | DECIMAL |
| DECIMAL2 | DECIMAL | DECIMAL |
| DECIMAL4 | DECIMAL | DECIMAL |
| DECIMAL8 | DECIMAL | DECIMAL |
| DECIMAL16 | DECIMAL | DECIMAL |
| NUMBER_DT | DECIMAL | DECIMAL |
| VARCHAR | STRING | STRING |
| TIME | TIME | N/A |
| TIMESTAMP | TIMESTAMP | TIMESTAMP |
| TIMESTAMP_WTZ | TIMESTAMP_WTZ | TIMESTAMP (UTC) |
| BYTE(n) | FIXED(n) | BINARY |
| VARBYTE(n) | BINARY | BINARY |
| CHAR(n) - LATIN | UUID | STRING |
| INTERVAL_YTM_DT | STRING | STRING |
| INTERVAL_MONTH_DT | STRING | STRING |
| INTERVAL_YEAR_DT | STRING | STRING |
| INTERVAL_DAY_DT | STRING | STRING |
| INTERVAL_DTH_DT | STRING | STRING |
| INTERVAL_DTM_DT | STRING | STRING |
| INTERVAL_DTS_DT | STRING | STRING |
| INTERVAL_HOUR_DT | STRING | STRING |
| INTERVAL_HTM_DT | STRING | STRING |
| INTERVAL_HTS_DT | STRING | STRING |
| INTERVAL_MINUTE_DT | STRING | STRING |
| INTERVAL_MTS_DT | STRING | STRING |
| INTERVAL_SECOND_DT | STRING | STRING |
Data Type Limitations
| Table Format | Impacted Data Types | Notes | Workaround |
|---|---|---|---|
| Delta | DECIMAL | Reading decimal values for partition columns has incorrect validation. The trailing zeroes in rescaled decimal values count towards total precision. This results in a validation error when the calculated precision exceeds the max allowed precision value, even though the actual value fits. | Decimal values written into a partition field must have precision + scale not exceeding the target Delta schema max precision. When creating a Delta schema with partition decimal fields, allocate more precision digits for partition columns than necessary for the max value. For example, if a decimal partition field expects to have a value of 2.1, define it as decimal(3,2), and not decimal(2,2), so that the rescaled value being validated (2.10) fits into max precision (3). |
| Decimal values are not supported in expressions, such as the WHERE clause, if the column is a partition column. | N/A | ||
| Decimal values on INSERT/UPDATES are evaluated to fit into range calculated by precision and scale.* The write operations with decimal values which do not fit into the range expected to result in either numeric overflow error (for most INSERTs): Failed [2616 : 22003] Numeric overflow occurred during computation. or decimal range validation error (for some INSERTs and all UPDATEs)** like: Decimal value for column 'Column_1' is out of range. Try increasing the column precision to extend the range. * Range is calculated with precision - scale number dictating the max abs value, i.e. for decimal(4,4) it is [0, .9999] , for decimal(4,2) it is [0, 99.99], and for decimal(8,4) it is [0, 9999.9999]. ** INSERT operations do not have the column name; use COLUMN_X alias instead. For UPDATE operations, the valid column name should be shown in the message instead. |
N/A | ||
| Iceberg, Delta | ARRAY | Delta Read and Iceberg Read support reading Array data, such as VARCHAR. Support for writing array values (Insert, Update, Delete) with Delta Write and Iceberg Write is currently not available. |
N/A |
| Delta | VARCHAR CHAR VARBYTE BYTE BLOB |
Columns of these character types do not use user-defined length. According to the Databricks API for Delta write functionality, length is not an available option. Spark has a data type that allows Length, but it is not compatible with the Databricks API. | N/A |
| Delta | TIME | Delta does not support TIME data type and such values are not supported for Delta Write. | Use TIMESTAMP instead of TIME when creating Delta tables. If data needs to be inserted to a Delta table from a source containing TIME fields (i.e., local Teradata table or remote Iceberg table), you must properly cast TIME data into TIMESTAMP value so it can be written to the Delta table. |
| Iceberg, Delta | BLOB | BLOB objects are not supported for write operations. (Reading these values is still supported.) | Use VARCHAR to store a link to a large binary object; reading such values will be on the client. |