elasticsearch聚合中的动态时区偏移?
Posted
技术标签:
【中文标题】elasticsearch聚合中的动态时区偏移?【英文标题】:Dynamic time zone offset in elasticsearch aggregation? 【发布时间】:2014-10-24 01:27:19 【问题描述】:我正在汇总每个都有时间戳的文档。时间戳为 UTC,但每个文档也有一个本地时区 ("timezone": "America/Los_Angeles"
),该时区可能因文档而异。
我正在尝试根据当地时间而不是 UTC 或固定时区(例如,使用选项 "time_zone": "America/Los_Angeles"
)进行 date_histogram aggregation
。
如何将每个文档的时区转换为聚合前的本地时间?
这是简单的聚合:
"aggs":
"date":
"date_histogram":
"field": "created_timestamp",
"interval": "day"
【问题讨论】:
您找到解决方案了吗?我知道这很旧,但我处于完全相同的位置,并想在发布其他重复的问题之前进行检查。 【参考方案1】:如果您存储另一个没有时区信息的本地时间字段,它应该可以工作。
获取您拥有的每个时间戳(以 UTC 为单位),将其转换为本地时区的日期(这将包含时区信息)。现在只需从此日期时间删除时区信息。现在您可以对这个新字段执行操作了。
假设您从 UTC 时间开始: '2016-07-17T01:33:52.412Z'
现在,假设您在 PDT 中,您可以将其转换为: '2016-07-16T18:33:52.412-07:00'
现在,砍掉最后,你会得到: '2016-07-16T18:33:52.412Z'
现在你可以对这个字段进行操作了。
【讨论】:
【参考方案2】:我不确定我是否完全理解它,但似乎time_zone
property 就是为此:
区域值接受小时偏移的数值,例如:“time_zone”:-2。它还接受小时和分钟的格式,例如“time_zone”:“-02:30”。另一种选择是提供一个被接受为此处列出的值之一的时区。
【讨论】:
以上是关于elasticsearch聚合中的动态时区偏移?的主要内容,如果未能解决你的问题,请参考以下文章
如何通过Elasticsearch 6.x中的动态或未知字段进行聚合