rolling_percentile() 插件
适用于:✅Azure 数据资源管理器
按 BinSize 在 BinsPerWindow 大小的滚动(滑动)窗口中,返回 ValueColumn 填充值的指定百分位数的估计值 。
该插件通过 evaluate
运算符调用。
语法
T | evaluate
rolling_percentile(
ValueColumn,
Percentile,
IndexColumn,
BinSize,
BinsPerWindow [,
dim1,
dim2,
...] )
详细了解语法约定。
参数
客户 | 类型 | 必需 | 说明 |
---|---|---|---|
T | string |
✔️ | 输入表格表达式。 |
ValueColumn | string |
✔️ | 用于计算百分位数的列的名称。 |
Percentile | int、long 或 real | ✔️ | 带有要计算的百分位数的标量。 |
IndexColumn | string |
✔️ | 要对其运行滚动窗口的列的名称。 |
BinSize | int、long、real、datetime 或 timespan | ✔️ | 标量,带有要在 IndexColumn 上应用的箱大小。 |
BinsPerWindow | int |
✔️ | 每个窗口中包含的箱数。 |
dim1, dim2, ... | string |
要作为切片依据的维度列的列表。 |
返回
返回一个表,其中为每个箱设有一行(如果指定,则为维度的组合),该表含有截至箱处的窗口中的滚动百分位值。 输出表架构如下:
IndexColumn | dim1 | ... | dim_n | rolling_BinsPerWindow_percentile_ValueColumn_Pct |
---|
示例
每天滚动 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)
输出
Timestamp | 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 |
每天按维度滚动 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)
输出
Timestamp | EvenOrOdd | 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 |
2018-01-01 00:00:00.0000000 | 奇数 | 11 |
2018-01-02 00:00:00.0000000 | 奇数 | 23 |
2018-01-03 00:00:00.0000000 | 奇数 | 35 |
2018-01-04 00:00:00.0000000 | 奇数 | 59 |
2018-01-05 00:00:00.0000000 | 奇数 | 83 |
2018-01-06 00:00:00.0000000 | 奇数 | 107 |
2018-01-07 00:00:00.0000000 | 奇数 | 131 |
2018-01-08 00:00:00.0000000 | 奇数 | 155 |
2018-01-09 00:00:00.0000000 | 奇数 | 179 |
2018-01-10 00:00:00.0000000 | 奇数 | 203 |