在您查询和分析日志时,如果日志服务控制台提示查询结果不精确,可参考本文进行排查。
问题描述
在您查询和分析日志时,如果日志服务控制台提示查询结果不精确,表示日志服务未能扫描全部日志,返回的查询和分析结果不是基于全部日志的精确结果。在日志服务nginx-log日志库的查询分析页面,执行SQL语句select http_referer, count(1) pv group by http_referer order by pv desc,日志条数约1000亿条(100,006,376,644),统计分析结果显示红色警告结果不精确。
可能原因
查询结果不精确一般由以下原因造成。
-
查询时间范围太大
例如查询时间范围为3个月或1年时,日志服务无法在一次查询中完整扫描这个时间段内的所有日志。为了快速返回结果,先返回部分不精确的结果。
-
查询条件过于复杂
例如您在同一个查询语句中设置了30个查询条件,则日志服务无法一次性读取查询结果。
-
SQL计算时要读取的数据量太大
如果您在一个分析语句中设置了多个字段,而这些字段对应的数据量很大,超过Shard读取能力(每个Shard仅能读取1 GB数据),则返回结果不精确。
解决方案
方案一
开启SQL完全精确,可以确保查询结果精确完整。
方案二
缩小查询和分析的时间范围,多次(10次以内)执行查询和分析语句。
该文章对您有帮助吗?