發(fā)布時間:2021-09-07
欄目:電商資訊
大家好業務指導,我是miao君覆蓋範圍,一個ITer。從事數(shù)據(jù)開發(fā)工作十多年,經(jīng)歷過銀行奮勇向前、電商行業(yè)數(shù)據(jù)開發(fā)及系統(tǒng)建設(shè)不斷豐富。對數(shù)據(jù)倉庫/ODS/大數(shù)據(jù)平臺架構(gòu)等數(shù)據(jù)類系統(tǒng)有一定的經(jīng)驗積累。預(yù)備將這么多年來的一些經(jīng)驗整理成文組建,一來為自己工作做個總結(jié)梳理各有優勢,二來也希望能和大家互相討論,共同學(xué)習(xí)重要的意義,探討新技術(shù)持續、新架構(gòu)以及趨勢。歡迎大家關(guān)注再獲!
很近在給公司規(guī)劃新一輪的大數(shù)據(jù)平臺架構(gòu)產品和服務,距離上次這么系統(tǒng)做架構(gòu)工作也有2、3年體驗區。時間上關(guān)于平臺架構(gòu)的好內(nèi)容少之又少增多,所以一直想整理這塊內(nèi)容。既然是漫談有望,就想起什么說什么吧進一步推進。這幾年一直在互聯(lián)網(wǎng)行業(yè),就以互聯(lián)網(wǎng)行業(yè)來說方案。
互聯(lián)網(wǎng)發(fā)展了好多年應用的選擇,數(shù)據(jù)平臺也已經(jīng)相當(dāng)成熟了。數(shù)據(jù)倉庫以及數(shù)據(jù)平臺在這個行業(yè)的應(yīng)用價值我總結(jié)了這樣幾點:
上面列出的內(nèi)容看上去和傳統(tǒng)行業(yè)數(shù)據(jù)倉庫用途差不多即將展開,并且都要求數(shù)據(jù)倉庫/數(shù)據(jù)平臺有很好的穩(wěn)定性大幅增加、可靠性。但在互聯(lián)網(wǎng)行業(yè)包括目前銀行保險零售等以C端客戶服務(wù)為主導(dǎo)的行業(yè)傳承,除了數(shù)據(jù)量大之外等特點,越來越多的業(yè)務(wù)要求時效性,甚至很多是要求實時的 多種⑦M一步;ヂ?lián)網(wǎng)行業(yè)的業(yè)務(wù)變化非常快發展成就,不可能像傳統(tǒng)行業(yè)一樣成就,可以使用自頂向下的方法建立數(shù)據(jù)倉庫,一勞永逸關註,它要求新的業(yè)務(wù)很快能融入數(shù)據(jù)倉庫中來研究進展,老的下線的業(yè)務(wù),能很方便的從現(xiàn)有的數(shù)據(jù)倉庫中下線連日來。
其實快速融入,互聯(lián)網(wǎng)行業(yè)的數(shù)據(jù)倉庫就是所謂的靈敏數(shù)據(jù)倉庫認為,不但要求能快速的響應(yīng)數(shù)據(jù),也要求能快速的響應(yīng)業(yè)務(wù)增強。
建設(shè)靈敏數(shù)據(jù)倉庫重要意義,除了對架構(gòu)技術(shù)上的要求之外,還有一個很重要的方面更加廣闊,就是數(shù)據(jù)建模規劃,假如一上來就想著建立一套能兼容所有數(shù)據(jù)和業(yè)務(wù)的數(shù)據(jù)模型,那就又回到傳統(tǒng)數(shù)據(jù)倉庫的建設(shè)上了可以使用,很難滿足對業(yè)務(wù)變化的快速響應(yīng)進入當下。應(yīng)對這種情況,一般是先將核心的持久化的業(yè)務(wù)進行深度建模效高化。比如基于網(wǎng)站日志建立的網(wǎng)站統(tǒng)計分析模型和用戶瀏覽軌跡模型保持競爭優勢;基于公司核心用戶數(shù)據(jù)建立的用戶模型。其它的業(yè)務(wù)一般都采用維度+寬表的方式來建立數(shù)據(jù)模型發展機遇。——這塊是后話法治力量。
下面的圖是我目前規(guī)劃的數(shù)據(jù)平臺架構(gòu)圖全技術方案,其實大多公司應(yīng)該都差不多:
邏輯上,一般都有數(shù)據(jù)采集層共享、數(shù)據(jù)存儲層信息化,數(shù)據(jù)分析層、數(shù)據(jù)共享層生動、數(shù)據(jù)應(yīng)用層新型儲能。可能叫法有所不同新品技,大家看圖都能理解範圍,本質(zhì)上的角色都大同小異。
數(shù)據(jù)采集層的任務(wù)就是把數(shù)據(jù)從各種數(shù)據(jù)源中采集和存儲到數(shù)據(jù)存儲上紮實做,在這個過程中可能會做一些簡單的清洗空間廣闊。
對于關(guān)系型數(shù)據(jù)庫以及部分NOSQL(Redis、MongoDB)中的數(shù)據(jù)臺上與臺下,仍然使用DataHub按天用的舒心、按小時,增量抽取到HDFS集聚效應,映射到Hive表集成。對于日志數(shù)據(jù),使用Flume從日志收集服務(wù)器實時抽取到Kafka互動講,再使用Flume穩定性,從Kafka抽取到HDFS像一棵樹,映射到Hive表。
數(shù)據(jù)源的種類比較多:
①
網(wǎng)站日志:
互聯(lián)網(wǎng)行業(yè)網(wǎng)站日志占的份額很大更高效。網(wǎng)站日志存儲在多臺網(wǎng)站日志服務(wù)器上全面協議,一般是在每臺網(wǎng)站日志服務(wù)器上部署flume agent,實時的收集網(wǎng)站日志并存儲到HDFS上具體而言。
② 業(yè)務(wù)數(shù)據(jù)庫:
業(yè)務(wù)數(shù)據(jù)庫的種類也是多種多樣工具,有Mysql、Oracle喜愛、SqlServer等重要的角色,這時候,我們迫切的需要一種能從各種數(shù)據(jù)庫中將數(shù)據(jù)同步到HDFS上的工具向好態勢,Sqoop是一種平臺建設,但是Sqoop太過繁重,而且不管數(shù)據(jù)量大小貢獻力量,都需要啟動MapReduce來執(zhí)行使用,而且需要Hadoop集群的每臺機器都能訪問業(yè)務(wù)數(shù)據(jù)庫。應(yīng)對此場景發行速度,淘寶開源的DataX是一個很好的解決方案更加堅強,它是一個在異構(gòu)的數(shù)據(jù)庫/文件系統(tǒng)之間高速交換數(shù)據(jù)的工具,能夠在任意的數(shù)據(jù)處理系統(tǒng)(RDBMS/Hdfs/Local filesystem)之間進行數(shù)據(jù)交換性能。有資源的話初步建立,對于復(fù)雜需求甚至可以基于DataX之上做二次開發(fā),我們目前使用的DataHub也是供給。
當(dāng)然的方法,也有人會說,F(xiàn)lume通過配置與開發(fā)進行探討,也可以實時的從數(shù)據(jù)庫中同步數(shù)據(jù)到HDFS帶動產業發展。
③ 來自于Ftp/ 的數(shù)據(jù)源:
這個針對的是一些合作伙伴提供的數(shù)據(jù),需要通過Ftp/ 等定時獲取十分落實,DataX也可以滿足該需求必然趨勢。
④ 其他數(shù)據(jù)源:
比如一些手工錄入的數(shù)據(jù),可能是Excel擴大、csv等多樣性。假如是單一的數(shù)據(jù),只需要提供一個接口或小程序新格局,即可完成明顯。但假如是額外新增的業(yè)務(wù)需求,這種情況我們一般是通過前端報表工具fienreport(后面會將)來采集業(yè)務(wù)流程上的數(shù)據(jù)顯示,進入業(yè)務(wù)系統(tǒng)/數(shù)據(jù)庫創新為先,在做抽取真正做到。
毋庸置疑,HDFS是大數(shù)據(jù)環(huán)境下數(shù)據(jù)倉庫/數(shù)據(jù)平臺很完美的數(shù)據(jù)存儲解決方案創新延展。
離線數(shù)據(jù)分析與計算強化意識,也就是對實時性要求不高的部分,在我看來基本情況,Hive還是首當(dāng)其沖的選擇現場,豐富的數(shù)據(jù)類型、內(nèi)置函數(shù)力量;壓縮比非常高的ORC文件存儲格式我有所應;非常
方便的SQL支持,使得Hive在基于結(jié)構(gòu)化數(shù)據(jù)上的統(tǒng)計分析遠遠比MapReduce要高效的多深入實施,一句SQL可以完成的需求至關重要,開發(fā)MR可能需要上百行代碼;
當(dāng)然效果,使用Hadoop框架自然而然也提供了MapReduce接口有所應,假如真的很樂意開發(fā)Java,或者對SQL不熟合作關系,那么也可以使用MapReduce來做分析與計算認為;
Spark是這幾年非常火的增強,經(jīng)過實踐,它的性能的確比MapReduce要好很多適應能力,而且和Hive更優美、Yarn結(jié)合的越來越好,因此防控,必須支持使用Spark和SparkSQL來做分析和計算成效與經驗。因為已經(jīng)有Hadoop Yarn,使用Spark其實是非常簡單的堅實基礎,不用單獨部署Spark集群稍有不慎。
這里的數(shù)據(jù)共享,其實指的是前面數(shù)據(jù)分析與計算后的結(jié)果存放的地方等地,其實就是關(guān)系型數(shù)據(jù)庫和NOSQL數(shù)據(jù)庫最為顯著。前面使用Hive、MR規定、Spark環境、SparkSQL分析和計算的結(jié)果,還是在HDFS上高質量,但大多業(yè)務(wù)和應(yīng)用不可能直接從HDFS上獲取數(shù)據(jù)相對簡便,那么就需要一個數(shù)據(jù)共享的地方重要組成部分,使得各業(yè)務(wù)和產(chǎn)品能方便的獲取數(shù)據(jù)。和數(shù)據(jù)采集層到HDFS剛好相反合作,這里需要一個從HDFS將數(shù)據(jù)同步至其他目標(biāo)數(shù)據(jù)源的工具勃勃生機,同樣,DataX也可以滿足極致用戶體驗。
另外提供有力支撐,一些實時計算的結(jié)果數(shù)據(jù)可能由實時計算模塊直接寫入數(shù)據(jù)共享。
業(yè)務(wù)系統(tǒng)
業(yè)務(wù)產(chǎn)品所使用的數(shù)據(jù)引領作用,比如ERP加強宣傳、OA,已經(jīng)存在于數(shù)據(jù)共享層,他們直接從數(shù)據(jù)共享層訪問即可用的舒心;
報表
報表所使用的數(shù)據(jù)技術發展,一般也是已經(jīng)統(tǒng)計匯總好的,存放于數(shù)據(jù)共享層集成,然后我們會用finereport做統(tǒng)一報表開發(fā)重要手段。
即席查詢&OLAP
即席查詢的用戶有很多,有可能是數(shù)據(jù)開發(fā)人員穩定性、網(wǎng)站和產(chǎn)品運營人員像一棵樹、數(shù)據(jù)分析人員、甚至是部門老大非常完善,他們都有即席查詢數(shù)據(jù)的需求性能穩定;
這種即席查詢通常是現(xiàn)有的報表和數(shù)據(jù)共享層的數(shù)據(jù)并不能滿足他們的需求,需要從數(shù)據(jù)存儲層直接查詢作用。
即席查詢一般是通過SQL完成情況正常,很大的難度在于響應(yīng)速度上,使用Hive有點慢技術特點,目前我的解決方案是用Kylin作為OLAP引擎
提高鍛煉,數(shù)據(jù)開發(fā)人員在Hive數(shù)據(jù)倉庫中設(shè)計好事實表,維度表凝聚力量,在Kylin中設(shè)計好Cube有所提升,天天將數(shù)據(jù)由Hive加載到Kylin,數(shù)據(jù)分析新的力量、產(chǎn)品運營通過Kylin來完成90%以上的數(shù)據(jù)分析需求先進水平,對于一些尤其復(fù)雜和定制的需求,才會提臨時需求給數(shù)據(jù)開發(fā)全面展示。
另外足夠的實力,使用Caravel經(jīng)過簡單的二次開發(fā),作為OLAP的前端結構,用戶不用寫SQL更適合,即可完成數(shù)據(jù)多維分析與可視化高效。
當(dāng)然,上面幾塊應(yīng)用也可以用一些現(xiàn)成的BI來解決要素配置改革,但是性能和穩(wěn)定性上體系,目前我們還沒找到合適的產(chǎn)品。
其它數(shù)據(jù)接口
這種接口有通用的帶動產業發展,有定制的責任製。比如:一個從Redis中獲取用戶屬性的接口是通用的,所有的業(yè)務(wù)都可以調(diào)用這個接口來獲取用戶屬性倍增效應。
目前只使用了Spark MLlib提供的機器學(xué)習(xí)算法規則製定,完成了文本分類的需求。其他還暫未涉及
在Hive的基礎(chǔ)上優化服務策略,也提供了SparkSQL的方式關規定,主要是給數(shù)據(jù)開發(fā)以及懂SQL的數(shù)據(jù)分析和運營提供更快的Ad-Hoc查詢響應(yīng)。
離線計算80%以上使用Hive兩個角度入手,部分新業(yè)務(wù)使用SparkSQL迎難而上,很少一部分老的業(yè)務(wù)仍然使用MR;
離線計算的結(jié)果探索,根據(jù)業(yè)務(wù)用途不同堅持先行,分別保存在Hive、Redis以及業(yè)務(wù)關(guān)系型數(shù)據(jù)庫中滿意度;
現(xiàn)在業(yè)務(wù)對數(shù)據(jù)倉庫實時性的需求越來越多情況較常見,比如:實時的了解網(wǎng)站的整體流量;實時的獲取一個廣告的曝光和點擊主要抓手;在海量數(shù)據(jù)下體製,依靠傳統(tǒng)數(shù)據(jù)庫和傳統(tǒng)實現(xiàn)方法基本完成不了,需要的是一種分布式的集成應用、高吞吐量的、延時低的不負眾望、高可靠的實時計算框架高效流通;Storm在這塊是比較成熟了,但我選擇Spark Streaming精準調控,原因很簡單功能,不想多引入一個框架到平臺中,另外解決,Spark Streaming比Storm延時性高那么一點點預期,那對于我們的需要可以忽略。
我們目前使用Spark Streaming以及部分Java程序消費Kafka中收集的日志數(shù)據(jù)幅度,實時計算結(jié)果大多保存在Redis中結構。實現(xiàn)了實時的網(wǎng)站流量統(tǒng)計重要的作用、實時的廣告效果統(tǒng)計兩塊功能。
做法也很簡單規模最大,由Flume在前端日志服務(wù)器上收集網(wǎng)站日志和廣告日志穩中求進,實時的發(fā)送給Spark Streaming,由Spark Streaming完成統(tǒng)計最深厚的底氣,將數(shù)據(jù)存儲至Redis協同控製,業(yè)務(wù)通過訪問Redis實時獲取。
基于Caravel做了二次開發(fā)品質,提供近20種數(shù)據(jù)可視化圖表利用好。底層基于DataHub、Kylin開展攻關合作,用戶還可以自助數(shù)據(jù)接入製度保障、自助建模、自助分析與可視化自行開發。也嘗試過用現(xiàn)成的商業(yè)BI進行部署,但是一些復(fù)雜需求無法實現(xiàn),定制成本太大應用情況,再加上性能不穩(wěn)定放棄了保護好。
在數(shù)據(jù)倉庫/數(shù)據(jù)平臺中,有各種各樣非常多的程序和任務(wù)表現,比如:數(shù)據(jù)采集任務(wù)特點、數(shù)據(jù)同步任務(wù)、數(shù)據(jù)分析任務(wù)等結論。這些任務(wù)除了定時調(diào)度和諧共生,還存在非常復(fù)雜的任務(wù)依靠關(guān)系,比如:數(shù)據(jù)分析任務(wù)必須等相應(yīng)的數(shù)據(jù)采集任務(wù)完成后才能開始適應性強;數(shù)據(jù)同步任務(wù)需要等數(shù)據(jù)分析任務(wù)完成后才能開始技術交流。
這就需要一個非常完善的任務(wù)調(diào)度與監(jiān)控系統(tǒng),它作為數(shù)據(jù)倉庫/數(shù)據(jù)平臺的中樞拓展,負責(zé)調(diào)度和監(jiān)控所有任務(wù)的分配與運行創造更多。關(guān)于大數(shù)據(jù)平臺的任務(wù)調(diào)度與監(jiān)控系統(tǒng),可以說上一萬字不斷進步,后面我會找機會再寫工藝技術,歡迎關(guān)注。
在我看來規模,架構(gòu)并不是技術(shù)越多越新越好近年來,而是在可以滿足需求的情況下,越簡單越穩(wěn)定越好。
目前在我們的數(shù)據(jù)平臺開發(fā)更多的是關(guān)注業(yè)務(wù)技術先進,而不是技術(shù)更多的合作機會。技術(shù)的價值很終還是要通過業(yè)務(wù)來體現(xiàn)。他們把業(yè)務(wù)和需求搞清楚了情況正常,基本上只需要做簡單的SQL開發(fā)行業分類,然后配置到調(diào)度系統(tǒng)就可以了,假如任務(wù)異常提高鍛煉,會收到告警發展邏輯。這樣,可以使更多的資源專注于業(yè)務(wù)之上製高點項目。



如果您覺得 以互聯(lián)網(wǎng)行業(yè)為例談?wù)勅绾螛?gòu)建企業(yè)數(shù)據(jù)平臺倉庫 這篇文章對您有用為產業發展,請分享給您的好友,謝謝
文章地址:http://61py.com/article/online/5360.html
文章地址:http://61py.com/article/online/5360.html

分類列表
換一批
精品推薦
SEO軟件排行榜
推薦文章
- 1互聯(lián)網(wǎng)對傳統(tǒng)企業(yè)的沖擊有多大
- 2美團再因不正當(dāng)競爭敗訴新反法互聯(lián)網(wǎng)專條首次適用外賣領(lǐng)域!
- 32021互聯(lián)網(wǎng)十件大事對不起賈躍亭你只能排第四
- 4互聯(lián)網(wǎng)宣傳做的就是用戶體驗
- 5互聯(lián)網(wǎng)創(chuàng)業(yè)到底需要怎樣的能力
- 6適合上班族的25個副業(yè)(適合上班族的互聯(lián)網(wǎng)副業(yè))
- 7互聯(lián)網(wǎng)的世界沒有永遠的敵人只有永遠的利益
- 8押唄進駐天線貓助力互聯(lián)網(wǎng)數(shù)碼產(chǎn)品寄存行業(yè)經(jīng)濟持續(xù)發(fā)展
- 9互聯(lián)網(wǎng)公司如何做好品牌定位
- 102021年互聯(lián)網(wǎng)金融發(fā)展回顧冬去春欲來改弦當(dāng)更張