Iceberg tables support the following types:

booleanTrue or false
int32-bit signed integersCan promote to long
long64-bit signed integers
float32-bit IEEE 754 floating pointCan promote to double
double64-bit IEEE 754 floating point
decimal(P,S)Fixed-point decimal; precision P, scale SScale is fixed and precision must be 38 or less
dateCalendar date without timezone or time
timeTime of day without date, timezoneStored as microseconds
timestampTimestamp without timezoneStored as microseconds
timestamptzTimestamp with timezoneStored as microseconds
stringArbitrary-length character sequencesEncoded with UTF-8
fixed(L)Fixed-length byte array of length L
binaryArbitrary-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.