TOP100summit【分享實錄】鏈家網(wǎng)大數(shù)據(jù)平臺體系構建歷程

作者 李小龍:鏈家網(wǎng)大數(shù)據(jù)部資深研發(fā)架構師是辕,負責大數(shù)據(jù)工具平臺化相關的工作。專注于數(shù)據(jù)倉庫昙啄、任務流調(diào)度穆役、元數(shù)據(jù)管理、自助報表等領域梳凛。之前在百度從事了四年的數(shù)據(jù)倉庫和工具平臺的研發(fā)工作耿币。

導讀:鏈家網(wǎng)大數(shù)據(jù)部門負責收集加工公司各產(chǎn)品線的數(shù)據(jù),并為鏈家集團各業(yè)務部門提供數(shù)據(jù)支撐韧拒。本文分享鏈家網(wǎng)大數(shù)據(jù)部成立后淹接,在發(fā)展變革中遇到的一些問題和挑戰(zhàn),架構團隊是如何構建一站式的數(shù)據(jù)平臺來解決獲取數(shù)據(jù)的效率問題叛溢,如何構建多層次系統(tǒng)來組建大數(shù)據(jù)架構體系塑悼。重點介紹團隊早期作為數(shù)據(jù)報表支持者,向當下數(shù)據(jù)平臺方轉(zhuǎn)變的這一歷程楷掉,通過對數(shù)據(jù)處理流程的梳理厢蒜,構建一體化的數(shù)據(jù)接入/計算/展示的開放平臺,提升數(shù)據(jù)運轉(zhuǎn)效率,快速滿足集團內(nèi)數(shù)據(jù)需求斑鸦。

一愕贡、背景簡介

鏈家網(wǎng)自2014年成立后,全面推進020戰(zhàn)略巷屿,打造線上線下房產(chǎn)服務閉環(huán)固以,公司業(yè)務迅速增長,覆蓋全國28個地區(qū)攒庵,門店數(shù)量超過8000家嘴纺。隨著鏈家集團積累數(shù)據(jù)的不斷增多,在2015年專門成立了大數(shù)據(jù)部浓冒,推進集團內(nèi)各公司數(shù)據(jù)資產(chǎn)的整合栽渴,以數(shù)據(jù)驅(qū)動公司業(yè)務的發(fā)展。

鏈家將房地產(chǎn)交易大數(shù)據(jù)分為物的數(shù)據(jù)稳懒、人的數(shù)據(jù)闲擦、行為數(shù)據(jù)三大塊來進行研究。

●物的數(shù)據(jù)主要是構建了全國的樓盤字典场梆,擁有專業(yè)的攝影測量團隊實地勘測墅冷,收錄了7000萬套房屋的詳細信息,包括小區(qū)周邊或油、人文素養(yǎng)等等寞忿。

●人的數(shù)據(jù),包括買家顶岸、業(yè)主腔彰、經(jīng)紀人三方,目前在全國有13萬經(jīng)紀人辖佣,對經(jīng)紀人的背景霹抛、從業(yè)年限、資歷卷谈、專業(yè)能力杯拐、歷史行為有詳細記錄,給客戶更加精準的參考世蔗。目前鏈家網(wǎng)服務的買家和賣家超過兩千多萬端逼,對用戶進行畫像,然后推薦更加合適的房屋凸郑。

●行為數(shù)據(jù)裳食,包括線上行為和多樣的線下行為,譬如線上的瀏覽日志芙沥,線下的看房行程等。

通過分析這些數(shù)據(jù),找到與業(yè)務的結合點而昨,目前大數(shù)據(jù)在鏈家網(wǎng)具體的應用場景有房屋估價救氯、智能推薦、房客圖譜歌憨、BI報表着憨。

二、大數(shù)據(jù)從0到1的架構落地

大數(shù)據(jù)部成立以后务嫡,借鑒業(yè)界成熟的數(shù)據(jù)倉庫方案甲抖,設計的早期架構圖如圖1所示:

圖1 數(shù)據(jù)倉庫早期架構

在這個階段我們主要做了三件事:

●搭建hadoop集群,初期只有10多臺機器心铃,隨著業(yè)務的發(fā)展准谚,集群規(guī)模也在不斷增長。

●采用HIVE構建數(shù)據(jù)倉庫去扣,數(shù)據(jù)倉庫里的數(shù)據(jù)來源于業(yè)務方的mysql數(shù)據(jù)庫和log日志柱衔。

●定制化報表開發(fā),按照業(yè)務方的需求愉棱,case by case做一些BI報表展示唆铐,滿足業(yè)務方對數(shù)據(jù)的分析。

這個架構簡單清晰奔滑,這樣做有三個好處:

●使用開源的組件艾岂,方便擴展和運維;

●采用業(yè)界成熟的數(shù)據(jù)倉庫方案朋其,數(shù)據(jù)倉庫分層模型設計王浴;

●有利于技術人員培養(yǎng),技術團隊在成長初期技術選型需要考慮市場上人員情況令宿,所以選擇了使用范圍廣的技術叼耙。

具體講講HIVE數(shù)據(jù)倉庫的模型,該模型一共分為5層粒没。

●最下面是STG層筛婉,用來存儲源數(shù)據(jù),保持與數(shù)據(jù)源完全一致癞松;

●第二層是ODS層爽撒,會進行數(shù)據(jù)清理等工作,譬如不同業(yè)務系統(tǒng)的城市編碼不一致响蓉,有的001代表北京硕勿,有的110代表北京,在ODS層進行維度編碼的統(tǒng)一處理枫甲。還有不同業(yè)務系統(tǒng)的金錢單位不一致源武,有的是元扼褪、有的是分,在此統(tǒng)一采用分為單位粱栖,保留兩位小數(shù)话浇;

●最上面是報表層,根據(jù)業(yè)務需求進行加工處理闹究,產(chǎn)出報表數(shù)據(jù)幔崖。至于數(shù)據(jù)倉庫遵循的范式結構,目前沒有嚴格一致地規(guī)范渣淤,星型模型和雪花模型都有采用赏寇。

早期的大數(shù)據(jù)架構落地后,支撐了將近一年時間价认,從2015年初到2016年初嗅定,取得了不錯的效果。

●收集匯總了集團內(nèi)各個分公司刻伊、各條產(chǎn)品線的數(shù)據(jù)露戒,便于交叉分析。通過對比分析數(shù)據(jù)捶箱,能幫助業(yè)務系統(tǒng)更好的發(fā)展智什。

●支撐集團內(nèi)大部分報表需求,幫助運營人員改進決策丁屎,數(shù)據(jù)驅(qū)動荠锭。 巧婦難為無米之炊,當數(shù)據(jù)倉庫積累了大量歷史數(shù)據(jù)晨川,數(shù)據(jù)挖掘的同學就能進行深度分析证九。

三、大數(shù)據(jù)平臺化體系的建設

為什么要做平臺化共虑?

主要原因還是隨著公司業(yè)務的快速發(fā)展愧怜,數(shù)據(jù)需求迅速增多,早期的大數(shù)據(jù)架構遇到一些新挑戰(zhàn)妈拌。

數(shù)據(jù)需求快速增長:鏈家業(yè)務增長到全國多個城市拥坛,各個城市的報表需求很多,而且由于各個地方的政策不太一樣尘分,報表需求也有所差異猜惋,此外還有大量的臨時統(tǒng)計數(shù)據(jù)需求。為了能快速響應需求培愁,我們提出平臺化著摔,通過提供各種數(shù)據(jù)處理和探索工具,讓用戶自助高效地獲取一些數(shù)據(jù)定续。

數(shù)據(jù)治理亟需規(guī)范:各條產(chǎn)品線的數(shù)據(jù)都進入倉庫以后谍咆,由于需求很急迫禾锤,一些建模規(guī)范未能有效執(zhí)行,導致倉庫里數(shù)據(jù)冗余繁雜卧波,wiki更新維護不及時时肿,難以清晰掌握數(shù)據(jù)倉庫里數(shù)據(jù)整體概況庇茫。指標定義不清晰港粱,一些數(shù)據(jù)需求人員按照自己的理解制定指標含義,結果上線后旦签,發(fā)現(xiàn)不同的人對指標理解不一致查坪,導致返工。

數(shù)據(jù)安全迫在眉睫:對數(shù)據(jù)的申請需要進行集中的審批管理宁炫,對數(shù)據(jù)的使用需要進行持續(xù)的追蹤備案偿曙,防止數(shù)據(jù)泄露。

為了解決存在的這些問題羔巢,我們提出了新的平臺化架構圖望忆。平臺化架構數(shù)據(jù)流圖如圖2所示:

圖2 平臺化架構數(shù)據(jù)流圖

對比新老架構圖可以看出,首先是多了紅色的實時數(shù)據(jù)流部分竿秆,日志log采用flume對接Kafka消息隊列启摄,然后使用SparkStreaming/Storm進行日志的分析處理,處理后的結果寫入到Hbase供API服務使用幽钢。

另外歉备,在OLAP部分,引入了Kylin作為MOLAP處理引擎匪燕,會定期將Hive里面的星型模型數(shù)據(jù)處理后寫入Hbase蕾羊,然后Kylin對外提供數(shù)據(jù)分析服務,提供亞秒級的查詢速度帽驯。

圖中右邊是數(shù)據(jù)治理相關組件龟再,有數(shù)據(jù)權限、數(shù)據(jù)質(zhì)量尼变、元數(shù)據(jù)等利凑。在新的平臺化架構圖中,我們將大數(shù)據(jù)工程平臺分為三層享甸,由上到下分別是應用層截碴、工具層、基礎層蛉威,如圖3所示:

圖3 大數(shù)據(jù)工程平臺

3.1應用層

應用層日丹,主要面向數(shù)據(jù)開發(fā)人員和數(shù)據(jù)分析師,重點解決三類問題:

●BI報表產(chǎn)出速度如何加快蚯嫌,縮短業(yè)務方從提出數(shù)據(jù)需求到報表產(chǎn)出的時間周期哲虾。

●數(shù)據(jù)治理丙躏,對公司的核心數(shù)據(jù)指標進行統(tǒng)一定義,對元數(shù)據(jù)進行管理束凑,集中數(shù)據(jù)的審批流程晒旅。

●數(shù)據(jù)流轉(zhuǎn)集中管控,數(shù)據(jù)在各個系統(tǒng)間的流轉(zhuǎn)統(tǒng)一走元數(shù)據(jù)管理平臺汪诉,能很方便排查定位問題废恋。

為了加快BI報表產(chǎn)出,我們開發(fā)了地動儀自助報表扒寄,在數(shù)據(jù)源已經(jīng)就緒的情況下鱼鼓,目標是5分鐘完成一個通用報表的配置,得到類似 excel表格该编、柱狀圖這種圖表效果迄本,目前已經(jīng)支持 mysql、presto 课竣、kylin等各種數(shù)據(jù)源嘉赎。另外,如果需要定制化的Dashboard報表于樟,自助報表也支持復用一些圖表組件公条。

元數(shù)據(jù)管理系統(tǒng)

元數(shù)據(jù)對公司的所有數(shù)據(jù)信息進行管理維護,通過數(shù)據(jù)地圖隔披,可以看到公司數(shù)據(jù)倉庫里的所有數(shù)據(jù)以及數(shù)據(jù)信息的變更情況赃份,方便用戶進行搜索查詢。指標圖書館對指標進行詳細的描述定義奢米,而且可以對每個指標關聯(lián)的維度進行管理抓韩,維度表以及維度取值的描述。另外鬓长,基于元數(shù)據(jù)我們還可以做數(shù)據(jù)血緣關系谒拴,方便追蹤數(shù)據(jù)的上下游關系,能夠快速定位排查問題涉波。

元數(shù)據(jù)管理系統(tǒng)上線后英上,取得了以下三個成果:

●所有表的創(chuàng)建修改都經(jīng)過元數(shù)據(jù)系統(tǒng),可以實時清晰掌握倉庫里的數(shù)據(jù)情況啤覆。

●成立了公司級別的數(shù)據(jù)委員會苍日,統(tǒng)一制定公司的核心指標,各個部門可以自定義二級指標窗声。

●數(shù)據(jù)的接入和流出都通過元數(shù)據(jù)系統(tǒng)集中管控相恃,所有的日志接入、mysql接入通過元數(shù)據(jù)來配置笨觅,數(shù)據(jù)申請也是走的元數(shù)據(jù)拦耐,方便集中管理運維耕腾。

3.2工具層

工具層定位于通用工具組件的開發(fā),為上層應用提供能力支撐杀糯,同時解決用戶在使用大數(shù)據(jù)計算中遇到的實際困難扫俺。譬如ETL作業(yè)任務很多、追蹤排查問題比較麻煩固翰、數(shù)據(jù)修復時間長狼纬、Hue hive查詢速度比較慢、一個sql需要等待幾分鐘倦挂。

圖4是實際工作中一個典型的數(shù)據(jù)任務鏈路圖畸颅,抽取了作業(yè)鏈路中的一部分。

圖4 數(shù)據(jù)任務鏈路圖

從圖中我們可以看到以下信息:

●任務鏈路特別長方援,可能有6層之多;

●任務種類多涛癌,既有mysql導入任務犯戏,也有hive-sql加工任務,還有發(fā)送郵件的任務拳话;

●依賴類型比較復雜先匪,有小時級別依賴分鐘任務,也有日周月季互相依賴的任務弃衍。

對于這種復雜的數(shù)據(jù)鏈路呀非,之前我們采用oozie+python+shell解決,任務量有5000多個镜盯,維護困難岸裙,且遇到數(shù)據(jù)修復問題,難以迅速定位速缆。為了解決這些問題降允,我們參考了oozie、airflow等開源軟件艺糜,自主研發(fā)了新的任務調(diào)度系統(tǒng)剧董。

在新的任務調(diào)度系統(tǒng)上,用戶可以自助運維破停,對任務進行上線或者重跑翅楼,而且可以實時看到任務的運行日志。以前可能要登陸到集群機器上上查看日志真慢,非常麻煩缨睡。

調(diào)度系統(tǒng)上線后,取得了非常好的效果:

●任務配置簡單但金,在圖形上簡單的拖曳即可操作。

●提供常用的ETL組件功蜓,零編碼。舉個例子宠蚂,以前發(fā)送數(shù)據(jù)郵件式撼,需要自己寫腳本,目前在我們界面只需配置收件人和數(shù)據(jù)表即可求厕。

●一鍵修復追溯著隆,將排查問題修復數(shù)據(jù)的時間由一人天縮減到10分鐘。

●集群的資源總是緊張的呀癣,目前我們正在做的智能調(diào)度美浦、錯峰運行,保證高優(yōu)先級任務優(yōu)先運行项栏。

Adhoc即席查詢浦辨,之前我們使用的hue,速度比較慢沼沈。通過調(diào)研市面上的各種快速查詢工具流酬,我們采用了Presto和Spark SQL雙引擎,架構圖如圖5所示:

圖5 雙引擎架構圖

3.3基礎層

基礎層偏重于集群底層能力的建設和完善列另。遇到的問題集中在兩個方面:

●任務量劇增芽腾,目前每天有一萬多JOB,造成集群資源相當緊張页衙,排隊嚴重摊滔。

●集群的數(shù)據(jù)安全需要規(guī)劃,而且由于多個部門都在使用集群店乐,之前未劃分賬號和隊列艰躺,大家共同使用。

針對這些問題响巢,我們在基礎層做了一些改進描滔。

在集群性能優(yōu)化方面,通過劃分單獨的賬號隊列踪古,資源預留含长,保證核心作業(yè)的執(zhí)行,同時與應用層的權限管理打通伏穆,對不同的目錄按照用戶歸屬限制不同的權限拘泞。隨著集群數(shù)據(jù)的膨脹,不少冷數(shù)據(jù)無人管理枕扫,我們在梳理后陪腌,將冷數(shù)據(jù)遷移到AWS S3存儲。

四、案例啟示

●傳統(tǒng)企業(yè)或者初創(chuàng)團隊如何快速落地大數(shù)據(jù)诗鸭,首先要采用成熟的業(yè)界方案染簇,大的互聯(lián)網(wǎng)公司的做法可以直接借鑒,穩(wěn)定的開源軟件直接使用强岸;其次要深入梳理公司業(yè)務锻弓,找到契合點,譬如鏈家網(wǎng)的房屋估價蝌箍、個性化搜索青灼、交叉報表分析。

●面對公司業(yè)務的迅速增長妓盲,平臺化思維是解決問題的一個法寶杂拨。首先要通過梳理用戶的流程和使用習慣,將這些服務自動化悯衬,讓用戶能自助排查一些問題弹沽;其次平臺化開發(fā)的產(chǎn)品,先得實實在在解決用戶痛點問題甚亭,自己愿意使用贷币,然后才能推廣給其他人使用。

●平臺化的產(chǎn)品需要梳理清楚流程亏狰,制定規(guī)范。先通過梳理調(diào)研公司的現(xiàn)狀偶摔,然后規(guī)范流程暇唾,當然梳理的過程比較痛苦,需要很多人配合辰斋;制定了標準以后策州,需要保證標準的權威性和執(zhí)行力,可以成立公司級別的數(shù)據(jù)治理委員會宫仗,發(fā)布核心指標够挂,保證流程的推廣執(zhí)行。

TOP100全球軟件案例研究峰會已舉辦六屆藕夫,甄選全球軟件研發(fā)優(yōu)秀案例孽糖,每年參會者達2000人次。包含產(chǎn)品毅贮、團隊办悟、架構、運維滩褥、大數(shù)據(jù)病蛉、人工智能等多個技術專場,現(xiàn)場學習谷歌、微軟铺然、騰訊俗孝、阿里、百度等一線互聯(lián)網(wǎng)企業(yè)的最新研發(fā)實踐魄健。

更多TOP100案例信息及日程請前往[官網(wǎng)]查閱赋铝。4天時間集中分享2017年最值得學習的100個研發(fā)案例實踐。免費體驗票申請入口

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末诀艰,一起剝皮案震驚了整個濱河市柬甥,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌其垄,老刑警劉巖苛蒲,帶你破解...
    沈念sama閱讀 218,525評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異绿满,居然都是意外死亡臂外,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評論 3 395
  • 文/潘曉璐 我一進店門喇颁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來漏健,“玉大人,你說我怎么就攤上這事橘霎∧杞” “怎么了?”我有些...
    開封第一講書人閱讀 164,862評論 0 354
  • 文/不壞的土叔 我叫張陵姐叁,是天一觀的道長瓦盛。 經(jīng)常有香客問我,道長外潜,這世上最難降的妖魔是什么原环? 我笑而不...
    開封第一講書人閱讀 58,728評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮处窥,結果婚禮上嘱吗,老公的妹妹穿的比我還像新娘。我一直安慰自己滔驾,他們只是感情好谒麦,可當我...
    茶點故事閱讀 67,743評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著嵌灰,像睡著了一般弄匕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上沽瞭,一...
    開封第一講書人閱讀 51,590評論 1 305
  • 那天迁匠,我揣著相機與錄音,去河邊找鬼。 笑死城丧,一個胖子當著我的面吹牛延曙,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播亡哄,決...
    沈念sama閱讀 40,330評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼枝缔,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蚊惯?” 一聲冷哼從身側響起愿卸,我...
    開封第一講書人閱讀 39,244評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎截型,沒想到半個月后趴荸,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,693評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡宦焦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,885評論 3 336
  • 正文 我和宋清朗相戀三年发钝,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片波闹。...
    茶點故事閱讀 40,001評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡酝豪,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出精堕,到底是詐尸還是另有隱情孵淘,我是刑警寧澤,帶...
    沈念sama閱讀 35,723評論 5 346
  • 正文 年R本政府宣布歹篓,位于F島的核電站夺英,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏滋捶。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,343評論 3 330
  • 文/蒙蒙 一余黎、第九天 我趴在偏房一處隱蔽的房頂上張望重窟。 院中可真熱鬧,春花似錦惧财、人聲如沸巡扇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽厅翔。三九已至,卻和暖如春搀突,著一層夾襖步出監(jiān)牢的瞬間刀闷,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留甸昏,地道東北人顽分。 一個月前我還...
    沈念sama閱讀 48,191評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像施蜜,于是被迫代替她去往敵國和親卒蘸。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,955評論 2 355

推薦閱讀更多精彩內(nèi)容