谷歌BigQuery:從iPad或臺式機實現自助式云數據分析
譯文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基于云,可以從任何聯網的計算機或設備來加以訪問。
原文鏈接:





























