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.
