wtyczka rolling_percentile()
Dotyczy: ✅Microsoft Fabric✅Azure Data Explorer
Zwraca oszacowanie dla określonego percentyla populacji ValueColumn w kroczącym (przesuwanym) oknie rozmiaru BinsPerWindow na BinSize.
Wtyczka jest wywoływana z operatorem evaluate
.
Składnia
T | evaluate
rolling_percentile(
ValueColumn Percentyl,
IndexColumn,
,
BinSize BinSize,
BinsPerWindow [,
dim1,
dim2,
...])
Dowiedz się więcej na temat konwencji składni.
Parametry
Nazwisko | Type | Wymagania | opis |
---|---|---|---|
T | string |
✔️ | Wyrażenie tabelaryczne danych wejściowych. |
Kolumna wartości | string |
✔️ | Nazwa kolumny używanej do obliczania percentyli. |
Percentyl | int, long lub real | ✔️ | Skalar z percentylem do obliczenia. |
Kolumna indeksu | string |
✔️ | Nazwa kolumny, w której ma zostać uruchomione okno stopniowe. |
BinSize | int, long, real, datetime lub timespan | ✔️ | Skalar z rozmiarem pojemników do zastosowania w kolumnie IndexColumn. |
BinsPerWindow | int |
✔️ | Liczba pojemników zawartych w każdym oknie. |
dim1, dim2, ... | string |
Lista kolumn wymiarów do wycinka. |
Zwraca
Zwraca tabelę z wierszem dla każdego pojemnika (i kombinacją wymiarów, jeśli określono), która ma kroczący percentyl wartości w oknie kończącym się na pojemniku (włącznie). Schemat tabeli wyjściowej to:
Kolumna indeksu | dim1 | ... | dim_n | rolling_BinsPerWindow_percentile_ValueColumn_Pct |
---|
Przykłady
Krocząca 3-dniowa mediana na dzień
Następne zapytanie oblicza 3-dniową medianę wartości dziennego stopnia szczegółowości. Każdy wiersz w danych wyjściowych reprezentuje wartość mediany dla ostatnich 3 przedziałów (dni), w tym samego pojemnika.
let T =
range idx from 0 to 24 * 10 - 1 step 1
| project Timestamp = datetime(2018-01-01) + 1h * idx, val=idx + 1
| extend EvenOrOdd = iff(val % 2 == 0, "Even", "Odd");
T
| evaluate rolling_percentile(val, 50, Timestamp, 1d, 3)
Wyjście
Sygnatura czasowa | rolling_3_percentile_val_50 |
---|---|
2018-01-01 00:00:00.0000000 | 12 |
2018-01-02 00:00:00.0000000 | 24 |
2018-01-03 00:00:00.0000000 | 36 |
2018-01-04 00:00:00.0000000 | 60 |
2018-01-05 00:00:00.0000000 | 84 |
2018-01-06 00:00:00.0000000 | 108 |
2018-01-07 00:00:00.0000000 | 132 |
2018-01-08 00:00:00.0000000 | 156 |
2018-01-09 00:00:00.0000000 | 180 |
2018-01-10 00:00:00.0000000 | 204 |
Krocząca 3-dniowa mediana na dzień według wymiaru
Ten sam przykład z góry, ale teraz oblicza również okno stopniowe partycjonowane dla każdej wartości wymiaru.
let T =
range idx from 0 to 24 * 10 - 1 step 1
| project Timestamp = datetime(2018-01-01) + 1h * idx, val=idx + 1
| extend EvenOrOdd = iff(val % 2 == 0, "Even", "Odd");
T
| evaluate rolling_percentile(val, 50, Timestamp, 1d, 3, EvenOrOdd)
Wyjście
Sygnatura czasowa | EvenOrOdd | rolling_3_percentile_val_50 |
---|---|---|
2018-01-01 00:00:00.0000000 | Nawet | 12 |
2018-01-02 00:00:00.0000000 | Nawet | 24 |
2018-01-03 00:00:00.0000000 | Nawet | 36 |
2018-01-04 00:00:00.0000000 | Nawet | 60 |
2018-01-05 00:00:00.0000000 | Nawet | 84 |
2018-01-06 00:00:00.0000000 | Nawet | 108 |
2018-01-07 00:00:00.0000000 | Nawet | 132 |
2018-01-08 00:00:00.0000000 | Nawet | 156 |
2018-01-09 00:00:00.0000000 | Nawet | 180 |
2018-01-10 00:00:00.0000000 | Nawet | 204 |
2018-01-01 00:00:00.0000000 | Dziwny | 11 |
2018-01-02 00:00:00.0000000 | Dziwny | 23 |
2018-01-03 00:00:00.0000000 | Dziwny | 35 |
2018-01-04 00:00:00.0000000 | Dziwny | 59 |
2018-01-05 00:00:00.0000000 | Dziwny | 83 |
2018-01-06 00:00:00.0000000 | Dziwny | 107 |
2018-01-07 00:00:00.0000000 | Dziwny | 131 |
2018-01-08 00:00:00.0000000 | Dziwny | 155 |
2018-01-09 00:00:00.0000000 | Dziwny | 179 |
2018-01-10 00:00:00.0000000 | Dziwny | 203 |