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)
| Tool |
Usage |
list_volume_files |
list_volume_files(volume_path="/Volumes/catalog/schema/volume/path/") |
get_volume_folder_details |
get_volume_folder_details(volume_path="catalog/schema/volume/path", format="parquet") - schema, row counts, stats |
upload_to_volume |
upload_to_volume(local_path="/tmp/data/*", volume_path="/Volumes/.../dest") |
download_from_volume |
download_from_volume(volume_path="/Volumes/.../file.csv", local_path="/tmp/file.csv") |
create_volume_directory |
create_volume_directory(volume_path="/Volumes/.../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
Resources
1---2name: databricks-unity-catalog3description: Unity Catalog system tables and volumes. Use when querying system tables (audit, lineage, billing) or working with volume file operations (upload, download, list files in /Volumes/).4---56# Unity Catalog78Guidance for Unity Catalog system tables, volumes, and governance.910## When to Use This Skill1112Use this skill when:13- Working with **volumes** (upload, download, list files in `/Volumes/`)14- Querying **lineage** (table dependencies, column-level lineage)15- Analyzing **audit logs** (who accessed what, permission changes)16- Monitoring **billing and usage** (DBU consumption, cost analysis)17- Tracking **compute resources** (cluster usage, warehouse metrics)18- Reviewing **job execution** (run history, success rates, failures)19- Analyzing **query performance** (slow queries, warehouse utilization)20- Profiling **data quality** (data profiling, drift detection, metric tables)2122## Reference Files2324| Topic | File | Description |25|-------|------|-------------|26| System Tables | [5-system-tables.md](5-system-tables.md) | Lineage, audit, billing, compute, jobs, query history |27| Volumes | [6-volumes.md](6-volumes.md) | Volume file operations, permissions, best practices |28| Data Profiling | [7-data-profiling.md](7-data-profiling.md) | Data profiling, drift detection, profile metrics |2930## Quick Start3132### Volume File Operations (MCP Tools)3334| Tool | Usage |35|------|-------|36| `list_volume_files` | `list_volume_files(volume_path="/Volumes/catalog/schema/volume/path/")` |37| `get_volume_folder_details` | `get_volume_folder_details(volume_path="catalog/schema/volume/path", format="parquet")` - schema, row counts, stats |38| `upload_to_volume` | `upload_to_volume(local_path="/tmp/data/*", volume_path="/Volumes/.../dest")` |39| `download_from_volume` | `download_from_volume(volume_path="/Volumes/.../file.csv", local_path="/tmp/file.csv")` |40| `create_volume_directory` | `create_volume_directory(volume_path="/Volumes/.../new_folder")` |4142### Enable System Tables Access4344```sql45-- Grant access to system tables46GRANT USE CATALOG ON CATALOG system TO `data_engineers`;47GRANT USE SCHEMA ON SCHEMA system.access TO `data_engineers`;48GRANT SELECT ON SCHEMA system.access TO `data_engineers`;49```5051### Common Queries5253```sql54-- Table lineage: What tables feed into this table?55SELECT source_table_full_name, source_column_name56FROM system.access.table_lineage57WHERE target_table_full_name = 'catalog.schema.table'58 AND event_date >= current_date() - 7;5960-- Audit: Recent permission changes61SELECT event_time, user_identity.email, action_name, request_params62FROM system.access.audit63WHERE action_name LIKE '%GRANT%' OR action_name LIKE '%REVOKE%'64ORDER BY event_time DESC65LIMIT 100;6667-- Billing: DBU usage by workspace68SELECT workspace_id, sku_name, SUM(usage_quantity) AS total_dbus69FROM system.billing.usage70WHERE usage_date >= current_date() - 3071GROUP BY workspace_id, sku_name;72```7374## MCP Tool Integration7576Use `mcp__databricks__execute_sql` for system table queries:7778```python79# Query lineage80mcp__databricks__execute_sql(81 sql_query="""82 SELECT source_table_full_name, target_table_full_name83 FROM system.access.table_lineage84 WHERE event_date >= current_date() - 785 """,86 catalog="system"87)88```8990## Best Practices91921. **Filter by date** - System tables can be large; always use date filters932. **Use appropriate retention** - Check your workspace's retention settings943. **Grant minimal access** - System tables contain sensitive metadata954. **Schedule reports** - Create scheduled queries for regular monitoring9697## Related Skills9899- **[databricks-spark-declarative-pipelines](../databricks-spark-declarative-pipelines/SKILL.md)** - for pipelines that write to Unity Catalog tables100- **[databricks-jobs](../databricks-jobs/SKILL.md)** - for job execution data visible in system tables101- **[databricks-synthetic-data-gen](../databricks-synthetic-data-gen/SKILL.md)** - for generating data stored in Unity Catalog Volumes102- **[databricks-aibi-dashboards](../databricks-aibi-dashboards/SKILL.md)** - for building dashboards on top of Unity Catalog data103104## Resources105106- [Unity Catalog System Tables](https://docs.databricks.com/administration-guide/system-tables/)107- [Audit Log Reference](https://docs.databricks.com/administration-guide/account-settings/audit-logs.html)