Unity Catalog OSS versus Snowflake Polaris?
Summary
- Unity Catalog OSS and Apache Polaris, the open-source project behind Snowflake Open Catalog, are both Apache 2.0 catalog servers that implement the Iceberg REST catalog API, so Iceberg engines can use either.
- Polaris is built around Apache Iceberg: internal and external Iceberg catalogs, nested namespaces, Iceberg views, table-maintenance policies, and generic tables (in beta) for other formats.
- Unity Catalog OSS is a multi-format catalog: Delta Lake and Iceberg tables share schemas with views, volumes, functions and registered models, reachable through its own REST API, the UC Delta API and the Iceberg REST API.
- The security models differ. Polaris uses role-based access control with principal roles and catalog roles. The Unity Catalog OSS server grants privileges to individual users.
- Weigh Polaris for an all-Iceberg estate that wants roles out of the box. Weigh Unity Catalog OSS when Delta and Iceberg tables, files and models belong in one catalog.
Unity Catalog OSS versus Snowflake Polaris?
Pick by the shape of your data estate. Both are open-source catalog servers under the Apache License 2.0, and both implement the Iceberg REST catalog API, so Apache Spark, Apache Flink and other Iceberg REST clients can work with either one. Apache Polaris is an Iceberg catalog first, with role-based access control and table-maintenance policies built in. Unity Catalog OSS is a multi-format catalog for Delta Lake and Iceberg tables, unstructured files and AI assets. If your tables are all Iceberg, Polaris fits that design. If you run Delta Lake next to Iceberg, or want volumes, functions and models in the same namespace, Unity Catalog OSS fits that one.
What "Snowflake Polaris" means today
Snowflake introduced Polaris in 2024, and the project later moved to the Apache Software Foundation. It announced its graduation to an Apache top-level project on February 19, 2026, and its latest release is 1.8.0. Snowflake's hosted version is Snowflake Open Catalog, which Snowflake calls "a managed service for Apache Polaris". Snowflake's documentation says new customers should use Snowflake Horizon Catalog and that customers without an existing Open Catalog account can't sign up for one. Unity Catalog OSS is an LF AI & Data Foundation Sandbox project. Its latest release is 0.7.0 (October 13, 2026), and its managed counterpart is Unity Catalog in Databricks.
Unity Catalog OSS vs Apache Polaris: how they compare
Each cell reflects that project's own documentation for the release named.
| Capability | Unity Catalog OSS 0.7.0 | Apache Polaris 1.8.0 |
|---|---|---|
| Iceberg REST catalog API | Create, read, write, rename and drop Iceberg tables; Delta tables appear only when they carry UniForm Iceberg metadata | Implements Iceberg's REST API; internal catalogs are read-write, external catalogs are synced read-only |
| Delta Lake | Managed and external Delta tables, with catalog-managed commits through the UC Delta API | Generic tables (beta), with no commit coordination from Polaris |
| Other objects | SQL views, metric views, volumes, functions, registered models | Iceberg views, generic tables, policies for compaction, orphan-file removal and snapshot expiry |
| Access control | Owners plus privileges such as SELECT and MODIFY, granted to individual users when authorization is enabled |
Privileges on catalog roles, granted through principal roles; can delegate decisions to an external policy decision point |
| Identity | Users registered through a SCIM 2.0 API; tokens exchanged from an external identity provider | Internal authentication, external OIDC identity providers, or both |
| Credential vending | Tables, volumes, model versions and paths | Iceberg tables; not the generic tables APIs |
| Running it | Docker Compose, Docker images or a tarball; PostgreSQL metadata database; health and Prometheus endpoints | Helm chart for Kubernetes; PostgreSQL over JDBC recommended for production |
| API stability | README: the APIs "are currently evolving and should not be assumed to be stable" | APIs not marked experimental or beta are maintained as versioned REST APIs |
Using both from one Spark session
Because both speak the Iceberg REST protocol, Iceberg's own Spark catalog can address each one. These settings come from each project's local quickstart; add the Iceberg Spark runtime package and the token or client credential each guide shows.
from pyspark.sql import SparkSession
spark = (
SparkSession.builder
# Unity Catalog OSS
.config("spark.sql.catalog.retail", "org.apache.iceberg.spark.SparkCatalog")
.config("spark.sql.catalog.retail.type", "rest")
.config("spark.sql.catalog.retail.uri", "http://localhost:8080/api/2.1/unity-catalog/iceberg")
.config("spark.sql.catalog.retail.warehouse", "retail")
# Apache Polaris
.config("spark.sql.catalog.polaris", "org.apache.iceberg.spark.SparkCatalog")
.config("spark.sql.catalog.polaris.catalog-impl", "org.apache.iceberg.rest.RESTCatalog")
.config("spark.sql.catalog.polaris.uri", "http://localhost:8181/api/catalog")
.config("spark.sql.catalog.polaris.warehouse", "quickstart_catalog")
.getOrCreate()
)
How Databricks approaches this choice
Unity Catalog in Databricks is the managed counterpart of Unity Catalog OSS, so there's no catalog server to run. The OSS docs describe it as having "the same API heritage and a larger feature set", which includes grants to groups and service principals, attribute-based policies, row and column filters, automated lineage and an audit log system table. External engines connect through the Iceberg REST endpoint /api/2.1/unity-catalog/iceberg-rest for Iceberg clients and the Unity REST API for Delta clients, and credential vending gives them short-lived storage credentials. Databricks supports versions 1, 2 and 3 of the Iceberg table specification, and on managed Iceberg tables Unity Catalog handles lifecycle tasks such as snapshot expiration and file compaction. See Access Databricks tables from Apache Iceberg clients and What is Unity Catalog?.
FAQs
Is Snowflake Polaris the same as Apache Polaris?
Apache Polaris is the open-source project, governed by the Apache Software Foundation. Snowflake Open Catalog is Snowflake's managed service for Apache Polaris, hosted in Snowflake-managed infrastructure.
Do I need Databricks to run Unity Catalog OSS?
No. Unity Catalog OSS is a standalone server you run yourself, for example with Docker Compose, and engines such as Apache Spark, DuckDB and PyIceberg connect to it directly.
Which one handles Delta Lake tables?
Unity Catalog OSS manages Delta tables directly through the UC Delta API. Polaris can register Delta tables as generic tables, which its docs mark as beta and for which the engine coordinates commits.
Can external engines write to both?
Yes, for Iceberg tables. Unity Catalog OSS 0.7.0 accepts Iceberg table creates and commits over the Iceberg REST API, and Polaris internal catalogs are read-write.
The information provided herein is for general informational purposes only and may not reflect the most current product capabilities or configurations.