案例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&