谷歌工程師Venky Ganti分享:大數據的挑戰超越3V
在大數據的工作中,有很多的挑戰。3V(Volume(體積大)、Velocity(增速快)、Variety(多樣化))是最受人關注的。谷歌搜索的許多結果都值得一讀,幾乎都集中在大數據的管理和處理的技術挑戰方面。在這篇文章中,我想強調的是,即使是底層的3V基礎設施處理的相當完美的情況下,大數據的挑戰性仍然存在。
在谷歌,我有機會在一個令人羨慕的工程團隊工作。我學會了大規模運行各種服務的多個方面的能力,以及開發和推出令人信服的數據產品。我工作的產品是動態搜索廣告,可以自動的進行廣告語的搜集設置和優化。給定一個廣告主的網站,我們的目標是挖掘相關的關鍵詞,并為每一個關鍵字自動創建一個廣告(廣告文本以及廣告頁面)。我的數據來自各種數據源,經常用于改進我們的產品,有時用于調試。
我們都知道,谷歌處理著網絡上大量信息,并使用戶能夠快速找到相關信息。但是,有多少工程師覺得在谷歌是和數據工作?
在一方面,他們感到有能力處理谷歌收集的大量個人特征行為數據。谷歌的數據基礎設施建設是最好的。這是一個存儲和處理“大數據”的現代思維的開創地。聚集了高水平的工程師,一個自然的結果就是創建大量的信息豐富的衍生數據集。
在另一方面,我想我們能夠更有效和更專注于找尋和理解數據。讓我描述一些促成這些低效率的問題。
- 我何如找到我能夠使用的數據?在我找到了一些數據之后,我如何掌握這個數據集的內容?
- 關于這些數據,我能找到誰來咨詢一些信息?是不是有其他人做著與我一樣的內容?
- 我如何排除不期望的數據問題?上游數據的變化能夠解釋這個問題嗎?
- 我如何設置定期生成的垃圾數據收集策略?
現在,我將根據我過去的經驗來深入討論這些問題。
我如何找到和掌握數據?
讓我們考慮一個場景:當谷歌內的一個工程師或數據分析要找到相關的數據,可以說,在GFS(google file system)中的Dremel表或SSTable。她需要記住表的名稱,并且在谷歌的無數的數據存儲中包含它。此外,不同于這些自描述的文件,它是不容易“理解”什么是一個數據集中,以及如何使用它。用戶需要通過與指導這個數據的人交談,或者通過一些其他的替代方式。對比谷歌內的工程師在用于發現和理解數據所花的精力,相對于外部用戶在使用谷歌來查找和了解信息的花費。
讓我想起了身邊類似的情況我自己的失望經歷之一。我在谷歌的AdWords小組工作。我需要找到在谷歌的產品中導致相似用戶行為的搜索查詢信息,特別是搜索和廣告。我覺得在搜索和廣告團隊一定有幾個數據集存在。我找了兩個廣告團隊,因為我知道在這個項目中的幾個人。但是,事實證明,經過進一步的調查,我因為目標應用的差異而不能使用。不過,我運氣不錯的從搜索團隊找到了類似的信息。我試著重建自己的工作,花了幾個月但并沒有成功。最近,在我離開谷歌,一個前同事告訴我,他偶然發現一個指向正確的數據,并成功地用它!
當然,圍繞著找數據和掌握數據的問題并不是谷歌特有的問題,而是任何一個使用數據去加強市場決策或者產品改進的組織。當然,在谷歌中的工程師有一個比較好的機會通過令人羨慕的內部工具去克服這些問題。(例如代碼搜索)
很多相關的數據技術的重點是處理大量的數據和可視化效果變的更好。但是,有沒有把重點放在授權用戶發現和理解這些數據庫中的數據,以準備更可靠和高效的查詢和計算。
我認為對這些問題缺乏關注的主要原因是,在查詢處理效率和可視化能力方面,這是一種更為具體的措施和表現。另一方面,現在很難清楚地闡明幫助數據用戶發現和理解數據的好處。通過這種方式,這不是真正的搜索在網絡上,直到谷歌來了,并說明了經濟和生產力的收益,在廣泛的用戶?我相信我們正處于一場類似的數據消費革命的時期。
我該請教誰?
當一個分析師找到一個數據集之后,她需要通過其他分析師和應用程序理解它的用法。經常,要找到如此知識淵博的人員是非常困難的。有很多次我覺得很難,即使在谷歌,以確定我找到能談這個問題的人。當我找到他們,我感到了那些工程師們的痛苦,他們被打斷很多次,只為回答最簡單的問題。
舉個例子,我被分派到一個任務,遷移一個應用的讀取數據,從一個引擎到一個新的高效率的引擎。遷移中最大的部分就是重寫查詢結構,從新的圖表中讀取數據。我是少數幾個在過去做過這個遷移的人,因此類似的問題必須解決。但是,在維基百科中沒有我需要的信息。所以,我不得不很勉強地把自己變成一個非常忙碌的首席工程師,我唯一知道的一個就是得到幫助。我會很感激,如果我能很快找到一個做過類似的遷移工作的人。
在另一方面,我要反復地回答相同的對我處理和維護的數據問題,我試圖建立一個維基頁面,但還是被問了很多問題。我們都知道,保持維基更新和可用在時間上也是非常具有挑戰性的。回想起來,如果我和同事可能錯過了幾次更新,我不會感到驚訝。
花費多少時間?
然而,分析師有多少時間是花在找數據和理解數據的活動中的?我還沒試過測算,我們只是沒有方法和工具來測算。但是,這取決于你問的是誰,他們需要使用哪些數據,答案會有很大的不同。一個新人處理一個特定的數據集將花費超過80%的時間在這些任務上。而專家則少得多。然而,專家們卻花時間在一遍又一遍的回答其他人的問題。