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. Daher meldet jeder Benutzer in der gesamten Organisation den gleichen Wert für denselben KPI, wodurch inkonsistente Berichte beseitigt und flexible Analysen in allen Feldern ermöglicht werden.
Die von Ihnen definierten Kernkomponenten sind Quellen, Verknüpfungen, Filter, Felder und Measures.
Ein vollständiges Beispiel mit Verknüpfungen, Feldern, Measures und Agentmetadaten finden Sie im Lernprogramm: Erstellen einer Metrikansicht mit Verknüpfungen und Datenmodellierung.
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 |
| Joins | Beziehungen zwischen Tabellen, Ansichten und Metrikansichten zum Anreichern von Daten. | Tabelle orders mit Tabelle customers auf customer_key verbinden. |
| Filter | Bedingungen, die auf die Quelldaten angewendet werden, um den Bereich zu definieren. |
|
| Felder | Spalten, die zum Gruppieren, Filtern und Aggregieren von Metriken verwendet werden. Enthält kategorisierte Spalten und nicht aggregierte numerische Spalten. Auch als Dimensionen bezeichnet. | Produktkategorie, Bestellmonat, Einzelpreis |
| Maßnahmen | Spaltenaggregationen, die Metriken erzeugen. |
COUNT(o_orderkey) als Bestellanzahl, SUM(o_totalprice) als Gesamtumsatz |
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
fields:
- 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`))"
Bei der Verwendung einer Metrikansicht als Quelle gelten dieselben Kompositionsregeln für die Referenzierung von Feldern und Kennzahlen. 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
fields:
- 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. Weitere Informationen finden Sie unter Deklarieren von Primärschlüsseln, Fremdschlüsseln und eindeutigen Einschränkungen und Abfrageoptimierung mithilfe von Primärschlüsseln und eindeutigen Einschränkungen.
Felder
Felder, auch als Dimensionen bezeichnet, sind Metrikansichtsspalten, die Sie zur Abfragezeit in SELECT, WHEREund GROUP BY Klauseln verwenden können. Ein Feld kann eine kategorisierte Spalte sein, z. B. Region oder Status, oder eine nicht aggregierte numerische Spalte, z. B. Preis oder Menge, die Sie zur Abfragezeit aggregieren können. Jeder Feldausdruck muss einen skalaren Wert zurückgeben. Sie kann auf Spalten aus den Zuvor in der Metrikansicht definierten Quelldaten oder -feldern verweisen. Jedes Feld besteht aus zwei Komponenten:
-
name: Der Alias der Spalte -
expr: Ein SQL-Ausdruck, der auf die Quelldaten oder zuvor definierten Felder in der Metrikansicht verweist
Warning
Zeichenfolgenähnliche metrische Ansichtsfelder sind immer STRING, auch wenn die Quellspalte ist CHAR oder VARCHAR. Da CHAR(n) Platzabstand verloren geht, können Vergleiche unterschiedliche Ergebnisse zurückgeben. Zum Beispiel entspricht column = 'COLLEGE' einem CHAR(10)-Wert in der Quelltabelle (der mit Leerzeichen aufgefüllt ist), aber nicht dem Feld der Metrikansicht.
Maßnahmen
Kennzahlen sind Ausdrücke, die Ergebnisse ohne eine vordefinierte Aggregationsebene erzeugen. Sie müssen mithilfe von Aggregatfunktionen ausgedrückt werden. Verwenden Sie die MEASURE Funktion, um auf ein Measure in einer Abfrage zu verweisen. Kennzahlen können auf Basisspalten in den Quelldaten, zuvor definierten Feldern oder zuvor definierten Kennzahlen verweisen. Jede Maßnahme besteht aus den folgenden Komponenten:
-
name: Der Alias der Kennzahl -
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 field
- 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 gilt für alle Abfragen, die auf die Metrikansicht verweisen. Informationen zum Definieren eines Filters in der Benutzeroberfläche finden Sie unter Schritt 3: Definieren eines Filters.
Um einen Filter in der YAML-Definition zu definieren, schreiben Sie einen booleschen Ausdruck. Das folgende Beispiel zeigt allgemeine Filtermuster:
# 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
Metrikansichten unterstützen Verknüpfungen, um Ihre Quelldaten mit Attributen aus verknüpften Tabellen zu bereichern. Sie können Sternschemas modellieren (Faktentabelle, die mit Dimensionstabellen verknüpft ist), Snowflake-Schemas (mehrstufige Dimensionsverknüpfungen) und 1:n-Beziehungen (Fakterweiterung aus einer Dimensionsquelle). Ausführliche Informationen zu Verknüpfungstypen, Kardinalität, Schemamustern und Einschränkungen finden Sie unter Verknüpfungen in Metrikansichten.
Informationen zum Definieren von Verknüpfungen in der Benutzeroberfläche finden Sie unter Schritt 2: Hinzufügen einer Verknüpfung. Verwenden Sie die Muster in den folgenden Abschnitten, um Verknüpfungen in der YAML-Definition zu definieren.
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.
Modellsternschemata
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 Fakten- und Dimensionstabellen, die für die jeweilige Abfrage auf Grundlage der ausgewählten Felder und Kennzahlen erforderlich sind.
Geben Sie Verknüpfungsspalten entweder mit einer on-Klausel (boolescher Ausdruck) oder mit einer using-Klausel (gemeinsame Spaltennamen) an. Die Verknüpfung muss einer n:1-Beziehung folgen. Bei n:n-Beziehungen wählt die Engine die erste übereinstimmende Zeile aus der verknüpften Dimensionstabelle aus.
Das folgende Beispiel verknüpft orders (Faktentabelle) mit customer (Dimensionstabelle) und macht Kundenattribute als Felder verfügbar. Die Einstellung rely.at_most_one_match: true gibt an, dass es sich bei der Verknüpfung um eine Many-to-one-Beziehung handelt (jede Bestellung hat genau einen Kunden), was der Engine ermöglicht, Abfragen zu optimieren, die nach Feldern aus der verknüpften Tabelle filtern.
Warning
Legen Sie at_most_one_match: true nur fest, wenn es sich um eine Many-to-one-Beziehung handelt. Diese Eigenschaft wird zur Laufzeit nicht überprüft. Wenn die Verknüpfung zu einer Auffächerung führt, liefern Kennzahlen falsche Ergebnisse.
Siehe Optimieren von Verknüpfungen mit rely.
version: 1.1
source: samples.tpch.orders
joins:
- name: customer
source: samples.tpch.customer
on: source.o_custkey = customer.c_custkey
fields:
- name: Customer name
expr: customer.c_name
measures:
- name: Total revenue
expr: SUM(o_totalprice)
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 Kennzahl: Beginnen Sie mit der Definition der einfachsten Kennzahlen zuerst (z. B
SUM(revenue). ,COUNT(DISTINCT customer_id)). Erstellen Sie komplexe Kennzahlen mithilfe der Kompositierbarkeit. -
Feldwerte standardisieren: Verwenden Sie Transformationen (wie
CASEAnweisungen), um Datenbankcodes in eindeutige Bezeichnungen umzuwandeln (z. B. den Bestellstatus „O“ in „Offen“ 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 Zeitfelder: Fügen Sie granulare Zeitfelder (z. B. "Bestelldatum") und abgeschnittene Zeitfelder (z. B. "Bestellmonat" oder "Bestellwoche") ein, um sowohl Detailebene als auch Trendanalyse zu ermöglichen.