Freigeben über


Kompositierbarkeit in Metrikansichten

Auf dieser Seite wird erläutert, wie die Kompositierbarkeit in metrischen Ansichten funktioniert und Beispiele enthält, in denen Gezeigt wird, wie Sie Logik erstellen, indem Sie auf Dimensionen, Measures und Verknüpfungen innerhalb einer einzelnen Ansicht aufbauen.

Überblick

Metrikansichten sind kompositorierbar, was bedeutet, dass Sie mehrschichtige, wiederverwendbare Logik definieren können. Anstatt jede Definition von Grund auf neu zu schreiben, können Sie neue Erstellen, die auf vorhandenen Dimensionen und Measures aufbauen.

Mit der Kompositierbarkeit können Sie:

  • Verweisen auf zuvor definierte Dimensionen in neuen Dimensionen
  • Verweisen Sie auf Dimensionen oder zuvor definierte Maße in neuen Maßnahmen
  • Spalten aus Verknüpfungen referenzieren, die in der Metrikansicht definiert sind

Durch die Komponierbarkeit können Sie Duplizierung vermeiden, Metrikdefinitionen optimieren und komplexere Analysen unterstützen, ohne dass jedes Mal ROH-SQL erforderlich ist.

Metrische Komponierbarkeit

Die Kompositierbarkeit ist das Prinzip der Erstellung komplexer Metriken durch die Wiederverwendung einfacherer, grundlegender Maßnahmen. Anstatt komplexe, geschachtelte SQL-Logik für jeden abgeleiteten KPI zu schreiben und zu verwalten, definieren Sie einmal die zentralen "atomischen" Measures und verweisen dann in anderen, komplexeren Berechnungen darauf. Dieser Ansatz verbessert erheblich Konsistenz, Auditierbarkeit und Wartung Ihrer semantischen Ebene.

Die Grundlage der Komponierbarkeit ist die MEASURE() Funktion, mit der eine Measuredefinition auf alle anderen in derselben Metrikansicht definierten Maßen verweisen kann.

Maßnahmen mit Komponierbarkeit definieren

Die Komponierbarkeit wird im measures Abschnitt der Metrikansicht YAML implementiert.

Messtyp Description Example
Atomar Eine einfache, direkte Aggregation in einer Quellspalte. Diese bilden die Bausteine. SUM(o_totalprice)
Zusammengestellt Ein Ausdruck, der eine oder mehrere andere Kennzahlen mithilfe der MEASURE()-Funktion mathematisch kombiniert. MEASURE(Total Revenue) / MEASURE(Order Count)

Beispiel: Durchschnittlicher Bestellwert (AOV)

Zum Berechnen des durchschnittlichen Bestellwerts (Average Order Value, AOV) benötigen Sie zwei Measures: Total Revenue und Order Count.

source: samples.tpch.orders

measures:
  # Total Revenue
  - name: total_revenue
    expr: SUM(o_totalprice)
    comment: The gross total value of all orders.
    display_name: 'Total Revenue'

  # Order Count
  - name: order_count
    expr: COUNT(1)
    comment: The total number of line items or orders.
    display_name: 'Order Count'

  # Composed Measure: Average Order Value (AOV)
  - name: avg_order_value
    # Defines AOV as Total Revenue divided by Order Count
    expr: MEASURE(total_revenue) / MEASURE(order_count)
    comment: Total revenue divided by the number of orders.
    display_name: 'Avg Order Value'

Wenn sich in diesem Beispiel die Definition von total_revenue ändert (z. B. wenn ein Filter zum Ausschließen von Steuern hinzugefügt wird), erbt avg_order_value die Änderung automatisch, um sicherzustellen, dass die AOV-Metrik mit der neuen Geschäftsregel konsistent bleibt.

Kompositierbarkeit mit bedingter Logik

Sie können die Komponierbarkeit verwenden, um komplexe Verhältnisse, bedingte Prozentsätze und Wachstumsraten zu erstellen, ohne sich auf Fensterfunktionen für einfache Periodenberechnungen zu verlassen.

Beispiel: Erfüllungsrate

Zum Berechnen der Erfüllungsrate (Erfüllte Bestellungen / Gesamtbestellungen) definieren Sie zuerst das Measure für abgeschlossene Bestellungen mithilfe einer FILTER Klausel.

source: samples.tpch.orders

measures:
  # Total Orders (denominator)
  - name: total_orders
    expr: COUNT(1)
    comment: Total volume of orders regardless of status.

  #  Fulfilled Orders (numerator)
  - name: fulfilled_orders
    expr: COUNT(1) FILTER (WHERE o_orderstatus = 'F')
    comment: Only includes orders marked as fulfilled.

  # Composed Measure: Fulfillment Rate (Ratio)
  - name: fulfillment_rate
    expr: MEASURE(fulfilled_orders) / MEASURE(total_orders)
    display_name: 'Order Fulfillment Rate'
    format:
      type: percentage # Using semantic metadata to format as a percent

Bewährte Methoden für die Verwendung der Kompositierbarkeit

  1. Definieren Sie zunächst atomare Maßeinheiten: Richten Sie immer Ihre grundlegenden Maßeinheiten (SUM, COUNT, AVG) ein, bevor Sie Maßnahmen definieren, die auf sie verweisen.
  2. Verwendung MEASURE() für Konsistenz: Verwenden Sie die Funktion immer, wenn Sie auf die MEASURE() Berechnung eines anderen Measures innerhalb einer expr. Versuchen Sie nicht, die Aggregationslogik manuell zu wiederholen (z. B. SUM(a) / COUNT(b) vermeiden Sie, wenn sowohl Maßnahmen für den Zähler als auch für den Nenner bereits vorhanden sind).
  3. Priorisieren Sie die Lesbarkeit: Das expr für ein zusammengesetztes Measure sollte wie eine mathematische Formel, die den KPI darstellt, lesbar sein. Beispielsweise MEASURE(Gross Profit) / MEASURE(Total Revenue) ist klarer und einfacher zu überwachen als ein einzelner komplexer SQL-Ausdruck.
  4. Kombinieren mit semantischen Metadaten: Verwenden Sie nach dem Verfassen eines Verhältnisses semantische Metadaten (wie im fulfillment_rate Beispiel gezeigt), um das Ergebnis automatisch als Prozentsatz oder Währung für nachgeschaltete Tools zu formatieren. Siehe Verwenden semantischer Metadaten in Metrikansichten.