谷歌BigQuery:從iPad或臺式機實現(xiàn)自助式云數(shù)據(jù)分析
譯文BigQuery是谷歌提供的一種基于云的數(shù)據(jù)分析系統(tǒng)。它讓你可以上傳數(shù)據(jù),然后使用SQL(結(jié)構(gòu)化查詢語言)作為查詢界面,分析數(shù)據(jù)。BigQuery讓你每個月可以免費查詢多達(dá)100GB的數(shù)據(jù)。你只要為自己設(shè)立一個谷歌開發(fā)者(Google Developer)帳戶,就可以創(chuàng)建新項目,并在新項目中啟用BigQuery。
查詢后就能收到數(shù)據(jù)
BigQuery提供了一種簡單的、易于掌握的瀏覽器控制臺,左邊提供了數(shù)據(jù)集瀏覽,右邊提供了SQL查詢。查詢結(jié)果返回后,就會出現(xiàn)一些選項,讓你可以用本地CSV文件來保存結(jié)果,或者創(chuàng)建含有結(jié)果集內(nèi)容的新表格。
這里顯示的是針對示例github_timeline表格執(zhí)行的簡單查詢。來自查詢結(jié)果的頭幾行出現(xiàn)在屏幕右下方,另外還有讓你可以按頁翻閱數(shù)據(jù)的導(dǎo)航控件。請注意“Save as Table”(以表格格式保存)和“Download as CSV”(以CSV格式下載)這兩個選項,它們在Chrome和火狐運行很順暢。遺憾的是,Internet Explorer中沒有“Save as Table”這個選項(我們馬上會看到的文件上傳選項也沒有)。BigQuery中的一切在iPad上的Safari中也能順暢運行,不過你無法保存或上傳本地文件。
全是表格和列
BigQuery數(shù)據(jù)存儲在表格中,就像存儲在關(guān)系數(shù)據(jù)庫中。反過來,表格存儲在數(shù)據(jù)集中。數(shù)據(jù)集充當(dāng)了安全部門,以便與特定用戶或整個公眾共享。谷歌提供了publicdata:samples數(shù)據(jù)集,該數(shù)據(jù)集添加到每一個BigQuery項目中。這讓你可以馬上檢查和查詢表格。
在屏幕左邊,你可以深入分析數(shù)據(jù)集,查看數(shù)據(jù)集含有的表格。選擇其中一個表格,表格模式就會出現(xiàn)在控制臺的右邊。該圖顯示了github_timeline表格的模式。請注意:屏幕左邊的標(biāo)簽以粗體文本顯示,旁邊附有紅條。“Click to preview table data”(點擊即可預(yù)覽表格數(shù)據(jù))鏈接的用途正如其名,但是你也可以編寫自己的SQL查詢。
觀看查詢運行情況
想運行查詢,輸入查詢,然后點擊“RUN QUERY”(運行查詢)按鈕,或者就在鍵盤上按Ctrl-Enter組合鍵。查詢運行時,查詢文本區(qū)被禁用,查詢計時器運行,就在“Query running”(查詢運行)標(biāo)簽的旁邊。
BigQuery不允許“SELECT *”式樣的查詢;你而是必須指定所有的列名。雖然你可能會查詢龐大數(shù)據(jù)集,但是希望確保結(jié)果集很小。為此,就要充分利用聚合查詢(使用聚合函數(shù)和GROUP BY)以及/或者查詢末尾處的LIMIT n語句,如這里所示(即“LIMIT 200”出現(xiàn)在查詢末尾)。
表格使用datasetname.tablename語法來加以確認(rèn)。如果你引用來自示例數(shù)據(jù)集的任何表格,就需要在“samples”數(shù)據(jù)集名稱前使用“publicdata:”這個前綴。
#p#
iPad上的BigQuery
BigQuery并非僅僅適用于大型臺式機和筆記本電腦。比如說,它在iPad上也可以很順暢地運行,如圖所示。BigQuery對平板電腦的使用也很熟悉:將你的iPad從橫向模式旋轉(zhuǎn)成縱向模式,頁面顯示就會相應(yīng)調(diào)整,為你多顯示幾行數(shù)據(jù)。
創(chuàng)建表格
當(dāng)然,你還可以創(chuàng)建自己的表格。只要將鼠標(biāo)移到數(shù)據(jù)集上方,點擊出現(xiàn)在名稱數(shù)據(jù)集右邊的“+”符號,就可以調(diào)出“Create Table”(創(chuàng)建表格)表單,如上圖所示。在表單中,你只需要提供表格的編號(名稱)、模式(以一系列列名稱和數(shù)據(jù)類型來表示),并指向含有數(shù)據(jù)的源文件。然后點擊OK。
如果該文件的大小不超過10MB,你可以直接從自己電腦的硬盤中選擇。如果文件超過了10MB,就要先把它上傳到谷歌云存儲(Google Cloud Storage),然后提供文件的鏈接,在URI(統(tǒng)一資源標(biāo)識符)的開始部分使用“gs://”,如圖所示。
BigQuery假設(shè)要從CSV(逗號分隔的值)文本文件導(dǎo)入,沒有初始行含有列名稱。要是你的文件使用非逗號分隔符,或者頭一行含有列名稱而不是數(shù)據(jù),你可以告訴BigQuery你的文件使用什么分隔符以及略過頭一行(或頭幾行)的內(nèi)容。
這個特定的CSV文件含有美國六個州歷史上的嬰兒名稱數(shù)據(jù)。該數(shù)據(jù)來自美國社會保障局的namesbystate.zip數(shù)據(jù)集合文件,該文件含有全部五十個州的數(shù)據(jù),每個州都使用一個單獨的文件。不過我用僅僅六個州的數(shù)據(jù)創(chuàng)建而成的一個文件就有100多萬行。
監(jiān)控任務(wù)
你在創(chuàng)建表格時,還可以監(jiān)控數(shù)據(jù)裝入任務(wù)的進(jìn)度,只要點擊屏幕左上方的“Job History”(任務(wù)歷史)鏈接。這會調(diào)出“Recent Jobs”(近期任務(wù))屏幕,如圖所示。盡管鏈接中提到了“歷史”,但是你也可以查看運行中任務(wù)。點擊一個任務(wù),你就能獲得詳細(xì)信息,如圖所示。
本地打開數(shù)據(jù)
當(dāng)然,如果你擁有采用CSV格式的數(shù)據(jù),沒有什么阻止得了你用Excel來打開數(shù)據(jù)。之后,你可以用Excel自己的文件格式來保存數(shù)據(jù),然后開始處理數(shù)字。
PowerPivot也能進(jìn)行“大”查詢
谷歌描述BigQuery是一種列存儲數(shù)據(jù)庫(column store database),很適合處理OLAP(聯(lián)機分析處理)查詢。微軟PowerPivot是Excel 2010的一款免費插件,它同樣很符合這個描述,可以從CSV文件同樣順暢地導(dǎo)入。下面是一旦數(shù)據(jù)進(jìn)入到PowerPivot后呈現(xiàn)出來的樣子。把龐大數(shù)據(jù)集存儲到PowerPivot可以為你帶來遠(yuǎn)高于把同樣數(shù)據(jù)直接存儲到電子表格的性能。
PowerPivot一個功能非常強大的方面在于它使用了數(shù)據(jù)壓縮技術(shù)。含有六個州嬰兒名稱的CSV文件其大小超過20MB,而含有PowerPiovt模型以及同樣這些數(shù)據(jù)的Excel工作簿其大小卻不到1MB。
不僅僅查詢,還直觀顯示
一旦你的數(shù)據(jù)在PowerPivot中,就很容易使用PivotTable(數(shù)據(jù)透視表)、圖表或者兩者同時使用,在Excel中重新顯示數(shù)據(jù)。我們在此看到的圖表對應(yīng)于PowerPivot模型及嬰兒名稱數(shù)據(jù),它在圖表的上面和左邊有幾個“切片器”(slicer)。
切片器讓你可以對數(shù)據(jù)進(jìn)行過濾,并自動查看圖表更新。我們在此對查詢進(jìn)行了過濾,只顯示1995年到2005年在亞利桑那州、加利福尼亞州、科羅拉多州和紐約州的Abigail和Allison這兩個姓名的數(shù)據(jù)。頂部的切片器只含有女孩的姓名,因為我們在左上方的“Gender”(性別)切片器中選擇了“F”(女性)。
回到云
這里是BigQuery中的同一結(jié)果。沒有直觀地顯示數(shù)據(jù);不是只需點擊切片器,而是必須認(rèn)真編寫查詢中的WHERE語句,才能獲得同樣的結(jié)果。查詢次數(shù)與PowerPivot的相當(dāng)。
走PowerPivot這條路帶來了諸多優(yōu)點,可能對許多用戶來說更有意義。但是BigQuery基于云,可以從任何聯(lián)網(wǎng)的計算機或設(shè)備來加以訪問。
原文鏈接: