Favicon of Unity Catalog

Unity Catalog

Unity Catalog is an Apache-2.0 catalog hosted by the LF AI & Data Foundation that governs Delta, Iceberg, and Hudi tables alongside files, functions, and AI models, speaking both the Hive metastore API and the Iceberg REST catalog API.

LicenseOpen source (permissive)· Apache-2.0
DeploymentSelf-hosted
PricingFree
Operational complexityMedium
WorkloadInteractiveBatch
LanguageJava

Use it when

  • One governance interface should cover more than tables: volumes of files, SQL and Python functions, and AI models with versions sit beside Delta tables.
  • You are migrating generations of engines; it speaks both the Hive metastore idiom older engines know and the Iceberg REST API newer ones expect.
  • The platform is Delta-first and wants catalog-managed commits, with the server validating writes before they land.
  • Engines need vended credentials for tables, volumes, models, and paths rather than shared cloud keys.

Think twice when

  • You expect the Databricks product; this is a separate Apache-2.0 open-source implementation without row filters, column masks, or tags.
  • Iceberg is your primary format: the Iceberg REST endpoint is read-only, and Iceberg or Hudi arrive via UniForm on Delta tables, not natively.
  • Institutional maturity matters; the project sits at the Linux Foundation's sandbox level, younger than Polaris's ASF standing.
  • You deploy the defaults: the built-in H2 database is for development, and production needs MySQL or PostgreSQL configured.

How it runs

A Java 17 server from a tarball, Docker image, or Helm chart, with a UI alongside and MySQL or PostgreSQL behind it. Managed tables are Delta only; Parquet, ORC, JSON, CSV, and Avro attach as external tables. Governance is eighteen object-level privileges with OAuth, OIDC, and SCIM2. Table maintenance stays with whichever engine writes the table.

Details

Compare

How Unity Catalog answers the questions Table Catalogs turns on.

Table Catalogs
How it works
ProtocolThree surfaces, and a fourth that is claimed rather than implemented. Its own OpenAPI REST API over the three-level namespace; the UC Delta API added in 0.5.0, where Delta clients create, load, alter and commit catalog-managed tables with the server validating commits before they land; and an Iceberg REST catalog that is read-only, config, list and load namespaces and tables, existence checks, and nothing that writes. Hive metastore compatibility is stated once on the project's documentation home and has no endpoint in the server behind it
What it catalogsThe broadest answer on the page, and the reason this column exists, catalogs, schemas, tables, volumes holding unstructured files, functions as SQL and Python UDFs, registered models with versions, plus credentials and external locations as first-class objects, with metric views arriving in 0.6.0. Where the other rows resolve table names, this one is a governance interface for data and AI assets together
Branching and versioningDelta's, which is time travel by table version rather than anything git-style, no branches, no tags, no cross-table commits. What the catalog adds is commit coordination: catalog-managed Delta commits go through the server, which validates them and tracks the ones not yet backfilled
Running it
MaintenanceNone: the server catalogs and governs, and compaction, vacuum and file cleanup stay with whichever engine writes the table, exactly as they did before a catalog existed. Worth stating rather than leaving blank, because the two managed rows on this page have started automating it
What you runA Java 17 server, from a tarball, the Docker image or the Helm chart, with a UI alongside it. An H2 database is the default (in memory when the environment is test, a local file when it is dev) and MySQL or PostgreSQL are configured through Hibernate for anything real, which is the step the default quietly leaves out
Connections
Table formatsDelta first and by design, managed tables are Delta and nothing else, with the server refusing a non-Delta managed table outright, while Parquet, ORC, JSON, CSV, Avro and text are supported as external tables. Iceberg and Hudi arrive through UniForm rather than natively: a Delta table carrying Iceberg metadata, readable by an Iceberg client through the read-only endpoint
Engine supportSpark through per-Spark-version connector artifacts, and Trino, DuckDB, Daft, XTable, Celerdata, Kuzu, PuppyGraph and Spice AI as documented integrations. The asymmetry is the one in the protocols: the Delta path is where engines write, and an engine arriving with only an Iceberg REST client can read UniForm tables but cannot write through that endpoint
Access
Access controlEighteen privileges granted per securable (CREATE CATALOG, USE SCHEMA, SELECT, MODIFY, EXECUTE, READ VOLUME, READ and WRITE FILES and the rest) with an admin holding a metastore token, OAuth and OIDC for users and services, and SCIM2 for user provisioning. Object-level and no finer: no row filters, no column masks, no tags, which is the clearest line between this and the Databricks product of the same name
Storage credentialsFour vending endpoints rather than one (tables, volumes, model versions and paths) each returning AWS temporary credentials, an Azure user delegation SAS or a GCP OAuth token with an expiry the client is told to cache against. Credential and external-location objects hold the underlying cloud identity, and the Delta API covers vending for both reads and writes
Cost
Billing unitNothing to meter. Apache-2.0 with no commercial edition of the open-source project, so the cost is the server, the database behind it and the cloud storage underneath, the vendor product sharing the name is a separate thing entirely

Share:

Alternatives to Unity Catalog

Favicon

 

  
  
Favicon

 

  
  
Favicon