使用 Elasticsearch,我知道我可以做一些不错的时间序列数据查询并获得平均值/最大值等
是否有可能只在该计算中包括 90% 的百分位数,尤其是在 Kibana 中?
关于如何做到这一点的任何想法?
使用 Elasticsearch,我知道我可以做一些不错的时间序列数据查询并获得平均值/最大值等
是否有可能只在该计算中包括 90% 的百分位数,尤其是在 Kibana 中?
关于如何做到这一点的任何想法?
Elasticsearch 目前不支持百分位数(包括中位数)。
百分位数比分布式环境中的统计数据更难计算。假设您有 2 个分片。如果你问他们两个他们的值的总和和值的数量,你将能够知道全局平均值:($sum1 + $sum2) / $(value_count1 + $value_count2)
。
另一方面,如果您想计算中位数,准确计算它的唯一方法是从两个分片中获取所有值,对它们进行排序并取中位数。这将需要大量内存和网络带宽。
幸运的是,有一些算法可以在内存使用量有限的情况下计算出好的近似百分位数,我们特别研究了tdigest,因此很有可能在未来的 Elasticsearch 版本中支持(近似)百分位数。