Freigeben über


Modellmetrikansichten

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.
  • status = 'completed'
  • order_date > '2024-01-01'
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:

  1. Erstellen einer Metrikansicht
  2. Hinzufügen von Verknüpfungen auf der ersten Ebene (Sternschema)
  3. Verknüpfen mit anderen Dimensionstabellen
  4. 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.

Nächste Schritte