|
由最初的純設(shè)備生產(chǎn)廠商漸漸發(fā)展為今天的智能設(shè)備設(shè)計(jì)商和互聯(lián)網(wǎng)服務(wù)提供商,“魅族”轉(zhuǎn)眼間已經(jīng)歷了十年的成長,其Flyme系統(tǒng)也在逐漸走向成熟。而依托于Flyme的魅族互聯(lián)網(wǎng)服務(wù)也逐漸發(fā)展起來,隨之而來的大數(shù)據(jù)需求也日漸增多。 為將海量數(shù)據(jù)得以更高效的應(yīng)用,沉淀大批高質(zhì)用戶標(biāo)簽,并用數(shù)據(jù)輔以應(yīng)用商和廣告主的經(jīng)營決策,魅族數(shù)據(jù)平臺建設(shè)工作隨之而起,迄今為止已兩年有余。 魅族數(shù)據(jù)平臺采用了業(yè)界主流的計(jì)算平臺和開源技術(shù),涵蓋了Hadoop生態(tài)、流計(jì)算、機(jī)器學(xué)習(xí)等領(lǐng)域。截止現(xiàn)階段,魅族數(shù)據(jù)平臺已完成對魅族關(guān)聯(lián)業(yè)務(wù)的各項(xiàng)數(shù)據(jù)支撐,長期計(jì)劃中,它也將全面投入魅族AI計(jì)算平臺和機(jī)器學(xué)習(xí)/AI業(yè)務(wù)的支撐能力研發(fā)中。 為了進(jìn)一步探究魅族數(shù)據(jù)平臺的技術(shù)迭代演進(jìn)之路,了解其背后的選型思路、技術(shù)創(chuàng)新和在不斷邁進(jìn)過程中所踩過的坑、所規(guī)劃的解決方案,InfoQ對魅族數(shù)據(jù)平臺經(jīng)理莫涵宇進(jìn)行了深度專訪,和他一起聊聊魅族數(shù)據(jù)平臺的設(shè)計(jì)哲學(xué)和核心架構(gòu)。 莫涵宇:早期魅族互聯(lián)網(wǎng)業(yè)務(wù)的各種數(shù)據(jù)需求無法得到滿足,使用第三方數(shù)據(jù)服務(wù)存在種種限制,更談不上數(shù)據(jù)資產(chǎn)價(jià)值最大化的訴求,解決這些問題是魅族大數(shù)據(jù)團(tuán)隊(duì)成立的初衷。而一個穩(wěn)定強(qiáng)大的大數(shù)據(jù)平臺也成為我們開展服務(wù)的基礎(chǔ),基于此我們研發(fā)了魅族大數(shù)據(jù)平臺。 目前魅族大數(shù)據(jù)平臺的用戶主要是基于 Flyme 生態(tài)的魅族互聯(lián)網(wǎng)業(yè)務(wù),此外還包括魅族科技其他非互聯(lián)網(wǎng)業(yè)務(wù),如財(cái)務(wù)、營銷、手機(jī)研發(fā)、供應(yīng)鏈、客服等。 莫涵宇:在魅族平臺發(fā)展及架構(gòu)演進(jìn)過程中一直強(qiáng)調(diào)數(shù)據(jù)是根本,是最重要的資產(chǎn),同時強(qiáng)調(diào)保護(hù)用戶隱私,所以從一開始就堅(jiān)持?jǐn)?shù)據(jù)獲取走自研之路,而技術(shù)上更多堅(jiān)持 Hadoop 開源組件為基礎(chǔ),并通過交流學(xué)習(xí)緊跟社區(qū)步伐,快速迭代實(shí)施。 總的來說,魅族大數(shù)據(jù)平臺架構(gòu)演進(jìn)大致經(jīng)歷了如下幾個階段:
莫涵宇:魅族數(shù)據(jù)平臺的基礎(chǔ)計(jì)算平臺都使用了業(yè)界主流的開源框架和技術(shù),如 Hadoop、Spark、Hive、HBase、Kafka、Storm 等幾乎大部分主流的數(shù)據(jù)開源技術(shù),采用這些開源技術(shù)的好處顯而易見。 首先相對商用產(chǎn)品,使用開源技術(shù)使得開發(fā)成本大幅度降低;其次,功能的訂制可以更靈活和快速;此外,這些主流開源技術(shù)均有來自全世界的頂尖專家在參與研發(fā)和維護(hù),使用它們能讓我們更快的跟上行業(yè)技術(shù)的發(fā)展。 當(dāng)然每家企業(yè)的應(yīng)用場景都有自身特點(diǎn)和特殊性,開源框架和技術(shù)并不能完全解決我們所有的需求,所以我們針對性的研發(fā)了一些組件。例如:
莫涵宇:如圖所示,魅族數(shù)據(jù)平臺邏輯上分為數(shù)據(jù)源層,接入層,數(shù)據(jù)倉庫和計(jì)算層,數(shù)據(jù)接口和應(yīng)用層這些大的層次,數(shù)據(jù)的流動基本上會是從左至右的模式,數(shù)據(jù)的價(jià)值最終體現(xiàn)在接口和數(shù)據(jù)應(yīng)用層,對于這些層面使用的組件,我們也經(jīng)過較為謹(jǐn)慎的選型和多次迭代。 首先,早期基于業(yè)務(wù)規(guī)模較小的狀況,我們的數(shù)據(jù)接入層并沒有做特別的選型測試,而是完全自研開發(fā)了一個分揀程序進(jìn)行數(shù)據(jù)的接入,隨著數(shù)據(jù)量和業(yè)務(wù)規(guī)模的不斷增長,我們發(fā)現(xiàn)原有的程序在擴(kuò)展性和性能上都出現(xiàn)了瓶頸。最終我們結(jié)合同行的一些經(jīng)驗(yàn)和自己的測試,重新規(guī)劃了接入層的架構(gòu)和實(shí)現(xiàn),設(shè)計(jì)了新的接入組件:其中采集 SDK 一直是自研,主要考量是公司安卓領(lǐng)域的經(jīng)驗(yàn)豐富,相關(guān)人才儲備充足;批量數(shù)據(jù)加載組件 Cetus-Loader 考慮到行業(yè)內(nèi)基礎(chǔ)調(diào)用的相關(guān)技術(shù)非常成熟,我們?nèi)匀徊扇∽匝械捏w系,通過各種產(chǎn)品的標(biāo)準(zhǔn) API 調(diào)用結(jié)合適當(dāng)?shù)念A(yù)處理和配置去實(shí)現(xiàn),配合管理平臺也實(shí)現(xiàn)了數(shù)據(jù)接入流程的跟蹤;我們的流平臺 mz-Stream 除了業(yè)務(wù)管理部分,基礎(chǔ)計(jì)算組件采用了 MetaQ 和 SparkStreaming,選用 metaq 有一些歷史原因,從性能評估來看沒有太大的問題,同時該組件已經(jīng)是公司使用得較為成熟的組件,有專人維護(hù),而 SparkStreaming 在 MiniBatch 處理上已經(jīng)被證明了其靈活性和高效性。當(dāng)然,從業(yè)界最流行的組件看,未來針對這兩個部分我們還會再評估 Kafka 和 Strom 的引入。 當(dāng)數(shù)據(jù)接入數(shù)據(jù)倉庫后,我們會進(jìn)行數(shù)據(jù)清洗(大部分清洗工作會在入庫后進(jìn)行)、存儲和各種計(jì)算,這些過程我們選用了 Hadoop 生態(tài)的組件。這里的原因也很簡單,Hadoop 有經(jīng)過各大商業(yè)環(huán)境驗(yàn)證的比較成熟的解決方案,有足夠強(qiáng)大的社區(qū)更新和支撐,HDFS、Hive、HBase、Spark 等都在各種領(lǐng)域證明自身的能力,從成本和效率的角度考慮,這些組件是不二的選擇,至于 Kerberos、Ambari 等附加組件的使用也同樣是圍繞 Hadoop 而取舍。 經(jīng)過基本處理形成領(lǐng)域和主題模型數(shù)據(jù)集,為我們的數(shù)據(jù)應(yīng)用提供了豐富的數(shù)據(jù)來源。在數(shù)據(jù)接口和數(shù)據(jù)應(yīng)用這一層,考慮到易于訂制和擴(kuò)展的需求,我們主要使用 Java 自研了各種數(shù)據(jù)產(chǎn)品,這些數(shù)據(jù)產(chǎn)品也同時使用了例如 Kylin、ES、Vertica 等查詢引擎組件,為我們交互式應(yīng)用提供支撐。 最后,貫穿這些環(huán)節(jié)需要一套任務(wù)調(diào)度系統(tǒng)和任務(wù) / 指標(biāo)監(jiān)控系統(tǒng)。通過對一些開源產(chǎn)品,例如 Kettle 的分析,也包括專業(yè)人員過往的經(jīng)驗(yàn)支撐,我們還是采取自研策略,相關(guān)產(chǎn)品對于每個過程的處理進(jìn)行合理的任務(wù)調(diào)度,最大化計(jì)算資源的利用率,監(jiān)控任務(wù)的執(zhí)行情況和指標(biāo)的合理性,對流平臺的輸入和輸出對賬,幫助整個數(shù)據(jù)應(yīng)用的流程更為順暢和高效。 這里順便也提一個任務(wù)調(diào)度的坑。早期由于任務(wù)數(shù)較少,我們研發(fā)的第一版任務(wù)調(diào)度系統(tǒng)依賴了 Orale 存儲過程和觸發(fā)器進(jìn)行邏輯計(jì)算,隨著任務(wù)數(shù)和復(fù)雜度的增加,這種架構(gòu)很快就捉襟見肘,我們不得不花費(fèi)了很大的精力在短時間內(nèi)重構(gòu)了全新的任務(wù)調(diào)度系統(tǒng),再花費(fèi)了很長的時間進(jìn)行迭代優(yōu)化,更多使用內(nèi)存計(jì)算和事件消息的機(jī)制。這個教訓(xùn)告訴我們在選型的時候簡單的技術(shù)方案可以給我們當(dāng)前的工作節(jié)省不少時間和精力,但如果對業(yè)務(wù)發(fā)展估計(jì)不足導(dǎo)致的技術(shù)前瞻性不足有時候也可能帶來更大的代價(jià)。 莫涵宇:魅族 Hadoop 集群一直堅(jiān)持 Apache 社區(qū)路線,未使用商業(yè)服務(wù)。在演化過程中遇到、解決的問題不少,比較重要的問題有:
莫涵宇:一般來說,OLAP 引擎整體分為 OLAP 模型構(gòu)建和解析引擎、數(shù)據(jù)查詢引擎兩個部分。我們最開始希望基于 Mondrain 做二次開發(fā),與各類查詢引擎對接。在預(yù)研過程中發(fā)現(xiàn)其與流行的一些大數(shù)據(jù)查詢引擎存在兼容性問題、而使用傳統(tǒng) RMDB 又存在大數(shù)據(jù)量時的查詢性能問題,另外各類查詢引擎的擴(kuò)展適配代價(jià)過高。因此我們先決定打造一個面向大數(shù)據(jù)的統(tǒng)一查詢引擎,之后 Mondrain 與這個統(tǒng)一的查詢引擎對接 (作為模型構(gòu)建和解析引擎)。 而這個統(tǒng)一查詢引擎應(yīng)該具有以下特點(diǎn): A. 統(tǒng)一的 DSL; B. 具備解析器和查詢優(yōu)化器; C. 結(jié)合元數(shù)據(jù)和用戶請求自動完成查詢的 Pushdown; D. 集成安全和監(jiān)控解決方案; E. 通過組合不同查詢引擎的優(yōu)勢能力,在大數(shù)據(jù)環(huán)境下,面對篩選、模糊匹配、高基維排序、多維度聚合、實(shí)時性上都能夠有比較好的表現(xiàn)。 我們在 OLAP 引擎建設(shè)中也做了一些工作: A. 統(tǒng)一 DSL 目前已經(jīng)接入 Kylin 和 MySQL,并在內(nèi)部統(tǒng)計(jì)分析平臺部分需求中上線; B. 已經(jīng)和公司統(tǒng)一監(jiān)控進(jìn)行了對接,安全方面通過 Ranger 擴(kuò)展方式接入了自研的 SCT; C. 正在嘗試接入 ClickHouse,未來計(jì)劃接入一些實(shí)時性較好、模糊搜索排序方面性能優(yōu)秀的查詢引擎,補(bǔ)充現(xiàn)有選型的不足; D. 正在完善跟元數(shù)據(jù)平臺的對接,以實(shí)現(xiàn)不同場景的查詢 Pushdown。 莫涵宇:關(guān)于駕駛艙這個產(chǎn)品的研發(fā),主要來源于管理層的需求。我們發(fā)現(xiàn)管理層經(jīng)常無法坐在電腦前工作,他們需要在移動辦公過程中隨時查看一些業(yè)務(wù)數(shù)據(jù),但單純通過網(wǎng)頁展示一方面有安全隱患,另一方面登錄環(huán)節(jié)也是一個麻煩事,基于此我們提出了移動數(shù)據(jù)分析的概念,開發(fā)了駕駛艙這個產(chǎn)品。這個產(chǎn)品主要特點(diǎn)是在可視化呈現(xiàn)上可以靈活的嵌入 H5 頁面,是一個靈活的 Hybrid 應(yīng)用;數(shù)據(jù)上與內(nèi)部的統(tǒng)計(jì)分析系統(tǒng)共享后臺,保持?jǐn)?shù)據(jù)的一致性;在安全上采取了充分的保障策略,通過系統(tǒng)指紋驗(yàn)證可以直接登錄也簡化了繁瑣的登錄流程。目前產(chǎn)品除了服務(wù)高管也已經(jīng)在業(yè)務(wù)負(fù)責(zé)人中推廣開,幫助各業(yè)務(wù)的同事方便的查看數(shù)據(jù)進(jìn)行決策。 另外,針對非技術(shù)領(lǐng)域的同事,我們還開發(fā)了自助分析平臺,這個平臺主要的特點(diǎn)體現(xiàn)在前端交互部分,通過可視化操作的組件,用戶不需要懂 SQL,可以通過簡單的拖拉拽完成動態(tài)分析或者構(gòu)建自定義報(bào)表,未來這個平臺還需要支持更豐富的 OLAP 操作。我知道有人會問,Tableau 這些工具不是實(shí)現(xiàn)得很好么,其實(shí)在我們看來,Tableau 功能足夠強(qiáng)大,但很多細(xì)節(jié)并不好用,包括一些時間控件,包括數(shù)據(jù)量較大的時候內(nèi)存的控制,以及對一些訂制需求的快速支持上都有局限性,這些因素促使我們開發(fā)一個更適合我們使用的數(shù)據(jù)可視化分析平臺。 關(guān)于 AI 領(lǐng)域的探索業(yè)內(nèi)的領(lǐng)先企業(yè)已經(jīng)走得挺遠(yuǎn)了,我們同樣需要能跟上時代的步伐,應(yīng)對未來的挑戰(zhàn)。針對 AI 領(lǐng)域的研究,我們目前計(jì)劃在知識圖譜,意圖識別上做一些探索。 首先,知識圖譜是很多 AI 應(yīng)用的基礎(chǔ),包括搜索,推薦,意圖的推斷都能發(fā)揮重要的作用,當(dāng)然考慮到百科圖譜對我們來說代價(jià)太大,我們也不會往百科的方向發(fā)展,目前我們還處在業(yè)務(wù)調(diào)研的階段,通過業(yè)務(wù)分析去界定建設(shè)圖譜的領(lǐng)域和范圍。 意圖識別是另一個重要的 AI 研究方向,它與 NLP、模式識別和知識圖譜都有關(guān)系。盡管業(yè)內(nèi)已經(jīng)有很多智能助手應(yīng)用,但正如眾多創(chuàng)業(yè)公司、團(tuán)體還在意圖識別領(lǐng)域發(fā)力一樣,我們也認(rèn)為市場足夠廣闊,垂直領(lǐng)域也足夠豐富,我們會結(jié)合我們自己的場景去持續(xù)加強(qiáng)意圖識別能力,除了進(jìn)一步增強(qiáng) onemind 能力,還可以應(yīng)用在自身的智能助手,智能客服,搜索推斷等領(lǐng)域。 莫涵宇:在魅族數(shù)據(jù)平臺的建設(shè)過程中,我們針對實(shí)際的業(yè)務(wù)場景開發(fā)了一系列的數(shù)據(jù)產(chǎn)品和數(shù)據(jù)應(yīng)用,包括統(tǒng)計(jì)分析平臺 Orion,集成開發(fā)平臺 Cetus,統(tǒng)一權(quán)限管理平臺 SCT,用戶洞察平臺(用戶畫像),自助分析平臺 lyra,數(shù)據(jù)統(tǒng)一上報(bào)平臺 Norma 等,除了前面介紹過的產(chǎn)品,這里再介紹兩個案例(原稿中有用戶洞察平臺的案例,這里沒了): 針對數(shù)據(jù)開發(fā)流程復(fù)雜的情況,我們研發(fā)了集成開發(fā)平臺 Cetus,這個平臺主要包括 webIDE 和調(diào)度系統(tǒng)兩個部分。webIDE 是我們統(tǒng)一的編碼平臺,通過 web 編輯窗口進(jìn)行腳本語言的編碼,目前支持 HQL、Python、Shell 幾種,平臺也預(yù)留了更多語法的擴(kuò)展性;調(diào)度系統(tǒng)實(shí)現(xiàn)數(shù)據(jù)處理日常任務(wù)的調(diào)度管理、各種查詢、任務(wù)相關(guān)操作和故障處理,它與 webIDE 直接打通,用戶可以直接編碼后發(fā)布到調(diào)度系統(tǒng)或者直接在調(diào)度系統(tǒng)調(diào)用編碼環(huán)境直接編寫代碼。Cetus 平臺把我們?nèi)粘5臄?shù)據(jù)開發(fā)工作通過 IDE 管理起來,降低了任務(wù)開發(fā)上傳腳本等流程的復(fù)雜度,同時把調(diào)度配置,故障處理等都整合在一個統(tǒng)一的平臺下,大大提升了我們的開發(fā)效率的效果,很好的提升了用戶體驗(yàn)。 另一個體現(xiàn)數(shù)據(jù)平臺效率的產(chǎn)品是我們的用戶洞察平臺。這個平臺的核心是用戶畫像系統(tǒng),我們通過用戶行為和設(shè)備屬性的統(tǒng)計(jì)以及算法預(yù)測,建立了較為完善的用戶畫像,通過洞察平臺可以對用戶進(jìn)行精準(zhǔn)圈選,自定維度的洞察以及內(nèi)容投放,平臺同時也提供 API 調(diào)用,實(shí)現(xiàn)可被第三方系統(tǒng)和平臺的調(diào)用的能力;豐富的用戶畫像數(shù)據(jù)也成為推薦算法的重要數(shù)據(jù)源,尤其是用戶興趣偏好標(biāo)簽,這些標(biāo)簽在各項(xiàng)內(nèi)容推薦業(yè)務(wù)中發(fā)揮著重要的作用。隨著用戶洞察平臺的完善,魅族互聯(lián)網(wǎng)業(yè)務(wù)越來越依賴這一平臺,通過對用戶的精準(zhǔn)識別我們大幅改善了內(nèi)容推送的效果,很好的提升了用戶體驗(yàn)。 莫涵宇:數(shù)據(jù)平臺并不那么顯山露水,很多情況下甚至就像一座冰山,人們看到的只有那么一角,而在水面下有一個龐大的身軀支撐著整體。但大數(shù)據(jù)領(lǐng)域的人都知道,數(shù)據(jù)平臺的能力決定了數(shù)據(jù)應(yīng)用能達(dá)到的高度,所以對數(shù)據(jù)平臺的價(jià)值我持絕對肯定的觀點(diǎn),也會不遺余力的推動平臺向業(yè)界領(lǐng)先水平追趕。 評估一個大數(shù)據(jù)平臺的能力,在我看來優(yōu)秀的大數(shù)據(jù)平臺應(yīng)該具備以下一些特點(diǎn):
魅族數(shù)據(jù)平臺雖然經(jīng)歷了兩年多的建設(shè),但仍然在快速發(fā)展中,未來我們有兩方面的規(guī)劃,一方面仍然是提升對內(nèi)服務(wù)的能力,對魅族業(yè)務(wù)做更好的支撐,另一方面,我們希望嘗試走出去,首先給我們上下游的合作方,接入魅族開放平臺的開發(fā)者和企業(yè)提供一些數(shù)據(jù)平臺服務(wù),包括 Flyme 生態(tài)下的排行分析、應(yīng)用分析、Push 效果分析、行業(yè)報(bào)告等。 針對剛剛提到的一些應(yīng)用場景,我們在 1 月 18 日已經(jīng)發(fā)布了一款數(shù)據(jù)產(chǎn)品,叫做π(pi.meizu.com),圓周率是一個無限不循環(huán)的無理數(shù),也寓意著數(shù)據(jù)價(jià)值的無限可能,歡迎我們的合作伙伴試用。更遠(yuǎn)來看,我們還希望外發(fā) SDK 提供個性化統(tǒng)計(jì)服務(wù),訂制分析報(bào)告,開放 DMP 合作,期待能發(fā)揮更大的價(jià)值。 最后,開源這個方向是美好的,我們也期望能對行業(yè)做出一些力所能及的貢獻(xiàn),也能在社區(qū)開發(fā)者交流中獲得更多成長,但目前來看條件還不是那么成熟,短期可能還沒有該項(xiàng)計(jì)劃。 采訪嘉賓莫涵宇(Neeke),魅族數(shù)據(jù)平臺高級經(jīng)理,具有十五年工作經(jīng)驗(yàn)和十四年數(shù)據(jù)倉庫與大數(shù)據(jù)開發(fā)應(yīng)用經(jīng)驗(yàn),先后服務(wù)于某電信系統(tǒng)集成商,阿里巴巴,YY,魅族科技,過往主要從事數(shù)據(jù)平臺建設(shè),架構(gòu)設(shè)計(jì),數(shù)據(jù)處理等領(lǐng)域工作,目前負(fù)責(zé)魅族大數(shù)據(jù)平臺的管理和整體業(yè)務(wù)規(guī)劃,包括數(shù)據(jù)平臺建設(shè)和數(shù)據(jù)應(yīng)用服務(wù)(數(shù)據(jù)處理,報(bào)表,分析,預(yù)測,推薦算法,AI 圖像和語義) |
|
|