Skip to content
Great engineers knowNEW 3 min read · All formats

Catalogs: Unity, Polaris, Iceberg REST

What a catalog does for a lakehouse, and the open catalogs that arrived in 2024 and 2025.

You will learn

  • What a catalog does in a lakehouse
  • The main catalogs: Hive Metastore, Glue, Unity Catalog, Polaris, Iceberg REST
  • What the Iceberg REST protocol standardises
  • Why open catalogs became the big story of 2024 and 2025

Read first

Comfortable with these? Read on.

TL;DR A catalog maps table names to table locations and metadata, and increasingly handles permissions, credentials and commits. In 2024 Databricks open-sourced Unity Catalog and Snowflake launched Polaris (now an Apache incubating project), both implementing the Iceberg REST catalog protocol, so many engines can share one governed set of tables.

What a catalog does

  • Names: sales.orders resolves to a storage location and table format.
  • Commits: for Iceberg, the catalog performs the atomic pointer swap that makes a commit; it is part of the transaction path.
  • Governance: permissions on catalogs, schemas, tables, columns and rows; audit logs; lineage.
  • Credential vending: instead of giving every engine broad storage keys, the catalog hands out short-lived, table-scoped credentials.
  • Discovery: search, comments, tags and ownership.

The main catalogs

CatalogWhat it is
Hive MetastoreThe original Hadoop catalog, a service backed by a database. Universally supported, but no fine-grained governance and not designed for table formats.
AWS Glue Data CatalogManaged, Hive-compatible catalog on AWS, with Iceberg support and Lake Formation for permissions.
Unity CatalogDatabricks' governance catalog; open-sourced in June 2024 (Linux Foundation AI & Data). Supports Delta, Iceberg through a REST API, and also volumes, functions and models.
Apache Polaris (incubating)An open-source implementation of the Iceberg REST catalog, launched by Snowflake in 2024 and donated to Apache.
Project NessieGit-like catalog for Iceberg with branches, tags and multi-table commits.
Iceberg REST catalogNot a product but a protocol: an OpenAPI spec any catalog can implement.

The Iceberg REST protocol

Before REST, every engine needed a client library for every catalog backend (Hive, Glue, JDBC, Nessie...). The REST spec defines HTTP endpoints for listing namespaces and tables, loading table metadata and committing changes, so an engine that speaks REST works with any compliant catalog. The server can also vend credentials and perform server-side commit validation.

PySpark · Spark connected to a REST catalog
spark = (SparkSession.builder
    .config("spark.sql.catalog.lake", "org.apache.iceberg.spark.SparkCatalog")
    .config("spark.sql.catalog.lake.type", "rest")
    .config("spark.sql.catalog.lake.uri", "https://catalog.example.com/api/catalog")
    .config("spark.sql.catalog.lake.warehouse", "analytics")
    .getOrCreate())
spark.table("lake.sales.orders").show()

Why it matters

Open table formats made data portable, but the catalog still decided which engines could find and write tables, and enforced permissions in one vendor's system. With open catalogs implementing a shared protocol, the same governed tables can be read and written by Spark, Trino, Flink, Snowflake, Databricks and others. The competitive focus has moved from formats to catalogs and governance.

Watch out: two catalogs managing the same table is dangerous: each believes it owns the commit pointer, and writes through one are invisible or overwritten in the other. Pick one catalog as the owner per table; let others read through federation or REST.

Common mistakes

Treating the catalog as just a name lookup

For Iceberg it is part of every commit.

Sharing long-lived storage keys with every engine

Use credential vending and catalog permissions.

Registering one table in two writable catalogs

Commits can be lost.

Key takeaways

  • A catalog resolves names, performs commits (Iceberg), governs access and vends credentials.
  • Iceberg REST is a protocol any catalog can implement.
  • Unity Catalog (open-sourced 2024) and Apache Polaris implement it.
  • One writable catalog should own each table.

Check yourself

3 questions

1. What role does the catalog play in an Iceberg commit?

Show the answer

It atomically swaps the pointer to the new metadata file. The pointer swap in the catalog is the atomic step.

2. What is the Iceberg REST catalog?

Show the answer

An open protocol (OpenAPI spec) for catalog operations. It standardises how engines talk to catalogs.

3. What is credential vending?

Show the answer

The catalog issuing short-lived, scoped storage credentials to engines. Engines get temporary access only to the tables they are allowed to use.

Go deeper

Primary sources: Iceberg REST catalog spec · Unity Catalog (open source) · Apache Polaris