移动百分位聚合
编辑移动百分位聚合编辑
给定一个有序的 百分位 数列,移动百分位聚合将在这些百分位上滑动一个窗口,并允许用户计算累积百分位。
这在概念上与 移动函数 管道聚合非常相似,只是它作用于百分位草图而不是实际的桶值。
语法编辑
一个 moving_percentiles
聚合单独来看是这样的
{ "moving_percentiles": { "buckets_path": "the_percentile", "window": 10 } }
表 74. moving_percentiles
参数
参数名称 | 描述 | 必需 | 默认值 |
---|---|---|---|
|
感兴趣的百分位的路径(有关更多详细信息,请参阅 |
必需 |
|
|
在直方图上“滑动”的窗口大小。 |
必需 |
|
|
可选 |
0 |
moving_percentiles
聚合必须嵌入到 histogram
或 date_histogram
聚合中。它们可以像任何其他指标聚合一样嵌入
response = client.search( body: { size: 0, aggregations: { my_date_histo: { date_histogram: { field: 'date', calendar_interval: '1M' }, aggregations: { the_percentile: { percentiles: { field: 'price', percents: [ 1, 99 ] } }, the_movperc: { moving_percentiles: { buckets_path: 'the_percentile', window: 10 } } } } } } ) puts response
POST /_search { "size": 0, "aggs": { "my_date_histo": { "date_histogram": { "field": "date", "calendar_interval": "1M" }, "aggs": { "the_percentile": { "percentiles": { "field": "price", "percents": [ 1.0, 99.0 ] } }, "the_movperc": { "moving_percentiles": { "buckets_path": "the_percentile", "window": 10 } } } } } }
一个名为“my_date_histo”的 |
|
一个 |
|
最后,我们指定一个 |
移动百分位的构建方法是:首先指定一个字段上的 histogram
或 date_histogram
。然后在该直方图中添加一个百分位指标。最后,将 moving_percentiles
嵌入到直方图中。buckets_path
参数随后用于“指向”直方图内的百分位聚合(有关 buckets_path
语法的描述,请参阅 buckets_path
语法)。
以下可能是响应
{ "took": 11, "timed_out": false, "_shards": ..., "hits": ..., "aggregations": { "my_date_histo": { "buckets": [ { "key_as_string": "2015/01/01 00:00:00", "key": 1420070400000, "doc_count": 3, "the_percentile": { "values": { "1.0": 151.0, "99.0": 200.0 } } }, { "key_as_string": "2015/02/01 00:00:00", "key": 1422748800000, "doc_count": 2, "the_percentile": { "values": { "1.0": 10.4, "99.0": 49.6 } }, "the_movperc": { "values": { "1.0": 151.0, "99.0": 200.0 } } }, { "key_as_string": "2015/03/01 00:00:00", "key": 1425168000000, "doc_count": 2, "the_percentile": { "values": { "1.0": 175.25, "99.0": 199.75 } }, "the_movperc": { "values": { "1.0": 11.6, "99.0": 200.0 } } } ] } } }
moving_percentiles
聚合的输出格式继承自引用的 percentiles
聚合的格式。
移动百分位管道聚合始终使用 skip
间隙策略运行。
shift 参数编辑
默认情况下(使用 shift = 0
),提供用于计算的窗口是最后 n
个值(不包括当前桶)。将 shift
增加 1 会将起始窗口位置向右移动 1
。
- 要将当前桶包含到窗口中,请使用
shift = 1
。 - 对于居中对齐(当前桶前后
n / 2
个值),请使用shift = window / 2
。 - 对于右对齐(当前桶后
n
个值),请使用shift = window
。
如果任一窗口边缘移动到数据序列边界之外,则窗口将缩小以仅包含可用值。