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.
Belangrijk
Deze functie is experimenteel.
Met venstermetingen kunt u metingen definiëren met gevensterde, cumulatieve of semi-aangrenzende aggregaties in uw metrische weergaven. Deze typen metingen bieden complexere berekeningen, zoals zwevende gemiddelden, wijzigingen in perioden en lopende totalen. Deze pagina bevat praktische voorbeelden die laten zien hoe u kunt werken met venstermetingen in metrische weergaven.
Een venstermeting definiëren
Venstermetingen maken het mogelijk om metingen te definiëren met gevensterde, cumulatieve of semi-additieve aggregaties. Een venstermeting bevat de volgende vereiste waarden:
orde: De dimensie die de volgorde binnen het venster bepaalt.
bereik: Definieert de omvang van het venster, zoals achterlopend, cumulatief of alle gegevens. Mogelijke bereikwaarden zijn onder andere:
-
current: Bevat rijen waarbij de volgordewaarde van het venster gelijk is aan de waarde van de huidige rij. -
cumulative: Bevat alle rijen waarin de volgordewaarde van het venster kleiner is dan of gelijk is aan de waarde van de huidige rij. -
trailing <value> <unit>: Bevat rijen uit de huidige rij die achteruitgaat met het opgegeven aantal tijdseenheden, zoalstrailing 3 months. Dit omvat niet de huidige eenheid. Sluit bijvoorbeeldtrailing 3 monthsde huidige maand uit. -
leading <value> <unit>: Bevat rijen uit de huidige rij, vooruitgaand door het opgegeven aantal tijdseenheden, zoalsleading 7 days. -
all: Bevat alle rijen, ongeacht de vensterwaarde.
-
semiadditive: Hiermee geeft u op hoe de meting moet worden samengevat wanneer het orderveld niet is opgenomen in de query
GROUP BY. Mogelijke waarden zijn onder anderefirstenlast.
Voorbeeld van volg-, bewegende of voorloopvenstermeting
In het volgende voorbeeld wordt een meting berekend over een volg- of voorloopperiode in de afgelopen 7 dagen.
version: 0.1
source: samples.tpch.orders
filter: o_orderdate > DATE'1998-01-01'
dimensions:
- name: date
expr: o_orderdate
measures:
- name: t7d_customers
expr: COUNT(DISTINCT o_custkey)
window:
- order: date
range: trailing 7 day
semiadditive: last
In dit voorbeeld is de volgende configuratie van toepassing:
volgorde:date geeft aan dat de datumdimensie het venster rangschikt.
bereik: De trailing 7 day specificatie definieert het venster als de 7 dagen vóór elke datum, met uitzondering van de datum zelf.
semiadditive:last geeft aan dat de laatste waarde in het venster van 7 dagen wordt gebruikt.
Voorbeeld van venstermaatregel voor periode-tot-periode
Bereken de wijziging van de vorige periode in de huidige periode.
version: 0.1
source: samples.tpch.orders
filter: o_orderdate > DATE'1998-01-01'
dimensions:
- name: date
expr: o_orderdate
measures:
- name: previous_day_sales
expr: SUM(o_totalprice)
window:
- order: date
range: trailing 1 day
semiadditive: last
- name: current_day_sales
expr: SUM(o_totalprice)
window:
- order: date
range: current
semiadditive: last
- name: day_over_day_growth
expr: (MEASURE(current_day_sales) - MEASURE(previous_day_sales)) / MEASURE(previous_day_sales) * 100
In dit voorbeeld zijn de volgende voorwaarden van toepassing:
Er worden twee venstermetingen gebruikt: één voor het berekenen van de totale verkoop op de vorige dag en één voor de huidige dag.
Met een derde meting wordt de percentagewijziging (groei) tussen de huidige en vorige dagen berekend.
Voorbeeld van een cumulatieve (lopende) totaalmeting
Bereken een voorlopig totaal van een meting tot elk tijdstip.
version: 0.1
source: samples.tpch.orders
filter: o_orderdate > DATE'1998-01-01'
dimensions:
- name: date
expr: o_orderdate
measures:
- name: running_total_sales
expr: SUM(o_totalprice)
window:
- order: date
range: cumulative
semiadditive: last
In de volgende details worden belangrijke onderdelen van deze definitie gemarkeerd:
volgorde:date zorgt ervoor dat de date dimensie het venster rangschikt.
bereik:cumulative definieert het venster als alle gegevens tot en met elke datum.
semiadditive:last zorgt ervoor dat de laatste cumulatieve waarde wordt gebruikt bij het samenvoegen van dimensies.
Voorbeeld van meting voor periode tot heden
Bereken een voorlopig totaal in een bepaalde periode.
version: 0.1
source: samples.tpch.orders
filter: o_orderdate > DATE'1997-01-01'
dimensions:
- name: date
expr: o_orderdate
- name: year
expr: DATE_TRUNC('year', o_orderdate)
measures:
- name: ytd_sales
expr: SUM(o_totalprice)
window:
- order: date
range: cumulative
semiadditive: last
- order: year
range: current
semiadditive: last
In de volgende details worden belangrijke onderdelen van deze definitie gemarkeerd:
Er worden twee venstermetingen gebruikt: een voor de cumulatieve som van de
datedimensie en een andere om de som tot hetcurrentjaar te beperken.De cumulatieve som wordt beperkt door de
yeardimensie om te controleren of deze alleen binnen het huidige jaar wordt berekend.
Voorbeeld van semi-additieve maatregel
Bereken een meting die niet mag worden opgeteld voor een specifieke dimensie, zoals een banksaldo.
dimensions:
- name: date
expr: date
- name: customer
expr: customer_id
measures:
- name: semiadditive_balance
expr: SUM(balance)
window:
- order: date
range: current
semiadditive: last
In de volgende details worden belangrijke onderdelen van deze definitie gemarkeerd:
ordening:
datezorgt ervoor dat dedatedimensie het venster ordent.bereik:
currentbeperkt het venster tot één dag zonder aggregatie over dagen.semiadditive:
lastzorgt ervoor dat het meest recente saldo wordt geretourneerd bij het samenvoegen van meerdere dagen.
Opmerking
Deze meting binnen het tijdsvenster somt nog steeds op voor alle klanten om het totale dagelijkse saldo te verkrijgen.
Een query uitvoeren op een venstermeting
U kunt een query uitvoeren op een metrische weergave met een venstermeting zoals elke andere metrische weergave. In het volgende voorbeeld wordt een metrische weergave opgevraagd:
SELECT
state,
DATE_TRUNC('month', date),
MEASURE(t7d_distinct_customers) as m
FROM sales_metric_view
WHERE date >= DATE'2024-06-01'
GROUP BY ALL