Unity Catalog
Guidance for Unity Catalog system tables, volumes, and governance.
When to Use This Skill
Use this skill when:
-
Working with volumes (upload, download, list files in /Volumes/ )
-
Querying lineage (table dependencies, column-level lineage)
-
Analyzing audit logs (who accessed what, permission changes)
-
Monitoring billing and usage (DBU consumption, cost analysis)
-
Tracking compute resources (cluster usage, warehouse metrics)
-
Reviewing job execution (run history, success rates, failures)
-
Analyzing query performance (slow queries, warehouse utilization)
-
Profiling data quality (data profiling, drift detection, metric tables)
Reference Files
Topic File Description
System Tables 5-system-tables.md Lineage, audit, billing, compute, jobs, query history
Volumes 6-volumes.md Volume file operations, permissions, best practices
Data Profiling 7-data-profiling.md Data profiling, drift detection, profile metrics
Quick Start
Volume File Operations (MCP Tools)
List files in a volume
list_volume_files(volume_path="/Volumes/catalog/schema/volume/folder/")
Upload file to volume
upload_to_volume( local_path="/tmp/data.csv", volume_path="/Volumes/catalog/schema/volume/data.csv" )
Download file from volume
download_from_volume( volume_path="/Volumes/catalog/schema/volume/data.csv", local_path="/tmp/downloaded.csv" )
Create directory
create_volume_directory(volume_path="/Volumes/catalog/schema/volume/new_folder")
Enable System Tables Access
-- Grant access to system tables
GRANT USE CATALOG ON CATALOG system TO data_engineers;
GRANT USE SCHEMA ON SCHEMA system.access TO data_engineers;
GRANT SELECT ON SCHEMA system.access TO data_engineers;
Common Queries
-- Table lineage: What tables feed into this table? SELECT source_table_full_name, source_column_name FROM system.access.table_lineage WHERE target_table_full_name = 'catalog.schema.table' AND event_date >= current_date() - 7;
-- Audit: Recent permission changes SELECT event_time, user_identity.email, action_name, request_params FROM system.access.audit WHERE action_name LIKE '%GRANT%' OR action_name LIKE '%REVOKE%' ORDER BY event_time DESC LIMIT 100;
-- Billing: DBU usage by workspace SELECT workspace_id, sku_name, SUM(usage_quantity) AS total_dbus FROM system.billing.usage WHERE usage_date >= current_date() - 30 GROUP BY workspace_id, sku_name;
MCP Tool Integration
Use mcp__databricks__execute_sql for system table queries:
Query lineage
mcp__databricks__execute_sql( sql_query=""" SELECT source_table_full_name, target_table_full_name FROM system.access.table_lineage WHERE event_date >= current_date() - 7 """, catalog="system" )
Best Practices
-
Filter by date - System tables can be large; always use date filters
-
Use appropriate retention - Check your workspace's retention settings
-
Grant minimal access - System tables contain sensitive metadata
-
Schedule reports - Create scheduled queries for regular monitoring
Related Skills
-
databricks-spark-declarative-pipelines - for pipelines that write to Unity Catalog tables
-
databricks-jobs - for job execution data visible in system tables
-
databricks-synthetic-data-gen - for generating data stored in Unity Catalog Volumes
-
databricks-aibi-dashboards - for building dashboards on top of Unity Catalog data
Resources
-
Unity Catalog System Tables
-
Audit Log Reference