es对分组后结果进行统计_es数据二次开发统计展示

本文介绍如何在Elasticsearch中对查询结果进行分组统计,并处理分组后的缺失值问题。通过Python代码示例展示了按多列进行分组统计的实现过程,同时讨论了当总记录数与分组统计不符时的排查方法,包括检查分组列的值是否丢失,并提供了查看索引创建时间的技巧。
摘要由CSDN通过智能技术生成

案例1

在es查询中按照多列分组的时候 分组列的count值会越来越少 es默认隐藏了没有被分组匹配到的记录数  需要在查询的时候开启

2.开启显示没有被分组成功的记录

分组成功的记录加上分组missing的记录数就等于总的记录数  26932+2666=29598

3.当实际的总数和es分组统计的条数对不上的时候 需要考虑是不是分组列的值有可能被丢失了 这个时候可以开启显示丢失

4.查看es的原始日志内容确实有10001条记录不存在CHANNEL字段

实例统计

#!/usr/bin/env python#-*- coding: utf-8 -*-

from elasticsearch6 importElasticsearchimportdatetimeimporttimeimportre

es= Elasticsearch("http://10.000.142.88:9200")#每小时定时执行统计前一个小时的数据

defformartTime(startTime):try:

startTime= datetime.datetime.strptime(startTime, '%Y-%m-%dT%H:%M:%S.%f')exceptException as e:

startTime= datetime.datetime.strptime(startTime, '%Y-%m-%d %H:%M:%S')

startTime= startTime.strftime('%Y-%m-%d %H:%M:%S.%f')[:-13]return startTime+":00:00"

defstrtime_to_datetime(timestr):"""将字符串格式的时间 (含毫秒) 转为 datetime 格式

:param timestr: {str}'2016-02-25 20:21:04.242&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值