MainTargetsDuckdb
Data Types
Data Types Mapping
| Arrow Type | DuckDB Type | Notes |
|---|---|---|
Int8 | TINYINT | |
Int16 | SMALLINT | |
Int32 | INTEGER | |
Int64 | BIGINT | |
UInt8 | UTINYINT | |
UInt16 | USMALLINT | |
UInt32 | UINTEGER | |
UInt64 | UBIGINT | |
Float16 | FLOAT | |
Float32 | FLOAT | |
Float64 | DOUBLE | |
Decimal128(p,s) | DECIMAL(p,s) | Falls back to VARCHAR when precision exceeds 38 |
Decimal256(p,s) | DECIMAL(p,s) | Falls back to VARCHAR when precision exceeds 38 |
| Arrow Type | DuckDB Type | Notes |
|---|---|---|
Boolean | BOOLEAN |
| Arrow Type | DuckDB Type | Notes |
|---|---|---|
Date32, Date64 | DATE | |
Time32, Time64 | TIME | |
Timestamp(s, None) | TIMESTAMP_S | |
Timestamp(ms, None) | TIMESTAMP_MS | |
Timestamp(us, None) | TIMESTAMP | Microsecond precision, DuckDB's default |
Timestamp(ns, None) | TIMESTAMP_NS | |
Timestamp(ns, "UTC") | TIMESTAMP_NS | |
Timestamp(*, "UTC") | TIMESTAMP | UTC timestamps except nanosecond |
Timestamp(*, tz) | TIMESTAMPTZ | Time zones other than UTC |
Interval | INTERVAL | |
Duration | VARCHAR |
| Arrow Type | DuckDB Type | Notes |
|---|---|---|
Utf8, LargeUtf8 | VARCHAR |
| Arrow Type | DuckDB Type | Notes |
|---|---|---|
Binary, LargeBinary, FixedSizeBinary | BLOB |
| Arrow Type | DuckDB Type | Notes |
|---|---|---|
Utf8 with arrow.json extension | VARIANT | DuckDB 1.5+. Falls back to JSON on older versions. |
Struct | STRUCT(...) | Field names and types preserved |
Map | MAP(K, V) |
| Arrow Type | DuckDB Type | Notes |
|---|---|---|
List<T>, LargeList<T>, FixedSizeList<T> | T[] |
Nullability
Nullable source columns are nullable on the target. All columns except primary keys are nullable by default to handle CDC edge cases. Enable preserve_source_nullability to carry over NOT NULL constraints from the source schema.
Last updated on