BigQuery是谷歌提供的一种基于云的数据分析系统。它让你可以上传数据,然后使用SQL(结构化查询语言)作为查询界面,分析数据。BigQuery让你每个月可以免费查询多达100GB的数据。你只要为自己设立一个谷歌开发者(Google Developer)帐户,就可以创建新项目,并在新项目中启用BigQuery。
查询后就能收到数据
BigQuery提供了一种简单的、易于掌握的浏览器控制台,左边提供了数据集浏览,右边提供了SQL查询。查询结果返回后,就会出现一些选项,让你可以用本地CSV文件来保存结果,或者创建含有结果集内容的新表格。
这里显示的是针对示例github_timeline表格执行的简单查询。来自查询结果的头几行出现在屏幕右下方,另外还有让你可以按页翻阅数据的导航控件。请注意“Save as Table”(以表格格式保存)和“Download as CSV”(以CSV格式下载)这两个选项,它们在Chrome和火狐运行很顺畅。遗憾的是,Internet Explorer中没有“Save as Table”这个选项(我们马上会看到的文件上传选项也没有)。BigQuery中的一切在iPad上的Safari中也能顺畅运行,不过你无法保存或上传本地文件。
全是表格和列
BigQuery数据存储在表格中,就像存储在关系数据库中。反过来,表格存储在数据集中。数据集充当了安全部门,以便与特定用户或整个公众共享。谷歌提供了publicdata:samples数据集,该数据集添加到每一个BigQuery项目中。这让你可以马上检查和查询表格。
在屏幕左边,你可以深入分析数据集,查看数据集含有的表格。选择其中一个表格,表格模式就会出现在控制台的右边。该图显示了github_timeline表格的模式。请注意:屏幕左边的标签以粗体文本显示,旁边附有红条。“Click to preview table data”(点击即可预览表格数据)链接的用途正如其名,但是你也可以编写自己的SQL查询。
观看查询运行情况
想运行查询,输入查询,然后点击“RUN QUERY”(运行查询)按钮,或者就在键盘上按Ctrl-Enter组合键。查询运行时,查询文本区被禁用,查询计时器运行,就在“Query running”(查询运行)标签的旁边。
BigQuery不允许“SELECT *”式样的查询;你而是必须指定所有的列名。虽然你可能会查询庞大数据集,但是希望确保结果集很小。为此,就要充分利用聚合查询(使用聚合函数和GROUP BY)以及/或者查询末尾处的LIMIT n语句,如这里所示(即“LIMIT 200”出现在查询末尾)。
表格使用datasetname.tablename语法来加以确认。如果你引用来自示例数据集的任何表格,就需要在“samples”数据集名称前使用“publicdata:”这个前缀。
#p#
iPad上的BigQuery
BigQuery并非仅仅适用于大型台式机和笔记本电脑。比如说,它在iPad上也可以很顺畅地运行,如图所示。BigQuery对平板电脑的使用也很熟悉:将你的iPad从横向模式旋转成纵向模式,页面显示就会相应调整,为你多显示几行数据。
创建表格
当然,你还可以创建自己的表格。只要将鼠标移到数据集上方,点击出现在名称数据集右边的“+”符号,就可以调出“Create Table”(创建表格)表单,如上图所示。在表单中,你只需要提供表格的编号(名称)、模式(以一系列列名称和数据类型来表示),并指向含有数据的源文件。然后点击OK。
如果该文件的大小不超过10MB,你可以直接从自己电脑的硬盘中选择。如果文件超过了10MB,就要先把它上传到谷歌云存储(Google Cloud Storage),然后提供文件的链接,在URI(统一资源标识符)的开始部分使用“gs://”,如图所示。
BigQuery假设要从CSV(逗号分隔的值)文本文件导入,没有初始行含有列名称。要是你的文件使用非逗号分隔符,或者头一行含有列名称而不是数据,你可以告诉BigQuery你的文件使用什么分隔符以及略过头一行(或头几行)的内容。
这个特定的CSV文件含有美国六个州历史上的婴儿名称数据。该数据来自美国社会保障局的namesbystate.zip数据集合文件,该文件含有全部五十个州的数据,每个州都使用一个单独的文件。不过我用仅仅六个州的数据创建而成的一个文件就有100多万行。
监控任务
你在创建表格时,还可以监控数据装入任务的进度,只要点击屏幕左上方的“Job History”(任务历史)链接。这会调出“Recent Jobs”(近期任务)屏幕,如图所示。尽管链接中提到了“历史”,但是你也可以查看运行中任务。点击一个任务,你就能获得详细信息,如图所示。
本地打开数据
当然,如果你拥有采用CSV格式的数据,没有什么阻止得了你用Excel来打开数据。之后,你可以用Excel自己的文件格式来保存数据,然后开始处理数字。
PowerPivot也能进行“大”查询
谷歌描述BigQuery是一种列存储数据库(column store database),很适合处理OLAP(联机分析处理)查询。微软PowerPivot是Excel 2010的一款免费插件,它同样很符合这个描述,可以从CSV文件同样顺畅地导入。下面是一旦数据进入到PowerPivot后呈现出来的样子。把庞大数据集存储到PowerPivot可以为你带来远高于把同样数据直接存储到电子表格的性能。
PowerPivot一个功能非常强大的方面在于它使用了数据压缩技术。含有六个州婴儿名称的CSV文件其大小超过20MB,而含有PowerPiovt模型以及同样这些数据的Excel工作簿其大小却不到1MB。
不仅仅查询,还直观显示
一旦你的数据在PowerPivot中,就很容易使用PivotTable(数据透视表)、图表或者两者同时使用,在Excel中重新显示数据。我们在此看到的图表对应于PowerPivot模型及婴儿名称数据,它在图表的上面和左边有几个“切片器”(slicer)。
切片器让你可以对数据进行过滤,并自动查看图表更新。我们在此对查询进行了过滤,只显示1995年到2005年在亚利桑那州、加利福尼亚州、科罗拉多州和纽约州的Abigail和Allison这两个姓名的数据。顶部的切片器只含有女孩的姓名,因为我们在左上方的“Gender”(性别)切片器中选择了“F”(女性)。
回到云
这里是BigQuery中的同一结果。没有直观地显示数据;不是只需点击切片器,而是必须认真编写查询中的WHERE语句,才能获得同样的结果。查询次数与PowerPivot的相当。
走PowerPivot这条路带来了诸多优点,可能对许多用户来说更有意义。但是BigQuery基于云,可以从任何联网的计算机或设备来加以访问。
原文链接: