Iceberg tables support the following types:
Type | Description | Notes |
---|---|---|
boolean |
True or false | |
int |
32-bit signed integers | Can promote to long |
long |
64-bit signed integers | |
float |
32-bit IEEE 754 floating point | Can promote to double |
double |
64-bit IEEE 754 floating point | |
decimal(P,S) |
Fixed-point decimal; precision P, scale S | Scale is fixed and precision must be 38 or less |
date |
Calendar date without timezone or time | |
time |
Time of day without date, timezone | Stored as microseconds |
timestamp |
Timestamp without timezone | Stored as microseconds |
timestamptz |
Timestamp with timezone | Stored as microseconds |
string |
Arbitrary-length character sequences | Encoded with UTF-8 |
fixed(L) |
Fixed-length byte array of length L | |
binary |
Arbitrary-length byte array | |
struct<...> |
A record with named fields of any data type | |
list<E> |
A list with elements of any data type | |
map<K, V> |
A map with keys and values of any data type |
Iceberg tracks each field in a table schema using an ID that is never reused in a table. See correctness guarantees for more information.