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?

如何使用 Bigquery 连接 GCP SQL 实例?

如何使用 Python BigQuery API 追加到 BigQuery 中的表

如何覆盖 BigQuery 方法调用的默认超时

如何使用 dplyr 和 bigquery 从 Bigquery 数据集中的多个表中进行选择?