Iceberg Support¶
Unity Catalog Server exposes Apache Iceberg tables through the Iceberg REST catalog APIs of IcebergRestCatalogService.
Note
The initial support for loading Iceberg tables located in local paths and S3 was added through this commit.
server.iceberg-table.enabled¶
server.iceberg-table.enabled configuration property (in etc/conf/server.properties) controls whether Unity Catalog Server accepts changes to Apache Iceberg tables through IcebergRestCatalogService.
| Property | Value |
|---|---|
| Default | true |
| Valid values | true or false (case-insensitive) |
With the property enabled (default), any engine that supports the Apache Iceberg REST protocol can create, write to, rename and drop Iceberg tables (and manage namespaces) in Unity Catalog Server.
With the property disabled, the Iceberg REST API turns read-only. Existing Iceberg tables stay readable, but the following operations are rejected:
createNamespace,updateNamespacePropertiesanddropNamespacecreateTable,updateTable(commits),renameTableanddropTable
IcebergRestCatalogService checks the property (using ServerProperties.checkIcebergTableEnabled) before it handles any of these requests and fails with an INVALID_ARGUMENT error:
Iceberg table writes are currently disabled. To enable them, set 'server.iceberg-table.enabled=true' in server.properties
Endpoints Advertised to Iceberg Clients
The config endpoint lists only the read endpoints when the property is disabled. Iceberg clients that honor the advertised endpoints do not even try to write.
ServerProperties validates the property when created, so a value other than true or false fails the server startup.