python elasticsearch date_histogram聚合查询
es版本7.6。
在使用python操作es执行date_histogram后台报错“elasticsearch.exceptions.TransportError:TransportError(503...”,kibana里执行同样的条件,报“Trying to create too many buckets. Must be less than or equal to: [10000]”。
后来发现是"time_zone"和"extended_bounds"出的问题,time_zone我设置的是东8区,而extended_bounds中的starttime和endtime还是UTC,因此endtime要在8小时之后,时间跨度很大,导致buckets数量超出限制。需要对extended_bounds日期也增加8小时。
es = Elasticsearch([‘127.0.0.1:9200‘], http_auth=(‘elastic‘, ‘elastic‘), timeout=50000)
data = {
"size": 0,
"query": {
"bool": {
"must": [
{
"range": {
"@timestamp": {
"gte": starttime, # UTC
"lte": endtime, # UTC
"format": "yyyy-MM-dd HH:mm:ss"
}
}
}
]
}
},
"aggs": {
"group_by_timestamp": {
"date_histogram": {
"field": "@timestamp",
"fixed_interval": ‘1s‘,
"format": "yyyy-MM-dd HH:mm:ss",
"time_zone": "Asia/Shanghai", # 设置时区为东8区
"min_doc_count": 0,
"extended_bounds": {
"min": starttime, # 需要增加8小时 + datetime.timedelta(hours=8)
"max": endtime # 需要增加8小时 + datetime.timedelta(hours=8)
}
}
}
}
}
es.search(index=[index_name], ignore_unavailable=True, body=data) 相关推荐
newbornzhao 2020-09-14
做对一件事很重要 2020-09-07
renjinlong 2020-09-03
明瞳 2020-08-19
李玉志 2020-08-19
mengyue 2020-08-07
molong0 2020-08-06
AFei00 2020-08-03
molong0 2020-08-03
wenwentana 2020-08-03
YYDU 2020-08-03
另外一部分,则需要先做聚类、分类处理,将聚合出的分类结果存入ES集群的聚类索引中。数据处理层的聚合结果存入ES中的指定索引,同时将每个聚合主题相关的数据存入每个document下面的某个field下。
sifeimeng 2020-08-03
心丨悦 2020-08-03
liangwenrong 2020-07-31
sifeimeng 2020-08-01
mengyue 2020-07-30
tigercn 2020-07-29
IceStreamLab 2020-07-29