Python - Elasticsearch ES 查历史数据平均值

本文介绍如何用Python通过Elasticsearch查询最近12小时按10分钟间隔统计的数据,并获取过去7天同一时间段的平均值及70%分位数。详细讲述了查询需求和代码实现。

Python - Elasticsearch ES 查历史数据平均值

Max.Bai

2020-08

需求:

查询最近12 小时的数据按照每10分钟分组统计数量

同时查询过去7天的同时段的数据平均值,同时段的70%值(从高到低排序,70%位置的数量)

比如 最近12小时中12:00-12:10 这个时段 ,过去7天的同时段,7天平均值是多少,过去7天同时段数量排序大到小,70%线数量是多少

查询代码:


    end_time = int(time.time())     # 时间范围结束
    new_data_start_time = end_time - SECONEDS_OF_12HOURS  # 最近12小时

    hitory_data_start_time = end_time - SECONEDS_OF_DAY * 7  # 最近7天 时间范围开始

    # 统计周期10分钟
    interval = "60s"   
    ma7_interval = 60

query = {
        "query": {
            "bool": {
                "must": [
                    # {
                    #     "term": {"platform": 1},  # 过滤条件
                    # },
                    {"range": {"create_time": {"gte": hitory_data_start_time, "lt": end_time}}},   #时间范围过滤  
                ]
            }
        },
        "size": 0,
        "aggs": {
            "new_data": {   # 最近 12小时统计 按10分钟统计,每10分钟统计数据
                "filter": {"range": {"create_time": {"from": new_data_start_time, "to": end_time}}},
                "aggs": {
                    "by_duration": {
                        "date_histogram": {
                            # "script":  "Date d1 = new Date(doc['activationTime'].value); Date d2 = new Date(doc['deact
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值