ElasticSearch 对时序数据按 UTC 000000降采样使北京时间当天0-8点数据被归到昨天的数据分析

By | 2024年10月12日

北京时间10月10日原始数据

以下数据未降采样过,一小时插一条,共22条:

部分已降采样

从上面看,15:54之后的还没降采样,应属另一个索引,降采样这条索引(2024.10.09-000002)的 end_time应在15:54 之前,结果就是是如此:

可以看出,北京时间14:59 前的数据都已降采样,降采样后数据落在 2024-10-10 08:00 的有5条,这与原始数据对得上,如图:

北京时间10月10日08:00 前还有 8条数据,这8条肯定也属于 2024.10.09-000002 索引里的,但是按UTC 00::00:00降采样后被归到北京时间的10月9日去了,且@timestamp用了这条索引的 start_time:

因此,这里的17条数据有8条出错了,还有9条等下再分析。
这里还可以看出,一条索引降采样后会有两个时间点的数据,一个对应索引 start_time,另一个对应 UTC 00:00:00。
继续分析刚才的9条,从下面的原始数据看,他们确实属于10月9日:

结论

ElasticSearch 按 UTC 00:00:00 来降采样,对应北京时间 08:00:00,导致降采样后0-8点的数据会被错误的降到昨天去,存在8小时偏差。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注