Unity Catalog Metric Views
Define reusable, governed business metrics in YAML that separate measure definitions from dimension groupings for flexible querying.
When to Use
Use this skill when:
- Defining standardized business metrics (revenue, order counts, conversion rates)
- Building KPI layers shared across dashboards, Genie, and SQL queries
- Creating metrics with complex aggregations (ratios, distinct counts, filtered measures)
- Defining window measures (moving averages, running totals, period-over-period, YTD)
- Modeling star or snowflake schemas with joins in metric definitions
- Enabling materialization for pre-computed metric aggregations
Prerequisites
- Databricks Runtime 17.2+ (for YAML version 1.1); 17.3+ for semantic metadata (
synonyms / display_name / format)
- SQL warehouse with
CAN USE permissions
SELECT on source tables, CREATE TABLE + USE SCHEMA in the target schema
Metric View Lifecycle
| Task |
Reference |
Load when |
| Create |
metric-view-advisor.md |
Any creation task — the advisor handles the full workflow (profile schema, analyze sources, suggest, deploy). Load create-patterns.md alongside as the YAML spec and pattern reference. |
| YAML spec / patterns |
create-patterns.md |
Patterns 1–12, full YAML field reference, formatting gotchas, deployment errors, quick reference. Companion to the advisor; also load directly for pattern lookup. |
| Query |
query-patterns.md |
Writing SQL against a metric view — MEASURE() basics, filters, join rollups, window measures, Rules 1–3. |
| Genie integration |
metric-view-advisor.md §Genie Design Rules |
One-fact-source rule, base views, domain organization, naming. Agent metadata fields (comment, synonyms, display_name, format) are in create-patterns.md §YAML Field Reference. |
Typical flow: advisor → create → query/validate → Genie integration (if adding to a Genie Agent).
Source-controlled deployment with Declarative Automation Bundles
To source-control a metric view, commit its complete SQL definition and execute it through a bundle-managed SQL job. DABs do not have a native metric-view resource, but a bundle-managed SQL job can apply a committed definition:
# databricks.yml
bundle:
name: orders_metrics
variables:
catalog: { default: main }
schema: { default: default }
warehouse_id: { default: "" }
resources:
jobs:
deploy_orders_metrics:
name: deploy_orders_metrics
parameters:
- name: catalog
default: ${var.catalog}
- name: schema
default: ${var.schema}
tasks:
- task_key: create_metric_view
sql_task:
warehouse_id: ${var.warehouse_id}
file:
path: ../src/orders_metrics.metric_view.sql
Deploy and run:
databricks bundle deploy --target <TARGET> --profile <PROFILE>
databricks bundle run deploy_orders_metrics --target <TARGET> --profile <PROFILE>
See the official metric view bundle example.
Related Skills
- databricks-genie-agents — create, manage, and validate Genie Agents that consume the metric views built here. Metric-view design rules for Genie are in the advisor §Genie Design Rules; query rules are in query-patterns.md.
- databricks-aibi-dashboards — build AI/BI dashboards on top of metric views.
- databricks-data-discovery — explore data before creating metric views; answer questions across your workspace.
- databricks-dabs — source-control and deploy metric view SQL definitions via bundle-managed jobs.
Resources
1---
2name: databricks-metric-views
3description: "Unity Catalog metric views: define, create, query, and manage governed business metrics in YAML. Use when building standardized KPIs, revenue metrics, order analytics, or any reusable business metrics that need consistent definitions across teams and tools."
4compatibility: Requires databricks CLI (>= v1.0.0)
5metadata:
6 version: "0.1.0"
7parent: databricks-core
8---
9
10# Unity Catalog Metric Views
11
12Define reusable, governed business metrics in YAML that separate measure definitions from dimension groupings for flexible querying.
13
14## When to Use
15
16Use this skill when:
17- Defining **standardized business metrics** (revenue, order counts, conversion rates)
18- Building **KPI layers** shared across dashboards, Genie, and SQL queries
19- Creating metrics with **complex aggregations** (ratios, distinct counts, filtered measures)
20- Defining **window measures** (moving averages, running totals, period-over-period, YTD)
21- Modeling **star or snowflake schemas** with joins in metric definitions
22- Enabling **materialization** for pre-computed metric aggregations
23
24## Prerequisites
25
26- **Databricks Runtime 17.2+** (for YAML version 1.1); **17.3+** for semantic metadata (`synonyms` / `display_name` / `format`)
27- SQL warehouse with `CAN USE` permissions
28- `SELECT` on source tables, `CREATE TABLE` + `USE SCHEMA` in the target schema
29
30## Metric View Lifecycle
31
32| Task | Reference | Load when |
33|------|-----------|-----------|
34| **Create** | [metric-view-advisor.md](references/metric-view-advisor.md) | Any creation task — the advisor handles the full workflow (profile schema, analyze sources, suggest, deploy). Load [create-patterns.md](references/create-patterns.md) alongside as the YAML spec and pattern reference. |
35| **YAML spec / patterns** | [create-patterns.md](references/create-patterns.md) | Patterns 1–12, full YAML field reference, formatting gotchas, deployment errors, quick reference. Companion to the advisor; also load directly for pattern lookup. |
36| **Query** | [query-patterns.md](references/query-patterns.md) | Writing SQL against a metric view — `MEASURE()` basics, filters, join rollups, window measures, Rules 1–3. |
37| **Genie integration** | [metric-view-advisor.md §Genie Design Rules](references/metric-view-advisor.md#genie-design-rules) | One-fact-source rule, base views, domain organization, naming. Agent metadata fields (`comment`, `synonyms`, `display_name`, `format`) are in [create-patterns.md §YAML Field Reference](references/create-patterns.md#yaml-field-reference). |
38
39Typical flow: **advisor → create → query/validate → Genie integration (if adding to a Genie Agent)**.
40
41### Source-controlled deployment with Declarative Automation Bundles
42
43To source-control a metric view, commit its complete SQL definition and execute it through a bundle-managed SQL job. DABs do not have a native metric-view resource, but a bundle-managed SQL job can apply a committed definition:
44
45```yaml
46# databricks.yml
47bundle:
48 name: orders_metrics
49
50variables:
51 catalog: { default: main }
52 schema: { default: default }
53 warehouse_id: { default: "" }
54
55resources:
56 jobs:
57 deploy_orders_metrics:
58 name: deploy_orders_metrics
59 parameters:
60 - name: catalog
61 default: ${var.catalog}
62 - name: schema
63 default: ${var.schema}
64 tasks:
65 - task_key: create_metric_view
66 sql_task:
67 warehouse_id: ${var.warehouse_id}
68 file:
69 path: ../src/orders_metrics.metric_view.sql
70```
71
72Deploy and run:
73
74```bash
75databricks bundle deploy --target <TARGET> --profile <PROFILE>
76databricks bundle run deploy_orders_metrics --target <TARGET> --profile <PROFILE>
77```
78
79See the official [metric view bundle example](https://github.com/databricks/bundle-examples/tree/main/knowledge_base/metric_view).
80
81## Related Skills
82
83- **[databricks-genie-agents](../databricks-genie-agents/SKILL.md)** — create, manage, and validate Genie Agents that consume the metric views built here. Metric-view design rules for Genie are in the [advisor §Genie Design Rules](references/metric-view-advisor.md#genie-design-rules); query rules are in [query-patterns.md](references/query-patterns.md).
84- **[databricks-aibi-dashboards](../databricks-aibi-dashboards/SKILL.md)** — build AI/BI dashboards on top of metric views.
85- **[databricks-data-discovery](../databricks-data-discovery/SKILL.md)** — explore data before creating metric views; answer questions across your workspace.
86- **[databricks-dabs](../databricks-dabs/SKILL.md)** — source-control and deploy metric view SQL definitions via bundle-managed jobs.
87
88## Resources
89
90- [Metric Views Documentation](https://docs.databricks.com/metric-views/)
91- [YAML Syntax Reference](https://docs.databricks.com/metric-views/data-modeling/syntax)
92- [Joins](https://docs.databricks.com/metric-views/data-modeling/joins)
93- [Window Measures](https://docs.databricks.com/metric-views/data-modeling/window-measures) (Experimental)
94- [Materialization](https://docs.databricks.com/metric-views/materialization)
95- [MEASURE() Function](https://docs.databricks.com/sql/language-manual/functions/measure)