Schemas
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.