Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google bigquery BigQuery:优化查询,获得每月访问量最高的5个维基百科页面_Google Bigquery - Fatal编程技术网

Google bigquery BigQuery:优化查询,获得每月访问量最高的5个维基百科页面

Google bigquery BigQuery:优化查询,获得每月访问量最高的5个维基百科页面,google-bigquery,Google Bigquery,我正试图从公共数据集fh-bigquery.wikipedia_v3.pageviews_2019中找到2019年每月访问量最高的5个维基百科页面。我提出了以下问题,但我需要两件事: 该查询运行约2分钟,处理2.3 TB的数据,而不管我是筛选前5个级别还是在外部查询中全部显示它们。是否有一个更好的优化查询来处理更少的量和更少的时间?通过它,我们可以使用子查询本身中的top 5或limit 5来限制首先获取的记录数 根据日历顺序而不是字母顺序对月份进行排序 查询: 选择* 从…起 选择2019年月

我正试图从公共数据集fh-bigquery.wikipedia_v3.pageviews_2019中找到2019年每月访问量最高的5个维基百科页面。我提出了以下问题,但我需要两件事:

该查询运行约2分钟,处理2.3 TB的数据,而不管我是筛选前5个级别还是在外部查询中全部显示它们。是否有一个更好的优化查询来处理更少的量和更少的时间?通过它,我们可以使用子查询本身中的top 5或limit 5来限制首先获取的记录数

根据日历顺序而不是字母顺序对月份进行排序

查询:

选择* 从…起 选择2019年月份、标题、总视图、, 按2019年月份按分区排序按总视图排序按视图排序 从…起 选择日期%B的格式,日期小时为2019年的月份, 标题,SUM视图作为tot_视图 来自'fh-bigquery.wikipedia\u v3.pageviews\u 2019` wiki='en'在哪里 标题不在‘主页’、“-”、‘特殊:搜索’、‘特殊:CreateCount’、‘特殊:观察列表’、‘特殊:ElectronPdf’、‘特殊:书籍’、‘特殊:城市显示’、‘特殊:最近的变化’、‘门户:当前事件’、‘维基百科’中 “2019-01-01”和“2019-12-31”之间的日期时间 按月份分组,标题 对问题的看法_排名

该查询运行约2分钟,处理2.3 TB的数据,而不管我是筛选前5个级别还是在外部查询中全部显示它们。是否有更好的优化查询以在更短的时间内处理更少的卷

查询已优化!请注意,它没有处理2.3TB,也没有花费2分钟。运行时间和字节查询为1分钟20秒,已处理440.1 GB。这是因为表是集群的

我可以使用ARRAY_AGG和更好的排序改进查询的运行时间:

选择2019年月份、数组标题、总视图顺序、总视图描述限制5 从…起 选择日期%B的格式,日期小时为2019年的月份, 标题,SUM视图为tot_视图,MINdatehour month_用于排序 来自'fh-bigquery.wikipedia\u v3.pageviews\u 2019` wiki='en'在哪里 标题不在‘主页’、“-”、‘特殊:搜索’、‘特殊:CreateCount’、‘特殊:观察列表’、‘特殊:ElectronPdf’、‘特殊:书籍’、‘特殊:城市显示’、‘特殊:最近的变化’、‘门户:当前事件’、‘维基百科’中 “2019-01-01”和“2019-12-31”之间的日期时间 按月份分组,标题 按1分组 按Min Month_排序的订单 如果我们删除视图3中的所有行 标题不在‘主页’、“-”、‘特殊:搜索’、‘特殊:CreateCount’、‘特殊:观察列表’、‘特殊:ElectronPdf’、‘特殊:书籍’、‘特殊:城市显示’、‘特殊:最近的变化’、‘门户:当前事件’、‘维基百科’中 “2019-01-01”和“2019-12-31”之间的日期时间 按月份分组,标题 按1分组 按Min Month_排序的订单 请注意,每次我们只处理440GB

如果您打算继续使用这样的查询,请将所有感兴趣的行(例如,过滤出<3的视图)提取到一个新表中,以便每次查询更少的GBs

例如:

创建表'fh-bigquery.wikipedia\u extracts.2019\u en\u m\u daily` 按日期划分 按标题分类 像 选择DATETIMESTAMP\u TRUNCdatehour、DAY日期、SumView视图、标题 来自'fh-bigquery.wikipedia\u v3.pageviews\u 2019` 我在哪里 标题不在“主页”、“门户:当前事件”、“维基百科”中 而不是像“特殊:%”这样的标题 按月份分组,标题 拥有超过100的视野 已过33.1秒,处理了420.7 GB 注意:对于移动结果,我将wiki=en切换为wiki=en.m。现在只查询进程2.5GB:

选择月份 ,数组_aggstructsubscriptle,0,21,视图顺序按视图描述限制5 从…起 选择日期、月份、标题、汇总视图作为视图 摘自'fh-bigquery.wikipedia\u extracts.2019\u en\u m\u daily` 其中标题与“文件%”不同 按月份分组,标题 按1分组 按月订购