騰訊高級工程師趙偉2009年畢業(yè)于哈爾濱工業(yè)大學,從學生時代起,他就對技術比較感興趣,鉆研過很多技術,包括反向工程/病毒分析 、linux/FreeBSD、C++等,偶爾還能通過學校的平臺用這些技術賺點零花錢。這些經(jīng)歷都促進了趙偉對計算機技術的理解,也鍛煉了他的動手能力。
趙偉在畢業(yè)后就加入了騰訊數(shù)據(jù)平臺部,進入騰訊后,他參與進了當時正在規(guī)劃中的騰訊分布式數(shù)據(jù)倉庫(TDW)項目,通過與TDW的一起成長,他越發(fā)深刻的感覺到通過前沿的計算機技術可以使人們的生活更加便利,可以使企業(yè)的運營成本不斷降低,可以使用戶的資源更加優(yōu)化。
在即將召開的HBTC大會中,我們有幸邀請到趙偉作為我們的演講嘉賓,請他分享下Hive在騰訊分布式數(shù)據(jù)倉庫實踐方面的內(nèi)容。我們也對他提前做了郵件采訪,詢問了他的一些學習工作經(jīng)歷,讓用戶可以更快地了解騰訊數(shù)據(jù)平臺及騰訊在Hadoop方面的應用等知識。
CSDN:請您簡單做一下自我介紹。
趙偉:我2009年自哈爾濱工業(yè)大學畢業(yè),加入騰訊數(shù)據(jù)平臺部,目前是騰訊的高級工程師,主要從事騰訊分布式數(shù)據(jù)倉庫TDW研發(fā)工作,先后主導了TDW SQL查詢引擎、TDW集成開發(fā)環(huán)境、TDW BI分析庫等的研發(fā)等項目。專注于數(shù)據(jù)倉庫的構建,精通Hive和Hadoop等的原理及其在數(shù)據(jù)倉庫中的應用。目前負責TDW平臺的SQL功能、性能、易用性的規(guī)劃及研發(fā)。
CSDN:騰訊的數(shù)據(jù)平臺團隊目前的規(guī)模如何,團隊平時都有一些什么活動來促進員工的工作積極性以及提高員工的工作態(tài)度?
趙偉:我們TDW團隊是一個有激情、有活力的團隊,現(xiàn)在團隊里有六十個人左右。團隊經(jīng)常有爬山、徒步這樣鍛煉意志的活動,也有唱歌,泡溫泉、聚餐這樣舒緩壓力的活動。隨著大數(shù)據(jù)價值的逐步體現(xiàn),公司對數(shù)據(jù)平臺更加重視,使TDW團隊成員在技術積累、發(fā)展空間、個人激勵上都有很好的收獲和前景,大家的積極性和工作熱情都很高,整個團隊的凝聚力也很強。
CSDN:是什么原因致使您從事目前的行業(yè)呢,或者說是什么引起您在大數(shù)據(jù)方面的興趣?在工作中您遇到過的困難有哪些,都是如何進行解決的?
趙偉:從事大數(shù)據(jù)方面的工作,最開始可以說是機緣巧合。我入職騰訊時,恰好公司準備研發(fā)一套數(shù)據(jù)倉庫系統(tǒng),我有幸從騰訊TDW的預研、立項等初始階段便參與其中,直至之后的開發(fā)、應用推廣等階段。點滴的工作中,除了經(jīng)驗的積累,更讓我認識到大數(shù)據(jù)處理對公司的重要意義,以及大數(shù)據(jù)處理存在的眾多技術挑戰(zhàn)。或許,每一個軟件開發(fā)人員對富有挑戰(zhàn)性的工作都有著極大的興趣—這項重要而又富含挑戰(zhàn)的研發(fā)工作,其本身就是非常吸引我的。
在TDW的研發(fā)過程中,遇到很多困難,但是最終都通過團隊的力量解決了。記得在TDW開始承接業(yè)務時,相對來說壓力是比較大的。當時面臨著系統(tǒng)規(guī)劃、bug修復、新需求開發(fā)、客戶咨詢等大量工作,幾乎每天神經(jīng)都是緊繃的。而且,當時團隊人力不足,運維和測試剛加入進來,對我們系統(tǒng)也不夠了解,我們整個團隊似乎都忙的團團轉。為了解決這些問題,我們加強WiKi建設,引導用戶自助解決問題;不斷培訓團隊新人使其盡快熟悉業(yè)務;幫助測試、培訓運維人員了解系統(tǒng)等。越是艱難的境況越是要靠團隊的力量,大家一起堅持下來,守得云開見月明。
CSDN:Hive是一個基于Hadoop的數(shù)據(jù)倉庫平臺,通過Hive可以方便地進行數(shù)據(jù)提取轉化加載(ETL)的工作?;贛apReduce的Hive具有良好的擴展性和容錯性。不過由于MapReduce缺乏結構化數(shù)據(jù)分析中有價值的特性,以及Hive缺乏對執(zhí)行計劃的充分優(yōu)化,導致Hive在很多場景下比并行數(shù)據(jù)倉庫慢,騰訊是如何解決這一問題的?
趙偉:并行數(shù)據(jù)倉庫在很多方面是有其自身優(yōu)勢的,但對于互聯(lián)網(wǎng)企業(yè)來講,選擇數(shù)據(jù)倉庫解決方案是要綜合考慮很多因素的,包括它的擴展性、容錯性、穩(wěn)定性、可控性、成本等,而且更要考慮到企業(yè)本身承載數(shù)據(jù)的量和價值,單純從性能角度去比較,意義不大。Hive+Hadoop方案之所以被國內(nèi)外互聯(lián)網(wǎng)公司廣泛使用,正是因為它使互聯(lián)網(wǎng)公司可以用較低成本解決大數(shù)據(jù)問題,同時性能又可以接受。
當然,我們也不會滿足于當前Hive的性能,我們通過下面三個方面,提升性能:
持續(xù)優(yōu)化Hive的查詢優(yōu)化器,使SQL更加高效的運行;
不斷引入一些database特性、包括hash join、列存儲、多存儲引擎、SQL/MED等,將成熟的數(shù)據(jù)庫/并行數(shù)據(jù)庫理論應用于Hive之上,使它的性能不斷與并行數(shù)據(jù)倉庫接近;
加強MapReduce層的優(yōu)化,使MR執(zhí)行框架更合理高效的執(zhí)行Hive翻譯的MR代碼。
我們也在關注業(yè)界的一些新技術對性能的提升,如果可以,我們會嘗試將其引入。
CSDN:TDW是騰訊在Hadoop和Hive的基礎上根據(jù)自身業(yè)務特點深度定制的,它在穩(wěn)定性、性能和易用性等方面都有不俗的表現(xiàn)。那么TDW是如何幫助騰訊處理日常的海量數(shù)據(jù)?
趙偉:目前TDW作為騰訊內(nèi)部規(guī)模最大的數(shù)據(jù)處理平臺,它集中了騰訊各個業(yè)務中的數(shù)據(jù),并對有價值的數(shù)據(jù)提供離線的海量數(shù)據(jù)分析。在處理數(shù)據(jù)的過程中,會根據(jù)不同部門的需求對數(shù)據(jù)進行構建級數(shù)據(jù)集市、數(shù)據(jù)挖掘,產(chǎn)品報表,經(jīng)營分析、戰(zhàn)略報表、數(shù)據(jù)提取等處理。
使用TDW處理日常的海量數(shù)據(jù),流程相對簡便。用戶通過TDW IDE開發(fā)調試他們的分析腳本,在TDW調度系統(tǒng)上配置分析腳本的調度實踐和調度任務間的依賴關系,通過TDW BI分析庫進行分析結果展示,或者進一步進行所需的精細分析。
CSDN:Hadoop是一個超級大規(guī)模的開源項目,目前很多公司都在大量使用,但它的部分功能已經(jīng)不滿足有些企業(yè)的需求,騰訊有沒有遇到這種情況,如果有,是否對其進行了改造?如何改造?
TDW對Hive和Hadoop都進行了改造,來滿足我們對于海量數(shù)據(jù)處理的需求。
對于Hive的改造主要有兼容Oracle的分區(qū)功能,基于角色的權限管理、窗口函數(shù)、多維分析、CTE等的支持,使Hive功能更全,使用門檻更低、效率更高。
對Hadoop的改造,主要是調度器、Hadoop單點問題的解決,使TDW在資源共享和任務隔離上更可控,增強了Hadoop的可靠性和性能。
CSDN:騰訊目前在數(shù)據(jù)處理和采集方面所面臨的挑戰(zhàn),如何進行解決?
目前一個挑戰(zhàn)是TDW在易用性上的,目前TDW的SQL優(yōu)化器仍然不夠智能,需要用戶設置一些參數(shù)或必須寫成特定的格式的SQL,使用門檻有些高。目前我們一方面加強對新用戶的教育和培訓,另一方面,我們也在不斷改善我們的SQL優(yōu)化器,讓它更加智能,解放用戶的大腦。
在采訪結束后,趙偉表示TDW首先服務好騰訊的內(nèi)部的業(yè)務,做到真正的海量、穩(wěn)定、高效,幫助公司發(fā)掘更多的數(shù)據(jù)價值。這點已經(jīng)基本做到,但是還沒有做到極致。在易用性、性能、穩(wěn)定性、成本優(yōu)化等方面,還有提高空間,這是騰訊未來一段時間要重點改善的。
其次,在服務好內(nèi)部之后,如果可能的話,趙偉希望TDW能走出公司,為外部用戶提供海量數(shù)據(jù)處理服務、或者為企業(yè)提供BI/數(shù)據(jù)倉庫解決方案。大數(shù)據(jù)時代已經(jīng)來臨,越來越多的企業(yè)意識到大數(shù)據(jù)的價值,但是他們?nèi)狈Υ髷?shù)據(jù)處理的技術積累和實踐,他希望用騰訊成熟的技術幫助這些企業(yè)。(文/王旭東 審校/仲浩)