ES查询直方图聚合区间结果min越界问题
● 系统环境说明
Linux环境:centos 7.2
腾讯云ES Service:7.5.1
Java:1.8.0_181
● 集群配置
32核64GB, 3个(主节点)
50GB 高性能云盘 x1
32核64GB, 12个(数据节点)
6000GB SSD云硬盘 x2
问题
ES查询直方图数据,结果明显发生了越界:
问题原因
这里的越界其实是符合预期的,因为真正的边界取决于interval,而不是min,所表现出的特征是:
结果中看到的最小key(1607040000000000),可以被interval(864000000000)所整除
当extended_bounds.min不被interval整除的时候,默认的最小值为:
key = extended_bounds.min - (extended_bounds.min % interval)
解决方法
histogram提供了offset,以偏移桶的边界,算法是:
offset = extended_bounds.min % interval
正确的做法是出现这种情况时,设置offset值,这样最小key就会等于extended_bounds.min,问题就会得到解决。
所有失去的,都会以另一种方式回到你身边。