google-bigquery开始使用google-bigquery


备注

本节概述了google-bigquery是什么,以及开发人员为什么要使用它。

它还应该提到google-bigquery中的任何大型主题,并链接到相关主题。由于google-bigquery的文档是新的,您可能需要创建这些相关主题的初始版本。

在5秒内分析500亿维基百科的综合浏览量(BigQuery初学者教程)

嗨,大家好!这是一个我喜欢为BigQuery开始的人们运行的演示。所以让我们运行一些简单的查询来帮助入门。

建立

您需要一个Google Cloud项目:

  1. 转到http://bigquery.cloud.google.com/
  2. 如果它告诉您创建项目,请按照链接创建项目,然后创建项目。
  3. 回到http://bigquery.cloud.google.com/

笔记:

  • 您不需要信用卡。每个人每个月都可获得1TB的免费分析。
  • BigQuery每个查询收费。在运行查询之前,您将能够看到每个查询的成本。

我们来查询一下

  1. https://bigquery.cloud.google.com/table/fh-bigquery:wikipedia.pagecounts_201505上查找2015年5月的综合浏览量

注意 :Google使用最高安全标准(PCI,ISO,HIPAA,SOC等)保护您的数据,但如果您愿意,也可以轻松共享数据 - 就像我在这里所做的那样。 https://cloud.google.com/security/

  1. 该表有5列: datehour语言标题请求content_size 。他们基本上说“这个语言的维基百科页面在这个时刻有这么多请求”。

  2. 该表有近60亿行(379 GB的数据)。

  3. 要了解维基百科在5月期间有多少次综合浏览量,您可以累计所有60亿行请求:

     SELECT SUM(requests) 
     FROM [fh-bigquery:wikipedia.pagecounts_201505]
     
  4. 你注意到它有多快吗? (1.8秒过去了,为我处理了43.1 GB)

  5. 让我们做一些更复杂的事情。让我们在这60亿行上运行正则表达式。这有多快?

     SELECT SUM(requests) req, title
     FROM [fh-bigquery:wikipedia.pagecounts_201505] 
     WHERE REGEXP_MATCH(title, 'Red.*t')
     GROUP BY title
     ORDER BY req DESC
     LIMIT 100     
     
  6. 你有多快?你在结果中找到了Reddit吗?

成本分析

  1. 最后一个查询处理了269 GB:超过每月免费TB的四分之一。为什么?

  2. BigQuery查看您在查询中处理的列。 'title'是一个很大的专栏 - 它包含文字。 'requests'列只有43.1 GB。

  3. 要使您的免费太字节最后,请将数据提取到较小的表。例如,我有一张只有65,000英文维基百科页面浏览量的表格。相同的查询仅处理1.18 GB - 您可以每月免费运行几乎1000个。

     SELECT SUM(requests) req, title
     FROM [fh-bigquery:wikipedia.pagecounts_201408_en_top65k] 
     WHERE REGEXP_MATCH(title, 'Red.*t')
     GROUP BY title
     ORDER BY req DESC
     LIMIT 100 
     
  4. 您不能使用每月免费太字节创建表 - 它仅用于分析。为新的Google Cloud Platform帐户激活300美元免费,或者请我在这里为您提取摘录。我很乐意这样做。

将数据加载到BigQuery中

要将数据加载到BigQuery中,您需要激活项目的计费 - 尝试使用免费的300美元新帐户。

  1. 在项目中创建数据集以将数据加载到: https//i.imgur.com/FRClJ3K.jpg

  2. 查找维基百科共享的原始日志, 网址https://dumps.wikimedia.org/other/pagecounts-raw/

  3. 将其中一个文件输入您的计算机,例如https://dumps.wikimedia.org/other/pagecounts-raw/2015/2015-06/pagecounts-20150616-160000.gz

  4. 安装'bq'工具。 https://cloud.google.com/bigquery/bq-command-line-tool

  5. 将其加载到BigQuery中:

     bq load -F" " --quote "" YourProjectName:DatasetName.pagecounts_20150616_16 pagecounts-20150616-160000.gz language,title,requests:integer,content_size:integer
     
  6. 等几分钟。在您等待的时候,让我解释一下:这不是CSV文件,它是一个空格分隔文件(-F“”),它不使用引号(--quote“”),我们在数据集中选择一个目标表在您的项目中(记得首先创建数据集),我们选择要加载的文件,并定义此文件具有的4列。

  7. 请注意,BigQuery将很乐意提取.gz文件,最大可达一定大小。对于非常大的文件,最好先解压缩它们并将它们放入Google云端存储中。这就是我用/ u / Stuck_In_The_Matrix编译的reddit评论所做的。这些文件很大,但BigQuery在2分钟左右就收到了它们。

学到更多

准备好更高级的例子吗?了解如何查询Reddit以及如何查询所有纽约市的出租车行程

追随更多!

安装或设置

有关设置或安装google-bigquery的详细说明。