Sdílet prostřednictvím


Komponovatelnost v metrických pohledech

Tato stránka vysvětluje, jak kompozitovatelnost funguje v zobrazeních metrik, a poskytuje příklady, které vám ukážou, jak vytvořit logiku na základě dimenzí, měr a spojení v rámci jednoho zobrazení.

Přehled

Zobrazení metrik jsou kompozovatelná, což znamená, že můžete definovat vrstvenou a opakovaně použitelnou logiku. Místo psaní každé definice úplně od začátku můžete vytvořit nové, které vycházejí z existujících dimenzí a měr.

S modularitou můžete:

  • Odkaz na dříve definované dimenze v nových dimenzích
  • Odkazujte na jakoukoli dimenzi nebo dříve definované míry v nových mírách.
  • Odkazované sloupce ze spojení definovaných v zobrazení metriky

Kompozibilita vám pomáhá vyhnout se duplikacím, zjednodušit definice metrik a podporovat složitější analýzu, aniž by pokaždé bylo potřeba použít nezpracovaný SQL.

Možnosti kompilace metrik

Kompozičnost je principem vytváření složitých metrik opětovným použitím jednodušších základních měr. Místo psaní a údržby složité, vnořené logiky SQL pro každý odvozený klíčový ukazatel výkonu definujete základní "atomické" míry jednou a pak na ně odkazujete v jiných složitějších výpočtech. Tento přístup výrazně zlepšuje konzistenci, auditovatelnost a údržbu sémantické vrstvy.

Základem kompozability je MEASURE() funkce, která umožňuje definici míry odkazovat na jakoukoli jinou míru definovanou ve stejném zobrazení metriky.

Definování měr s možností kompilace

Kompozability se implementuje v measures části zobrazení YAML pro metriky.

Typ míry Description Example
Atomový Jednoduchá přímá agregace ve zdrojovém sloupci. Ty tvoří stavební bloky. SUM(o_totalprice)
Klidný Výraz, který matematicky kombinuje jednu nebo více jiných měr pomocí MEASURE() funkce. MEASURE(Total Revenue) / MEASURE(Order Count)

Příklad: Průměrná hodnota objednávky (AOV)

K výpočtu průměrné hodnoty objednávky (AOV) potřebujete dvě míry: Total Revenue a 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'

Pokud se v tomto příkladu definice total_revenue změní (např. přidáním filtru pro vyloučení daně), avg_order_value automaticky zdědí tuto změnu, takto se zajistí, že metrika AOV zůstane konzistentní s novým obchodním pravidlem.

Kompozability s podmíněnou logikou

Kompozičnost můžete použít k vytváření složitých poměrů, podmíněných procent a míry růstu, aniž byste museli spoléhat na funkce oken pro jednoduché výpočty v průběhu období.

Příklad: Míra plnění

K výpočtu sazby plnění (splněné objednávky / celkové objednávky) nejprve definujete míru pro dokončené objednávky pomocí FILTER klauzule.

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

Osvědčené postupy pro používání kompoziability

  1. Nejprve definujte atomické míry: Před definováním jakýchkoli měr, které na ně odkazují, vždy vytvořte základní míry (SUM, COUNTAVG, ).
  2. Použijte MEASURE() pro konzistenci: Při odkazování na výpočet jiné míry v rámci MEASURE() vždy používejte funkci expr. Nepokoušejte se ručně opakovat logiku agregace (například nepoužívejte SUM(a) / COUNT(b), pokud již existují míry pro čitatele i jmenovatele).
  3. Prioritizujte čitelnost: Složená expr míra může být čtena jako matematický vzorec pro KPI. Je například MEASURE(Gross Profit) / MEASURE(Total Revenue) jasnější a jednodušší auditovat než jeden složitý výraz SQL.
  4. Zkombinujte sémantická metadata: Po vytvoření poměru použijte sémantická metadata (jak je znázorněno v příkladu fulfillment_rate ) k automatickému formátování výsledku jako procenta nebo měny pro podřízené nástroje. Viz Použití sémantických metadat v zobrazeních metrik.