Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Op deze pagina wordt uitgelegd hoe de samenstelbaarheid in metrische weergaven werkt en voorbeelden bevat die laten zien hoe u logica opstelt door te bouwen op dimensies, metingen en joins in één weergave.
Overzicht
Metrische weergaven kunnen worden ge composeerd, wat betekent dat u gelaagde, herbruikbare logica kunt definiëren. In plaats van elke definitie helemaal zelf te schrijven, kunt u nieuwe definities maken die voortbouwen op bestaande dimensies en metingen.
Met samenstelbaarheid kunt u het volgende doen:
- Verwijzing naar eerder gedefinieerde dimensies in nieuwe dimensies
- Verwijzen naar een dimensie of eerder gedefinieerde metingen in nieuwe metingen
- Referentiekolommen van joins die zijn gedefinieerd in de metrische weergave
Dankzij composabiliteit kunt u duplicatie voorkomen, metrische definities stroomlijnen en complexere analyses ondersteunen zonder dat er steeds onbewerkte SQL nodig is.
Metrische samenstelling
Composabiliteit is het principe van het bouwen van complexe metrische gegevens door eenvoudigere, fundamentele metingen te hergebruiken. In plaats van complexe, geneste SQL-logica voor elke afgeleide KPI te schrijven en te onderhouden, definieert u eenmaal de kernmetingen atomisch en verwijst u ernaar in andere, geavanceerdere berekeningen. Deze aanpak verbetert de consistentie, controlebaarheid en het onderhoud van uw semantische laag aanzienlijk.
De basis van de composabiliteit is de MEASURE() functie, waarmee een metingdefinitie kan verwijzen naar een andere meting die is gedefinieerd in dezelfde metrische weergave.
Metingen definiëren met composabiliteit
Composabiliteit wordt geïmplementeerd in de measures sectie van de YAML voor de metrische weergave.
| Type meting | Description | Example |
|---|---|---|
| Atomic | Een eenvoudige, directe aggregatie op een bronkolom. Deze vormen de bouwstenen. | SUM(o_totalprice) |
| Kalm | Een expressie die een of meer andere metingen wiskundig combineert met behulp van de MEASURE() functie. |
MEASURE(Total Revenue) / MEASURE(Order Count) |
Voorbeeld: Gemiddelde orderwaarde (AOV)
Als u de gemiddelde orderwaarde (AOV) wilt berekenen, hebt u twee metingen nodig: Total Revenue en 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'
Als in dit voorbeeld de definitie van total_revenue verandert (bijvoorbeeld als een filter voor het uitsluiten van belasting wordt toegevoegd), neemt avg_order_value die verandering automatisch over, zodat de AOV-metriek consistent blijft met de nieuwe bedrijfsregel.
Composabiliteit met voorwaardelijke logica
U kunt samenstelbaarheid gebruiken om complexe verhoudingen, voorwaardelijke percentages en groeipercentages te maken zonder gebruik te maken van vensterfuncties voor eenvoudige berekeningen voor period-over-perioden.
Voorbeeld: Uitvoeringspercentage
Als u het uitvoeringspercentage (voltooide orders/totale orders) wilt berekenen, definieert u eerst de meting voor voltooide orders met behulp van een FILTER component.
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
Aanbevolen procedures voor het gebruik van composabiliteit
-
Definieer eerst atomische metingen: Stel altijd uw fundamentele metingen (
SUM,COUNT, )AVGvast voordat u maatregelen definieert die ernaar verwijzen. -
Gebruiken
MEASURE()voor consistentie: gebruik altijd deMEASURE()functie bij het verwijzen naar de berekening van een andere meting binnen eenexpr. Herhaal de aggregatielogica niet handmatig (vermijdSUM(a) / COUNT(b)bijvoorbeeld als er al metingen bestaan voor zowel de teller als de noemer). -
Prioriteit geven aan leesbaarheid: De
exprvoor een samengestelde meting moet worden gelezen als een wiskundige formule voor de KPI. Is bijvoorbeeldMEASURE(Gross Profit) / MEASURE(Total Revenue)duidelijker en eenvoudiger te controleren dan één complexe SQL-expressie. -
Combineren met semantische metagegevens: Nadat u een verhouding hebt opgesteld, gebruikt u semantische metagegevens (zoals weergegeven in het
fulfillment_ratevoorbeeld) om het resultaat automatisch op te maken als percentage of valuta voor downstreamhulpprogramma's. Zie Semantische metagegevens gebruiken in metrische weergaven.