- Step 1 — Inventory: Run a script to list all tables in the legacy metastore. Group by database and identify ownership.
- Step 2 — Catalogue Mapping: Map legacy databases to Unity Catalog schemas. For example, prod.sales.orders → main.sales.orders.
- Step 3 — Permissions Translation: Convert legacy GRANT statements to Unity Catalog ACLs. Map users to groups via SCIM.
- Step 4 — External Locations: Configure storage credentials and external locations for S3/ADLS access.
- Step 5 — Cutover: Migrate table-by-table with a parallel-run period. Update notebook references from hive_metastore.db.table to main.db.table.
- Step 6 — Decommission: Once everything runs on Unity Catalog, disable Hive Metastore.
A full migration takes 2–4 weeks for a medium data team. Unity Catalog tools (terraform-databricks-uc) automate much of this.
Pitfalls
Avoid these traps when adopting Unity Catalog:
- Skipping catalog per environment: One catalog for everything is a governance nightmare. Use separate catalogs for prod, dev, sandbox.
- Not tagging tables: Tags power search and policy. Tables without tags are invisible to the data discovery workflow.
- Over-granting access: Grant only what is needed. "ALL PRIVILEGES" on a catalog is rarely justified.
- Ignoring audit logs: Every access is logged. Review the audit log monthly for unexpected access patterns.
- Mixing Hive Metastore and Unity Catalog: Mixing the two creates governance gaps. Migrate fully or stay fully legacy.
Quick Reference — Cheatsheet
- catalog.schema.table is the 3-level namespace — use it for env isolation.
- Row filters and column masks implement row/column-level security.
- Automatic column-level lineage flows across all jobs.
- Delta Sharing enables secure cross-org data exchange.
- Unity Catalog is free — included with all Databricks deployments.
Frequently Asked Questions
What is Unity Catalog in Databricks?
Databricks' unified governance for data and AI — fine-grained access, lineage, search, cross-workspace sharing.
How is Unity Catalog different from Hive Metastore?
Hive Metastore is legacy — table-level ACLs only, no lineage. Unity Catalog is next-gen with row/column security, sharing, and lineage.
What are the three-level namespace in Unity Catalog?
catalog.schema.table (e.g., main.sales.orders). Each level can have its own access policies.
Does Unity Catalog support row-level and column-level security?
Yes — row filters and column masks via SQL functions.
Does Unity Catalog provide data lineage?
Yes — automatic column-level lineage across Spark, DLT, and SQL warehouses.
Is Unity Catalog free?
Yes — included free with all Databricks deployments.