Udostępnij za pośrednictwem


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 | evaluaterolling_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