Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Metrikansichten erstellen eine semantische Ebene für Ihre Daten, transformieren Tabellen und Ansichten in standardisierte Geschäftsmetriken. Sie definieren, was gemessen werden soll, wie es aggregiert wird und wie es segmentiert wird. Metrikansichten stellen sicher, dass jeder Benutzer in der gesamten Organisation den gleichen Wert für denselben KPI (Key Performance Indicator) meldet, wodurch inkonsistente Berichte beseitigt und flexible Analysen in allen Dimensionen ermöglicht werden.
Ein vollständiges Beispiel mit Verknüpfungen, Dimensionen, Measures und Agentmetadaten finden Sie im Lernprogramm: Erstellen einer vollständigen Metrikansicht mit Verknüpfungen.
Kernkomponenten
Eine Metrikansicht besteht aus den folgenden Elementen:
| Bestandteil | Beschreibung | Beispiel |
|---|---|---|
| Quelle | Die Basistabelle, Ansicht oder SQL-Abfrage, die die Daten enthält. | samples.tpch.orders |
| Maße | Spaltenattribute, die für Segment- oder Gruppenmetriken verwendet werden. | Produktkategorie, Bestellmonat, Kundenregion |
| Maßnahmen | Spaltenaggregationen, die Metriken erzeugen. |
COUNT(o_order_id) als Bestellanzahl, SUM(o_total_price) als Gesamtumsatz |
| Filter | Bedingungen, die auf die Quelldaten angewendet werden, um den Bereich zu definieren. |
|
| Joins | Beziehungen zwischen Tabellen, Ansichten und Metrikansichten zum Anreichern von Daten. | Tabelle orders mit Tabelle customers auf customer_key verbinden. |
Definieren einer Quelle
Sie können ein tabellenähnliches Objekt oder eine SQL-Abfrage als Quelle für Ihre Metrikansicht verwenden. Sie müssen mindestens SELECT Privilegien für jede referenzierte Ressource haben.
Ein tabellenähnliches Objekt ist ein Unity Catalog-Objekt , das ein tabellarisches Schema verfügbar macht und Abfragen unterstützt SELECT , einschließlich Tabellen, Ansichten, materialisierte Ansichten, Streamingtabellen, Fremdtabellen, Systemtabellen und Metrikansichten.
Verwenden einer tabellenähnlichen Ressource als Quelle
Wenn Sie ein tabellenähnliches Objekt als Quelle verwenden möchten, geben Sie den vollqualifizierten Namen an. Beispiel: samples.tpch.orders.
Verwenden einer Metrikansicht als Quelle
Sie können eine vorhandene Metrikansicht als Quelle für eine neue Metrikansicht verwenden:
version: 1.1
source: views.examples.source_metric_view
dimensions:
- name: Order month
expr: '`Order Month`'
measures:
- name: Latest order month
expr: MAX(`Order month`)
- name: Latest order year
expr: "DATE_TRUNC('year', MEASURE(`Latest order month`))"
Wenn Sie eine Metrikansicht als Quelle verwenden, gelten die gleichen Regeln für die Bezugnahme auf Dimensionen und Messwerte. Siehe Kompositierbarkeit.
Verwenden einer SQL-Abfrage als Quelle
Um eine SQL-Abfrage zu verwenden, schreiben Sie den Abfragetext direkt in das YAML:
version: 1.1
source: SELECT * FROM samples.tpch.orders o LEFT JOIN samples.tpch.customer c ON o.o_custkey
= c.c_custkey
dimensions:
- name: Order key
expr: o_orderkey
measures:
- name: Order Count
expr: COUNT(o_orderkey)
Hinweis
Wenn Sie eine SQL-Abfrage als Quelle mit einer JOIN Klausel verwenden, legen Sie Primär- und Fremdschlüsseleinschränkungen für zugrunde liegende Tabellen fest, und verwenden Sie die RELY Option für eine optimale Abfrageleistung. Siehe Deklarieren von Primärschlüssel- und Fremdschlüsselbeziehungen undAbfrageoptimierung mithilfe von Primärschlüsseleinschränkungen.
Maße
Dimensionen sind Spalten, die zur Abfragezeit in SELECT, WHEREund GROUP BY Klauseln verwendet werden. Jeder Ausdruck muss einen skalaren Wert zurückgeben. Dimensionen können auf Spalten in den Quelldaten oder zuvor definierten Dimensionen in der metrischen Ansicht verweisen. Jede Dimension besteht aus zwei Komponenten:
-
name: Der Alias der Spalte -
expr: Ein SQL-Ausdruck, der auf die Quelldaten oder zuvor definierte Dimensionen in der Metrikansicht verweist
Maßnahmen
Measures sind Ausdrücke, die Ergebnisse ohne eine vordefinierte Aggregationsebene erzeugen. Sie müssen mithilfe von Aggregatfunktionen ausgedrückt werden. Maßnahmen können auf Basisfelder in den Quelldaten, Dimensionen oder zuvor definierte Maßnahmen verweisen. Jede Maßnahme besteht aus den folgenden Komponenten:
-
name: Der Alias des Measures -
expr: Ein Aggregat-SQL-Ausdruck, der SQL-Aggregatfunktionen enthalten kann
Im folgenden Beispiel werden allgemeine Muster von Maßzahlen zum Analysieren von Auftrag- und Umsatzdaten veranschaulicht. In diesen Beispielen wird die Tabelle TPC-H Bestellungen verwendet, die Transaktionsdaten enthält, einschließlich Bestellpreise (o_totalprice), Kunden-IDs (o_custkey), Bestellschlüssel (o_orderkey), Bestelldaten (o_orderdate) und Prioritätsstufen (o_orderpriority):
measures:
# Simple count measure
- name: Order Count
expr: COUNT(1)
# Sum aggregation measure
- name: Total Revenue
expr: SUM(o_totalprice)
# Distinct count measure
- name: Unique Customers
expr: COUNT(DISTINCT o_custkey)
# Calculated measure combining multiple aggregations
- name: Average Order Value
expr: SUM(o_totalprice) / COUNT(DISTINCT o_orderkey)
# Filtered measure with WHERE condition
- name: High Priority Order Revenue
expr: SUM(o_totalprice) FILTER (WHERE o_orderpriority = '1-URGENT')
# Measure using a dimension
- name: Average Revenue per Month
expr: SUM(o_totalprice) / COUNT(DISTINCT DATE_TRUNC('MONTH', o_orderdate))
Eine Liste der Aggregatfunktionen finden Sie unter " Aggregatfunktionen ".
Anwenden von Filtern
Ein Filter in der YAML-Definition gilt für alle Abfragen, die auf die Metrikansicht verweisen. Das folgende Beispiel zeigt, wie Filter als boolesche Ausdrücke geschrieben werden:
# Single condition
filter: o_orderdate > '2024-01-01'
# Multiple conditions
filter: o_orderdate > '2024-01-01' AND o_orderstatus = 'F'
# IN clause
filter: o_orderstatus IN ('F', 'P') AND o_orderdate >= '2024-01-01'
Arbeiten mit Verknüpfungen
Verknüpfungen in Metrikansichten unterstützen sowohl direkte Verknüpfungen aus einer Faktentabelle als auch Bemaßungstabellen (Sternschema) und Multi-Hop-Verknüpfungen über normalisierte Dimensionstabellen (Schneeflakeschemas).
Hinweis
Verknüpfte Tabellen können keine Spalten des Typs MAP enthalten. Informationen zum Entpacken von Werten aus Spalten des Typs MAP finden Sie unter Geschachtelte Elemente aus einer Karte oder einem Array entpacken.
Modellsternschemas
In einem Sternschema ist die source die Faktentabelle und wird mit einer oder mehreren Dimensionstabellen mithilfe eines LEFT OUTER JOIN verbunden. Metrikansichten verknüpfen die für die spezifische Abfrage erforderlichen Fakten- und Dimensionstabellen basierend auf den ausgewählten Dimensionen und Messgrößen.
Geben Sie Verbindungsspalten mithilfe einer on-Klausel (boolescher Ausdruck) oder einer using-Klausel (gemeinsame Spaltennamen) an. Die Verbindung sollte einer Eins-zu-viele-Beziehung folgen. In Fällen von viele-zu-viele wird die erste übereinstimmende Zeile aus der verbundenen Dimensionstabelle ausgewählt.
Das folgende Beispiel verknüpft orders (Faktentabelle) mit customer (Dimensionstabelle) und macht Kundenattribute als Dimensionen verfügbar:
version: 1.1
source: samples.tpch.orders
joins:
- name: customer
source: samples.tpch.customer
on: source.o_custkey = customer.c_custkey
dimensions:
- name: Customer name
expr: customer.c_name
- name: Customer market segment
expr: customer.c_mktsegment
measures:
- name: Total revenue
expr: SUM(o_totalprice)
- name: Order count
expr: COUNT(1)
Verwenden Sie die using Klausel statt on , wenn beide Tabellen einen Spaltennamen gemeinsam verwenden:
joins:
- name: customer
source: samples.tpch.customer
using:
- customer_key
Hinweis
In einer on Klausel source bezieht sich auf die Quelltabelle der Metrikansicht und die Verknüpfung name bezieht sich auf Spalten aus der verknüpften Tabelle. Verknüpft beispielsweise source.o_custkey = customer.c_custkey die Spalte der Quelltabelle o_custkey mit der Spalte der customer Tabelle c_custkey . Wenn kein Präfix angegeben wird, wird der Verweis standardmäßig auf die verknüpfte Tabelle festgelegt.
Modell-Schneeflocken-Schemata
Ein Schneeflakeschema erweitert ein Sternschema durch Normalisieren von Dimensionstabellen und verbinden sie mit Unterdimensionen. Dadurch wird eine mehrstufige Verknüpfungsstruktur erstellt.
So definieren Sie ein Schneeflockenschema:
- Erstellen einer Metrikansicht
- Hinzufügen von Verknüpfungen auf der ersten Ebene (Sternschema)
- Verknüpfen mit anderen Dimensionstabellen
- Anzeigen verschachtelter Dimensionen durch Hinzufügen von Dimensionen in der Ansicht
Im folgenden Beispiel wird das TPC-H-Dataset verwendet, um ein Schneeflakeschema zu veranschaulichen, das die geografische Hierarchie von Bestellungen zeigt. Im Beispiel werden die Auftragstabelle zu Kunden, dann zu ihren Ländern (Ländern) und schließlich zu ihren Regionen (Kontinenten) verknüpft. Diese mehrstufige Verknüpfungsstruktur ermöglicht Analysen wie "Umsatz nach Region anzeigen" oder "Kundenverteilung über Länder hinweg vergleichen". Das TPC-H Dataset ist im samples-Katalog in Ihrem Azure Databricks Arbeitsbereich verfügbar.
source: samples.tpch.orders
joins:
- name: customer
source: samples.tpch.customer
on: source.o_custkey = customer.c_custkey
joins:
- name: nation
source: samples.tpch.nation
on: customer.c_nationkey = nation.n_nationkey
joins:
- name: region
source: samples.tpch.region
on: nation.n_regionkey = region.r_regionkey
dimensions:
- name: clerk
expr: o_clerk
- name: customer
expr: customer
comment: returns the full customer row as a struct
- name: customer_name
expr: customer.c_name
- name: nation
expr: customer.nation
- name: nation_name
expr: customer.nation.n_name
YAML-Syntax und -Formatierung
Metrische Ansichtsdefinitionen folgen der standardmäßigen YAML-Notationssyntax. Informationen zur erforderlichen Syntax und Formatierung finden Sie in der YaML-Syntaxreferenz zur Metrikansicht .
Bewährte Methoden
Verwenden Sie beim Modellieren von Metrikansichten die folgenden Richtlinien:
-
Modell atomische Measures: Beginnen Sie mit der Definition der einfachsten Measures zuerst (z. B
SUM(revenue). ,COUNT(DISTINCT customer_id)). Erstellen Sie komplexe Measures mithilfe der Kompositierbarkeit. -
Standardisieren von Dimensionswerten: Verwenden Sie Transformationen (z
CASE. B. Anweisungen), um Datenbankcodes in klare Geschäftsnamen zu konvertieren (z. B. "O" in "Öffnen" und "F" in "Erfüllt"). - Definieren sie den Bereich mit Filtern: Wenn eine Metrikansicht nur abgeschlossene Bestellungen enthalten soll, definieren Sie diesen Filter in der Metrikansicht, damit Benutzer nicht versehentlich unvollständige Daten einschließen können.
-
Verwenden Sie eine klare Benennung: Metrische Namen sollten für Geschäftsbenutzer erkennbar sein (z. B. "Customer Lifetime Value" anstelle von
cltv_agg_measure). - Separate Zeitdimensionen: Fügen Sie granulare Zeitabmessungen (z. B. "Bestelldatum") und abgeschnittene Zeitabmessungen (z. B. "Bestellmonat" oder "Bestellwoche") ein, um sowohl Detailebene als auch Trendanalyse zu unterstützen.