rolling_percentile() プラグイン
BinSize ごとのローリング (スライディング) BinsPerWindow サイズ ウィンドウで、ValueColumn 母集団の指定されたパーセンタイルの推定値を返します。
このプラグインは、evaluate
演算子を使用して呼び出されます。
構文
T | evaluate
rolling_percentile(
ValueColumn,
Percentile,
IndexColumn,
BinSize,
BinsPerWindow [,
dim1,
dim2,
...] )
構文規則について詳しく知る。
パラメーター
件名 | タイプ | Required | 説明 |
---|---|---|---|
T | string |
✔️ | 表形式の入力式。 |
ValueColumn | string |
✔️ | パーセンタイルの計算に使用する列の名前。 |
Percentile | int、long、または real | ✔️ | 計算するパーセンタイルを持つスカラー。 |
IndexColumn | string |
✔️ | ローリング ウィンドウを実行する列の名前。 |
BinSize | int、long、real、datetime、または timespan | ✔️ | IndexColumnに適用するビンのサイズを持つスカラー。 |
BinsPerWindow | int |
✔️ | 各ウィンドウに含まれるビンの数。 |
dim1, dim2, ... | string |
スライスするディメンション列の一覧。 |
返品
ビン (および指定されている場合は、ディメンションの組み合わせ) ごとに 1 行を含むテーブルを返します。このテーブルには、ビンで終わるウィンドウ内のローリング パーセンタイルが含まれます (ビンを含む)。 出力テーブル スキーマは次のとおりです。
IndexColumn | dim1 | ... | dim_n | rolling_BinsPerWindow_percentile_ValueColumn_Pct |
---|
例
1 日ごとに 3 日分の中央値をローリングする
次のクエリでは、毎日の粒度で 3 日分の中央値を計算します。 出力の各行は、ビン自体を含む最後の 3 つのビン (日) の中央値を表します。
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)
出力
タイムスタンプ | 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 |
ディメンションごとの 1 日あたりの 3 日分の中央値をローリングする
上記と同じ例ですが、ディメンションの値ごとにパーティション分割されたローリング ウィンドウも計算します。
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)
出力
タイムスタンプ | EvenOrOdd | rolling_3_percentile_val_50 |
---|---|---|
2018-01-01 00:00:00.0000000 | Even | 12 |
2018-01-02 00:00:00.0000000 | Even | 24 |
2018-01-03 00:00:00.0000000 | Even | 36 |
2018-01-04 00:00:00.0000000 | Even | 60 |
2018-01-05 00:00:00.0000000 | Even | 84 |
2018-01-06 00:00:00.0000000 | Even | 108 |
2018-01-07 00:00:00.0000000 | Even | 132 |
2018-01-08 00:00:00.0000000 | Even | 156 |
2018-01-09 00:00:00.0000000 | Even | 180 |
2018-01-10 00:00:00.0000000 | Even | 204 |
2018-01-01 00:00:00.0000000 | Odd | 11 |
2018-01-02 00:00:00.0000000 | Odd | 23 |
2018-01-03 00:00:00.0000000 | Odd | 35 |
2018-01-04 00:00:00.0000000 | Odd | 59 |
2018-01-05 00:00:00.0000000 | Odd | 83 |
2018-01-06 00:00:00.0000000 | Odd | 107 |
2018-01-07 00:00:00.0000000 | Odd | 131 |
2018-01-08 00:00:00.0000000 | Odd | 155 |
2018-01-09 00:00:00.0000000 | Odd | 179 |
2018-01-10 00:00:00.0000000 | Odd | 203 |