What is Unity Catalog?
Summary
- Unity Catalog is a catalog and governance layer for data and AI assets. It names tables, views, volumes, functions and models in a three-level
catalog.schema.assetnamespace and controls who can use each one. - It comes in two forms: Unity Catalog OSS, an Apache 2.0 project that Databricks contributed to the LF AI & Data Foundation in June 2024 (a Sandbox-stage project), and Unity Catalog on Databricks, the governance layer built into the platform.
- The open-source project ships an OpenAPI specification, a server, clients and a Spark connector, and it also speaks the Hive metastore API and the Iceberg REST catalog API, so several engines can share one catalog.
- On Databricks, Unity Catalog adds privileges managed with SQL
GRANT, attribute-based policies, row and column filters, automatic lineage, an audit log system table, data quality monitoring and OpenSharing (formerly Delta Sharing). - Databricks workspaces created after November 8, 2023 have Unity Catalog enabled automatically.
What is Unity Catalog?
Unity Catalog is a catalog for data and AI assets. It records which tables, volumes, functions and models exist, where their files live and who may use them, and it enforces those rules when an engine asks for access. Two implementations share one object model. Unity Catalog OSS is a server you run yourself and point engines at. Unity Catalog on Databricks is the managed version that sits under every query, notebook and model call in a workspace. If you want one open catalog shared by several engines, start with the OSS server; if you work on Databricks, you already have the managed one.
Core concepts
| Concept | What it is | Why it matters |
|---|---|---|
| Three-level namespace | catalog.schema.asset, for example unity.default.numbers |
One naming scheme for every asset type and every engine |
| Securable objects | Tables, views, volumes, functions and registered models | You grant privileges on each named object |
| Volumes | Governed locations for non-tabular files such as JSON, text or Lance datasets | Files get the same access model as tables |
| Managed and external assets | Managed: the catalog governs the asset and its storage lifecycle. External: governance only | Determines whether the catalog or you own the files |
| Credential vending | The server issues temporary credentials for an asset's storage location | Engines don't need standing cloud keys |
| Open APIs | An OpenAPI REST spec, plus compatibility with Hive's metastore API and Iceberg's REST catalog API | Many engines can read cataloged data through these APIs |
Unity Catalog OSS
The open-source project lives at github.com/unitycatalog/unitycatalog. Its license, Apache 2.0, covers the OpenAPI specification, the server and the clients. It catalogs Delta Lake tables alongside formats such as Apache Parquet, JSON and CSV, and it governs volumes, functions and MLflow registered models. Release 0.6.0 (August 2026) added SQL views as a catalog object. Users can authenticate through an external identity provider, and an admin grants privileges such as USE CATALOG with the CLI. The quickstart is candid that the APIs "are currently evolving and should not be assumed to be stable", so pin your versions.
A local trial needs Java 17 and a clone of the repository:
# terminal 1 (unitycatalog folder)
bin/start-uc-server
# terminal 2 (same folder)
bin/uc catalog list
bin/uc table list --catalog unity --schema default
# terminal 2 (Apache Spark folder)
bin/spark-sql --master "local[*]" \
--packages "io.delta:delta-spark_4.2_2.13:4.4.0,io.unitycatalog:unitycatalog-spark_4.2_2.13:0.6.0" \
--conf "spark.sql.extensions=io.delta.sql.DeltaSparkSessionExtension" \
--conf "spark.sql.catalog.spark_catalog=org.apache.spark.sql.delta.catalog.DeltaCatalog" \
--conf "spark.sql.catalog.unity=io.unitycatalog.spark.UCSingleCatalog" \
--conf "spark.sql.catalog.unity.uri=http://localhost:8080" \
--conf "spark.sql.catalog.unity.token=" \
--conf "spark.sql.defaultCatalog=unity"
The Spark connector is published per Spark line (4.0.x, 4.1.x and 4.2.x as of release 0.6.0), so match the artifact to your cluster. An empty token means no authentication, which is fine on localhost only. Inside the shell, SHOW TABLES IN default; lists the sample tables.
How Databricks approaches Unity Catalog
On Databricks, Unity Catalog is the governance layer built into the platform. Once it's enabled for a workspace, it works beneath every data and AI interaction: it enforces access control when you query a table or call a model, tracks lineage as assets are used and logs activity for auditing.
The namespace is the same, with more securable types, including model services and MCP services. A workspace attaches to a metastore, catalogs are created in it, and objects such as storage credentials, external locations, connections and shares sit directly under it. The managed service adds:
- Access control: privileges, attribute-based policies, row and column filters and workspace bindings, managed with SQL, the Databricks CLI or Catalog Explorer.
- Lineage and auditing: automatic lineage from source data through to models, services and dashboards, plus an audit log system table.
- Quality and sharing: data classification, data quality monitoring and data sharing through OpenSharing.
- AI governance: AI assets and AI traffic governed together with Unity Gateway.
- Open access: an Iceberg REST catalog endpoint (
/api/2.1/unity-catalog/iceberg-rest) with credential vending, so external engines can work with Unity Catalog tables.
Privileges are standard SQL:
GRANT USE CATALOG ON CATALOG main TO `finance-team`;
GRANT USE SCHEMA ON SCHEMA main.default TO `finance-team`;
GRANT CREATE TABLE ON SCHEMA main.default TO `finance-team`;
FAQs
Is Unity Catalog open source?
Yes. Unity Catalog OSS is Apache 2.0 licensed, including its OpenAPI specification, server and clients, and the LF AI & Data Foundation hosts it as a Sandbox-stage project. The Databricks service uses the same object model and adds managed features on top.
Which engines can use Unity Catalog?
Apache Spark connects through the unitycatalog-spark connector shown above. Other engines go through the REST API or the Iceberg REST catalog API, and the OSS docs include integration guides for engines such as DuckDB.
What is the difference between a metastore and a catalog?
On Databricks, a workspace is attached to a metastore and catalogs are created inside it. A catalog is the first level of the catalog.schema.asset name, while storage credentials and external locations attach to the metastore itself.
Do I have to set anything up on Databricks?
Usually not. Workspaces created after November 8, 2023 have Unity Catalog enabled automatically; older workspaces follow the documented upgrade path.
The information provided herein is for general informational purposes only and may not reflect the most current product capabilities or configurations.