日志服务 采样分析

使用 统计分析 功能时,若原始日志条数非常多或统计分析语句(SQL)较为复杂,统计分析可能出现缓慢甚至超时的情况。此时可使用采样分析功能对原始日志进行采样,再进行统计分析。

相关产品
日志服务 产品页,含版本规格、价格与购买入口。

一、操作场景

日志服务通过随机采样的方式对原始日志进行采样,根据统计学相关原理,在合理的采样率及较大的样本数下,采样后的统计结果相比全量精确统计误差较低,能够满足大多数海量数据的统计分析需求。

二、采样方式

统计分析默认为“精确分析”,即不采样。需要采样时,可选择如下两类采样方式:

·自动采样:根据原始日志条数多少自动决定采样率,使得样本数约为100万,以该样本进行统计分析。例如原始日志为100亿条时,使用自动采样获取100万样本,对应的采样率为1:10,000。

·固定采样率采样:人工设定采样率,根据该采样率从原始日志中获取样本。例如原始日志为100亿条时,按照1:100,000采样,样本数为10万。采样率最大为1(即不采样),最小为1:1000,000。

无论采用哪种采样方式,在统计分析结果中均可查看最终实际的采样率。

三、估算真实值

采样分析结果能够很大程度上反应真实值,根据值的计算方式,可参见如下方法估算实际值:

·平均值相关的计算方式:例如avg、geometric_mean等,直接以样本统计结果代表真实值。

·和值相关的计算方式:例如count(*)、sum、count_if等,以样本统计结果除以采样率代表真实值。例如,按照1:10,000的采样率统计接口 pv(count(*)),样本统计结果为232,则真实值约为232 / (1:10000) = 2320000。

例如按照1:10,000采样时,检索分析语句为:

* | select count(*)/(1.0/10000) as pv,avg(response_time) as response_time_avg

·pv 计算: count(*)为统计日志条数,属于和值计算,需以样本统计结果除以采样率代表真实值。其中,(1.0/10000)即为采样率,计算获得的 pv 为真实 pv 的估算值。

·response_time_avg 计算:avg(response_time)为计算响应时间response_time的平均值,属于平均值计算,可直接作为真实 response_time_avg 的估算值。

四、采样分析准确度

统计学上使用置信水平和置信区间衡量采样结果的准确度,置信水平代表采样结果的可信度,置信区间代表指定置信水平下真实值所在的区间。例如某一样本统计结果置信水平为95%,置信区间为[212,478],则真实值有95%的概率位于212 – 478之间。

置信水平越高,置信区间越大。常用置信水平为95%(统计学中一般认为概率低于5%为小概率事件),对应的置信区间计算方式为:


其中,x̅ 为样本平均值,s 为样本标准差,n 为样本数。

例如使用自动采样进行统计分析:

* | select avg(response_time) as x,count(response_time) as n,stddev_samp(response_time) as s

样本统计分析结果为:

·x:即样本平均值,544.4656932942215;

·n:即样本数,995097;

·s:即样本标准差,1382.618439585749。

则置信水平为95%时,avg(response_time)的真实值位于[541.75,547.18]内,而实际上该案例通过精确统计得到的avg(response_time)为545.16,估算值非常接近真实值。

注意:说明:

注意:以上为严格的采样准确度衡量方式,实际使用过程中,样本数大于1000时,采样获得的结果一般具备较高的准确度。

按维度统计分析时(即group by),由于样本会按指定维度拆分为多个组,并在每个组内分别计算统计值,此时单个组内的样本数将低于总样本数,会导致样本数较少的组的统计值准确度较低。
例如使用采样进行统计分析:

* | select avg(response_time) as response_time,count(*) as sampleCount,url group by url order by count(*) desc

样本统计分析结果为:

url response_time sampleCount
/user 45.23 7845
/user/list 78.45 6574
/user/login 45.85 5235
/user/logout 45.48 1245
/book/new 125.78 987
/book/list 17.23 658
/book/col 10.21 23
/order 12.13 2

其中,/book/col和/order两个 url 的样本数过低,统计结果准确度较低,不具备参考性。如需对这两个 url 获取更加准确的统计结果,可提高整体的采样率,或单独对其进行统计分析。例如:

url:"/book/col" OR url:"/order" | select avg(response_time) as response_time,count(*) as sampleCount,url group by url order by count(*) desc

五、操作步骤

1. 登录 日志服务控制台。

2. 在左侧导航栏中,单击检索分析,进入日志主题检索分析页面。

3. 在页面顶部,选择需要检索分析的日志主题。

4. 输入检索分析语句(需包含 SQL)后,在右侧检索分析按钮左侧设定是否需要采样分析以及对应的采样率。

·交互模式:

·语句模式:

5. 单击右侧  执行检索分析。完成检索分析后,图表顶部将显示本次分析采用的采样率。

赞 (0)
上一篇 4天前
下一篇 4天前