Httparchive - BigQuery 如何获取 2010-2014 年每年的中位数 bytesTotal
Posted
技术标签:
【中文标题】Httparchive - BigQuery 如何获取 2010-2014 年每年的中位数 bytesTotal【英文标题】:Httparchive - BigQuery how to get median bytesTotal per year from 2010-2014 【发布时间】:2015-01-01 21:04:30 【问题描述】:我目前正在撰写关于网络性能的学士论文,并参考 httparchive 上的一些统计数据。因为我想要一个 2010 年到 2014 年关于 bytesTotal、bytesCss 等的漂亮图表,所以我试图从 BigQuery 中获取数据。查询确实有效,但我得到了一些不适合 httparchive.org 上的图形的结果
我的目标是为 2010 年的 bytesTotal 设置一个值,为 2011 年设置一个值,为 2012 年设置一个值,依此类推。
所以我尝试了这样的方法:
SELECT NTH(50, quantiles(bytesTotal,101)) TOTAL_med, NTH(50, quantiles(byteshtmlDoc,101))
HTMLDOC_med FROM [httparchive:runs.2010_11_15_pages], [httparchive:runs.2010_11_29_pages],
[httparchive:runs.2010_12_16_pages], [httparchive:runs.2010_12_28_pages];
SELECT AVG(bytesTotal) TOTAL_med, AVG(bytesHtmlDoc) HTMLDOC_med FROM [httparchive:runs.2010_11_15_pages],
[httparchive:runs.2010_11_29_pages], [httparchive:runs.2010_12_16_pages],
[httparchive:runs.2010_12_28_pages];
所以中位数会很好,但如果它们不起作用,平均数也可以。
有人可以帮帮我吗?
【问题讨论】:
你能澄清你看到的问题是什么吗?您使用的查询看起来是正确的(如果存在空值,您可能需要预先过滤它们)。 如果我对 2014_12_15 的中值运行查询,我得到 1211kb 作为 bytesTotal 的结果...在 httparchive 上大约是 1900kb。所以我问自己这些额外的 700kb 是从哪里来的。即使 httparchive 查询平均而不是中位数 700kb 的差异应该有点多。 你知道httparchive数字是如何产生的吗? 很遗憾没有,但我猜应该是平均值或中位数。 【参考方案1】:我试过了。 希望对您有用。
SELECT NTH(50, quantiles(bytesTotal)) MedianBytesTotal
FROM [httparchive:runs.2010_12_28_pages], [httparchive:runs.2012_12_15_pages],
[httparchive:runs.2013_12_15_pages], [httparchive:runs.2014_12_15_pages];
我得到的结果是:- MedianBytesTotal -- 1074357
【讨论】:
感谢您的回答,但这不是我想要的。 :-) 我想让每年的 MedianBytes 分开。但问题是,与 httparchive 上的图表相比,结果差异很大(见上面的截图)。 我猜你可以做一个小组,不是吗?这些表有日期吗?我会做多个查询,每年都有一个范围,或者如果有的话,用“年”做一个分组。以上是关于Httparchive - BigQuery 如何获取 2010-2014 年每年的中位数 bytesTotal的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 PHP bigquery 客户端库对 bigquery 数据进行分页?
如何使用 dataflowsdk 将数据从 bigquery 转录到 bigquery?