Comparing lakehouse catalogs

Which catalog should govern the tables?

The catalog choice is mostly a governance decision: all of them can point engines at tables, but they differ sharply in how they handle permissions, credential vending, and whether their API is open enough to swap later.

Open APIAccess controlCredential vendingBest suited to
Apache PolarisIceberg REST, open sourceRole based, fine grainedYesMulti-engine estates wanting an open governed catalog
Project NessieIceberg REST plus its own APIBasicLimitedTeams that want Git-style branching over data
AWS Glue Data CatalogProprietary, with an Iceberg REST endpointIAM and Lake FormationVia Lake FormationEstates already committed to AWS
Unity CatalogOpen sourced, Databricks ledRich, unified across assetsYesDatabricks-centred platforms
Hive MetastoreThrift, ubiquitous but datedMinimalNoLegacy compatibility rather than new builds
LakekeeperIceberg REST, open sourceRole basedYesLightweight self-hosted deployments

Choosing

  • Several engines from different vendors need the same tablesAn Iceberg REST catalog such as Polaris or Lakekeeper
  • Everything runs inside one cloud providerThat provider's managed catalog, accepting the coupling
  • You need experimentation branches over production dataNessie, for its branching model
  • You are migrating off HiveAn Iceberg REST catalog, and plan the migration as its own project

Caveats

  • Credential vending is the feature that most often decides this in practice. Without it, every engine needs its own long-lived storage credentials, which undoes much of the governance benefit.
  • The Iceberg REST specification is what makes catalogs swappable. A catalog that implements it can usually be replaced; one that does not, cannot.

Related reference entries