Table Format · Schema
Apache Iceberg Table Metadata
Schema for Apache Iceberg table metadata structure (v2 format)
Data LakehouseOpen Table FormatApache IcebergDelta LakeApache HudiData LakeACID TransactionsSchema EvolutionTime Travel
Properties
| Name | Type | Description |
|---|---|---|
| format-version | integer | Iceberg table format version (1 or 2) |
| table-uuid | string | Unique identifier for the table |
| location | string | Base storage location (e.g., s3://bucket/path/table) |
| last-updated-ms | integer | Timestamp of last update in milliseconds since epoch |
| current-schema-id | integer | ID of the current active schema |
| schemas | array | All schema versions for this table |
| default-spec-id | integer | ID of the default partition spec |
| partition-specs | array | Partition specifications for the table |
| current-snapshot-id | integer | ID of the current table snapshot |
| snapshots | array | List of table snapshots for time travel |
| properties | object | Custom table properties |
JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://api-evangelist.github.io/table-format/json-schema/table-format-iceberg-table-schema.json",
"title": "Apache Iceberg Table Metadata",
"description": "Schema for Apache Iceberg table metadata structure (v2 format)",
"type": "object",
"properties": {
"format-version": {
"type": "integer",
"description": "Iceberg table format version (1 or 2)",
"enum": [1, 2]
},
"table-uuid": {
"type": "string",
"format": "uuid",
"description": "Unique identifier for the table"
},
"location": {
"type": "string",
"description": "Base storage location (e.g., s3://bucket/path/table)"
},
"last-updated-ms": {
"type": "integer",
"description": "Timestamp of last update in milliseconds since epoch"
},
"current-schema-id": {
"type": "integer",
"description": "ID of the current active schema"
},
"schemas": {
"type": "array",
"description": "All schema versions for this table",
"items": {
"type": "object",
"properties": {
"schema-id": {"type": "integer"},
"fields": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {"type": "integer"},
"name": {"type": "string"},
"type": {"type": "string"},
"required": {"type": "boolean"},
"doc": {"type": "string"}
}
}
}
}
}
},
"default-spec-id": {
"type": "integer",
"description": "ID of the default partition spec"
},
"partition-specs": {
"type": "array",
"description": "Partition specifications for the table",
"items": {
"type": "object",
"properties": {
"spec-id": {"type": "integer"},
"fields": {"type": "array"}
}
}
},
"current-snapshot-id": {
"type": "integer",
"description": "ID of the current table snapshot"
},
"snapshots": {
"type": "array",
"description": "List of table snapshots for time travel",
"items": {
"type": "object",
"properties": {
"snapshot-id": {"type": "integer"},
"parent-snapshot-id": {"type": "integer"},
"sequence-number": {"type": "integer"},
"timestamp-ms": {"type": "integer"},
"manifest-list": {"type": "string"},
"summary": {
"type": "object",
"properties": {
"operation": {
"type": "string",
"enum": ["append", "replace", "overwrite", "delete"]
}
}
}
}
}
},
"properties": {
"type": "object",
"description": "Custom table properties",
"additionalProperties": {"type": "string"}
}
},
"required": ["format-version", "table-uuid", "location"]
}