delivered for clients · names withheldmigration Data and analytics

Unity Catalog vs Hive metastore on Databricks, and how to move

The Hive metastore is a legacy catalog that belongs to one workspace. Unity Catalog sits at account level, with built-in auditing, lineage and access control. Cohash moves you across: the UCX assessment, account groups from your identity provider, tables upgraded with SYNC or DEEP CLONE, then code fixes, and legacy access off once nothing needs it.

  1. 01UCX assessment
  2. 02Identity and groups
  3. 03Storage, catalogs and grants
  4. 04Table upgrade
  5. 05Code, jobs and compute
  6. 06Disable legacy access
case-study / hive-metastore-to-unity-catalog delivered
beforeHive metastore, DBFS root and mounts afterDatabricks Unity Catalog
01 · IDENTITY AND CODE 02 · COMPUTE AND CODE 03 · GOVERNANCE 04 · STORAGE Entra ID or Okta: SCIM to the Databricks account Entra ID or Okta SCIM to the Databricksaccount Account groups: service principals for jobs Account groups service principals forjobs Terraform: catalogs · grants · credentials Terraform catalogs · grants ·credentials Notebooks and jobs: three-part names · 13.3 LTS+ Notebooks and jobs three-part names ·13.3 LTS+ Unity Catalog metastore: catalogs by domain · privileges Unity Catalogmetastore catalogs by domain ·privileges Hive metastore federation: bridge for tables not moved yet Hive metastorefederation bridge for tables notmoved yet External locations: storage credentials External locations storage credentials Volumes: replace /mnt paths Volumes replace /mnt paths
01 · IDENTITY AND CODE02 · COMPUTE AND CODE03 · GOVERNANCE04 · STORAGE Entra ID or Okta: SCIM to the Databricks account Entra ID orOkta SCIM to theDatabricksaccount Account groups: service principals for jobs Accountgroups serviceprincipals forjobs Terraform: catalogs · grants · credentials Terraform catalogs ·grants ·credentials Notebooks and jobs: three-part names · 13.3 LTS+ Notebooks and jobs three-part names · 13.3 LTS+ Unity Catalog metastore: catalogs by domain · privileges Unity Catalogmetastore catalogs by domain· privileges Hive metastore federation: bridge for tables not moved yet Hive metastorefederation bridge for tablesnot moved yet External locations: storage credentials Externallocations storagecredentials Volumes: replace /mnt paths Volumes replace /mnt paths © Cohash · cohash.com
case file

The story

Told without the client's name or anything that could identify them.

what happened

A retailer's data platform team ran several Databricks workspaces, each with its own Hive metastore and its own copy of the same groups. Jobs read from /mnt paths whose credentials sat in cluster configs nobody owned, and a new business-unit workspace had failed because the provisioning script expected DBFS mounts. We ran the UCX assessment to build the backlog, synced groups to the account from the identity provider, and wrote catalogs and grants in Terraform. Tables moved with SYNC or DEEP CLONE, notebooks and jobs came off mounts and two-part names, and legacy access was switched off once nothing depended on it.

why it was urgent

Existing workspaces keep running. The change is for new ones: from 8 October 2026, Databricks provisions new workspaces without the Hive metastore, DBFS root and mounts, no-isolation shared clusters or runtimes older than 13.3 LTS. Accounts created after 18 December 2025 get no legacy features at all, so a team that spins up a fresh workspace can't carry the old patterns into it.

problem statement
  • openEvery workspace has its own Hive metastore, and someone keeps a copy of the same groups in each one.
  • recurringJobs read from /mnt paths, and the credentials behind them live in a cluster config nobody owns.
  • blockedThe provisioning script for a new business-unit workspace failed, because it assumes DBFS mounts exist.
  • openAuditors ask for table-level lineage and access history, and the best anyone can offer is a spreadsheet.
architecture

The estate, before and after

before
before

Before: a Hive metastore and local groups in every workspace

Each workspace kept its own groups and Hive metastore, and jobs reached storage through DBFS mounts whose credentials lived on clusters. Access rules differed between workspaces and nobody owned the mount credentials.

Before: a Hive metastore and local groups in every workspace Each workspace kept its own groups and Hive metastore, and jobs reached storage through DBFS mounts whose credentials lived on clusters. Access rules differed between workspaces and nobody owned the mount credentials. 01 · IDENTITY 02 · COMPUTE AND CODE 03 · METASTORE 04 · STORAGE table ACLs run on two-part names managed tables external tables mount credentials Workspace-local groups copied in each workspace Notebooks and jobs two-part names · /mntpaths Shared clusters credentials in clusterconfig Hive metastore perworkspace table ACLs DBFS root managed tables Cloud storage viamounts /mnt paths © Cohash · cohash.com
01 · IDENTITY02 · COMPUTE AND CODE03 · METASTORE04 · STORAGE Workspace-local groups: copied in each workspace Workspace-local groups copied in each workspace Notebooks and jobs: two-part names · /mnt paths Notebooks andjobs two-part names ·/mnt paths Shared clusters: credentials in cluster config Shared clusters credentials incluster config Hive metastore per workspace: table ACLs Hive metastore per workspace table ACLs DBFS root: managed tables DBFS root managed tables Cloud storage via mounts: /mnt paths Cloud storagevia mounts /mnt paths table ACLs two-part names managed tables external tables mount credentials © Cohash · cohash.com
after
after

After: every workspace takes its rules from Unity Catalog

Groups come from the identity provider at account level, and Unity Catalog holds the grants, written in Terraform. Jobs use three-part names and volumes, and tables not moved yet are read through Hive metastore federation.

After: every workspace takes its rules from Unity Catalog Groups come from the identity provider at account level, and Unity Catalog holds the grants, written in Terraform. Jobs use three-part names and volumes, and tables not moved yet are read through Hive metastore federation. 01 · IDENTITY AND CODE 02 · COMPUTE AND CODE 03 · GOVERNANCE 04 · STORAGE SCIM privileges grants as code three-part names federated tables governed access governed paths Ex Entra ID or Okta SCIM to theDatabricks account Account groups service principals forjobs Terraform catalogs · grants ·credentials Notebooks and jobs three-part names · 13.3LTS+ Unity Catalogmetastore catalogs by domain ·privileges Hive metastorefederation bridge for tables notmoved yet External locations storage credentials Volumes replace /mnt paths © Cohash · cohash.com
01 · IDENTITY AND CODE02 · COMPUTE AND CODE03 · GOVERNANCE04 · STORAGE Entra ID or Okta: SCIM to the Databricks account Entra ID orOkta SCIM to theDatabricksaccount Account groups: service principals for jobs Accountgroups serviceprincipals forjobs Terraform: catalogs · grants · credentials Terraform catalogs ·grants ·credentials Notebooks and jobs: three-part names · 13.3 LTS+ Notebooks and jobs three-part names · 13.3 LTS+ Unity Catalog metastore: catalogs by domain · privileges Unity Catalogmetastore catalogs by domain· privileges Hive metastore federation: bridge for tables not moved yet Hive metastorefederation bridge for tablesnot moved yet External locations: storage credentials Externallocations storagecredentials Volumes: replace /mnt paths Volumes replace /mnt paths privileges grants as code three-part names governed access governed paths © Cohash · cohash.com
results

What the client got

What changed for the client once the work was done. Described, not scored: we don't publish client figures.

  1. result 01

    Groups now come from the identity provider, one set for the account

    SCIM now syncs users and groups from Entra ID or Okta to the Databricks account. We deleted the workspace-local copies.

  2. result 02

    Grants are code, not clicks

    We put catalogs, schemas, storage credentials and Unity Catalog privileges in Terraform, and nothing changes without review.

  3. result 03

    Jobs no longer depend on mounts

    We moved notebooks and jobs to volumes or external locations and three-part table names, running on Unity Catalog access modes with 13.3 LTS or later.

  4. result 04

    Data owners approved the access changes

    Some legacy table ACLs and ANY FILE grants had no Unity Catalog equivalent. Data owners signed off the resulting access changes beforehand, so no user found out by hitting an error.

  5. result 05

    New workspaces provision without legacy features

    We updated provisioning so new workspaces come up with the Hive metastore and DBFS mounts disabled, and the metastore assigns itself in each region.

what can go wrong

Risks we plan for

  1. UCX is a Labs project

    UCX comes from Databricks Labs without formal support or SLAs. It does most of the inventory and table work well, but plans can't assume it covers everything.

  2. Permission drift

    Legacy table ACLs, cluster-level credentials and ANY FILE grants don't map one to one to Unity Catalog privileges. Some users will lose access they shouldn't have had, and that needs to be agreed, not discovered.

  3. Jobs breaking quietly

    A job that writes to a mount can keep writing to the old location after the table moves. We freeze writes per table during its cut-over and compare row counts on both sides.

  4. Managed tables that can't clone

    DEEP CLONE won't copy CSV, JSON or Avro managed tables in the DBFS root until they're converted. Big ones need a maintenance window.

ai in this move

Where AI helps, and where it needs guardrails

Databricks governs AI through Unity Catalog too. Agent Bricks and Unity AI Gateway (the piece that adds spend caps and cost attribution for models, agents and MCP servers) both depend on data being registered and permissioned there. We let coding agents suggest notebook path and table-name rewrites as pull requests during the migration, and an engineer reviews every one. Agents never hold metastore admin.

forward deployed engineers →
you keep

What you're left with

We write these for your setup, and they're working documents. Your team should be able to keep things running from them long after we've gone.

  • plan01

    UCX assessment results, plus a wave plan that tells each workspace what moves and when

    yours to keep
  • inventory02

    Catalog, schema, storage credential and grant definitions, all in Terraform so changes get reviewed

    yours to keep
  • document03

    Group migration log and an access-change list. Data owners approve that list before anyone loses access.

    yours to keep
  • document04

    Updated notebooks and jobs, with before-and-after row counts per table

    yours to keep
  • document05

    Provisioning automation that still works once legacy features are gone

    yours to keep
field notes

Learn the background

Terms from this page in plain English. If you want the why, the field note behind it is right there.

01SCIM
A way for a company's directory to push users and groups into another system. Auth0 can then keep those groups as their own objects instead of on the profile.in context →
02LTS
Long-term support. Databricks fixes stability and security problems in an LTS runtime for three years after release. Other runtimes get six months, which is why an LTS is the one to build on.in context →
03Hive metastore
The list of tables and file locations each Databricks workspace kept for itself before Unity Catalog. Databricks now calls it legacy.in context →
04Unity Catalog
Databricks' shared catalog for tables, files, models and permissions. Each region gets one metastore, and every workspace attached to it sees the same objects.in context →
05DBFS root
The default storage area of a Databricks workspace. Managed Hive tables created without a location usually ended up there.in context →
06SYNC
A Databricks SQL command that registers your external Hive tables in Unity Catalog. It doesn't copy data, so it's quick, but it won't take DBFS root tables.in context →
01 Hivemetastore legacy, per… 02 Inventory tables, mounts,… 03 SYNC or DEEPCLONE by table type 04 Unity Catalog one metastore per…
field note · 13 min · 3-question check Hive metastore to Unity Catalog: the Databricks migration plan, and what breaks on the way the ideaExternal tables just re-register. DBFS root tables and old code are the real work. read the note
talent and delivery · databricks unity catalog

Certified engineers, wherever you need them.

Some clients want a project team, some want a couple of engineers on theirs. Either works. Onsite, nearshore or offshore, with handovers across time zones that keep things moving.

Onsite

Engineers at your sites in the US

Nearshore

Overlapping hours with US teams

Offshore

Overnight progress on your backlog

All time zones

Coverage handed over across time zones

24-hour coverage · US Central time
OnsiteUS business hours
Nearshoreoverlapping US hours
Offshoreovernight progress
Combinedhandover, not hand-off
01Unity Catalog vs Hive metastore: what's the actual difference?

Scope comes first. The Hive metastore belongs to one workspace and its policies target workspace-local groups. Unity Catalog is an account-level object and its policies target account groups, so you're not keeping the same rules in several places. Dropped tables differ too: UNDROP brings back a Unity Catalog managed table for 7 days, while dropping a Hive managed table deletes its files immediately.

02What stops working when we move to Unity Catalog?

A few old habits. Unity Catalog has no DENY, no ANY FILE and no READ_METADATA, and anything you haven't granted is denied. Views can only sit on Unity Catalog tables and views, and path-based access to managed tables goes away. Search your grants and code for these before the first wave, so nobody finds out from a failed job.

03Do we have to migrate existing workspaces?

Not by a date. Databricks says existing workspaces aren't affected by the 8 October 2026 change. But any new workspace comes without legacy features, and newer platform features assume Unity Catalog, so the gap grows the longer you wait.

04How much downtime does a table upgrade need?

External tables upgraded with SYNC need very little. Managed tables in the DBFS root are copied, so time depends on size and on how long writers can pause. We schedule those by table and owner.

05Can we keep some tables in the Hive metastore for now?

Yes. Hive metastore federation lets Unity Catalog govern tables still in Hive while you finish. It's a bridge, so don't plan to live on it.

fact-checked Checked against vendor and official documentation last checked 2026-11-06 content fingerprint a57ff740
  1. 01Book a 30-minute working sessionsenior engineer
  2. 02Talk to an engineer about your setupreply within 24 hours
  3. 03See how similar projects wentcase studies
Reviewed by the Cohash team Product names are trademarks of their owners. how we handle facts and data →
next step

Planning this move?

A 30-minute working session with a senior engineer. No slides.

useful to bring
  • The platform and the version you're on
  • Where you need to get to, and by when
  • What's custom: rules, plugins, integrations
  • Any audit finding or deadline driving it