大家好,我是來自新致金融云大數(shù)據(jù)團(tuán)隊(duì)MATRIX的架構(gòu)師:汪勇。在互聯(lián)網(wǎng)高速發(fā)展的今天,大數(shù)據(jù)技術(shù)越來越頻繁地被應(yīng)用于我們的日常開發(fā)中。而大數(shù)據(jù)BI對于跨系統(tǒng)、非結(jié)構(gòu)化的數(shù)據(jù)處理能力以及處理量級也使其逐漸走進(jìn)了軟件開發(fā)商的視野。伴隨BI的發(fā)展,BI的應(yīng)用范圍越來越廣,而大數(shù)據(jù)BI恰恰可以實(shí)現(xiàn)一些傳統(tǒng)的BI工具實(shí)現(xiàn)不了的數(shù)據(jù)結(jié)果分析,可這是否就意味著大數(shù)據(jù)BI的出現(xiàn)會就此將傳統(tǒng)BI逼入絕境呢?其實(shí)不然,傳統(tǒng)BI在中小型數(shù)據(jù)的處理領(lǐng)域中依然占據(jù)著無可替代的地位,但是我們是否可以將大數(shù)據(jù)BI技術(shù)中的一些思考運(yùn)用到傳統(tǒng)BI技術(shù)開發(fā)中呢?
接下來,我將簡單介紹新致金融云運(yùn)用大數(shù)據(jù)技術(shù)幫助一家大型上市保險(xiǎn)集團(tuán)公司解決傳統(tǒng)BI技術(shù)瓶頸從而提升客戶體驗(yàn)度的實(shí)際案例。
客戶場景
在客戶實(shí)施的數(shù)據(jù)類項(xiàng)目中,用戶經(jīng)常向我部反饋系統(tǒng)查詢速度慢,而這種現(xiàn)象主要集中在運(yùn)營監(jiān)管、數(shù)據(jù)分析等數(shù)據(jù)集中項(xiàng)目中。這具體是怎么回事呢?通過對相關(guān)項(xiàng)目的調(diào)研,我們了解到該系統(tǒng):
1、已有數(shù)據(jù)存量接近或超過1億
2、若干常用的查詢條件字段增加了索引
3、按分公司分區(qū),限制用戶不能跨分公司查詢
4、查詢規(guī)則相對復(fù)雜,包括多項(xiàng)選擇、模糊匹配、表達(dá)式匹配等。
5、單次查詢的速度就在20秒左右,多用戶情況下系統(tǒng)響應(yīng)速度更慢。
需求分析
因該系統(tǒng)的用戶查詢范圍大,且具有不確定性,故將其定義為數(shù)據(jù)探查場景。
在數(shù)據(jù)探查場景中,最終用戶的一個(gè)想法需要快速通過業(yè)務(wù)數(shù)據(jù)進(jìn)行驗(yàn)證,其特點(diǎn)是查詢方式靈活、數(shù)據(jù)范圍大、周期短甚至是一次性的。
需求聽起來不復(fù)雜,但與海量數(shù)據(jù)一結(jié)合,技術(shù)實(shí)現(xiàn)就變得非常不簡單。常用的索引、分區(qū)分表等設(shè)計(jì)期優(yōu)化方案,經(jīng)過實(shí)踐證明都無法起到太好的效果,不是跟不上運(yùn)行期用戶靈活要求,就是極大制約了用戶的查詢行為。而人工提數(shù)則存在理解偏差、工作量大、成本高等問題。
那么是否存在最佳解決方案?答案是肯定的。新致金融云結(jié)合其20余年豐富的行業(yè)經(jīng)驗(yàn)與多年大數(shù)據(jù)技術(shù)積累,積極思考如何將大數(shù)據(jù)技術(shù)融入到實(shí)際業(yè)務(wù)場景中,以此得出結(jié)論,大數(shù)據(jù)探查場景會是一個(gè)好的切入點(diǎn)。
系統(tǒng)目標(biāo)
1、數(shù)據(jù)探查由最終用戶自行操作,減少中間環(huán)節(jié);支持日訪問量1萬用戶。
2、提供基于全庫數(shù)據(jù)量,支持億級數(shù)據(jù)規(guī)模。
3、提供靈活、快速的查詢功能,響應(yīng)時(shí)間控制在3秒以內(nèi)。
4、能夠通過硬件水平擴(kuò)展,有效應(yīng)對數(shù)據(jù)規(guī)模的持續(xù)擴(kuò)容。
5、能與已有應(yīng)用系統(tǒng)無縫整合,無需做大改造。
技術(shù)分析
1、物理層
選擇支持高可用、分區(qū)容錯(cuò)性強(qiáng)的分布式存儲系統(tǒng)。在大數(shù)據(jù)領(lǐng)域不得不提到hadoop hdfs,也包括基于hadoop或仿效hadoop原理的存儲產(chǎn)品。在企業(yè)內(nèi)部定制實(shí)施大數(shù)據(jù)平臺,服務(wù)器數(shù)量不可能動(dòng)則成千上萬,因此我們需要在有限的資源條件下,最大化提升硬件利用率。
2、邏輯層
邏輯層是性能優(yōu)化的關(guān)鍵。早期的大數(shù)據(jù)技術(shù),通過強(qiáng)大的硬件性能暴力掃描數(shù)據(jù)的做法,適合大量日志、平面文件處理的簡單場景。而當(dāng)面對復(fù)雜數(shù)據(jù)訪問過程,且在資源有限條件下,優(yōu)化邏輯存儲結(jié)構(gòu)及算法支撐便顯得尤為重要。
反向索引技術(shù),是先從源數(shù)據(jù)中提取關(guān)鍵字字典,每個(gè)關(guān)鍵字對應(yīng)一組數(shù)據(jù)行號列表。
結(jié)合有限狀態(tài)機(jī)壓縮算法,進(jìn)一步減小查詢時(shí)內(nèi)存使用量。
使用跳躍表技術(shù),同時(shí)掃描多個(gè)字段索引,加快組合查詢速度。
從物理層加載某幾列數(shù)據(jù)時(shí),列式存儲是順序讀取、行式存儲是隨機(jī)讀取,列式存儲明顯具有速度優(yōu)勢。
3、用戶層
大數(shù)據(jù)查詢平臺采用獨(dú)立部署模式,對外提供json數(shù)據(jù)接口。任何web架構(gòu)的應(yīng)用系統(tǒng)均可無縫接入大數(shù)據(jù)查詢平臺 。
實(shí)施過程回顧
我們自今年五月份開始在相關(guān)項(xiàng)目中采用大數(shù)據(jù)技術(shù)解決數(shù)據(jù)探查問題。經(jīng)過多次POC實(shí)踐論證,及項(xiàng)目團(tuán)隊(duì)反復(fù)討論與修改,在六月底正式部署生產(chǎn)環(huán)境,并于七月中旬通過客戶測試進(jìn)行試運(yùn)行。
大數(shù)據(jù)探查系統(tǒng)經(jīng)過loadrunner壓力測試,在100并發(fā)用戶的壓力下,平均響應(yīng)時(shí)間不超過1秒,比原來的查詢速度提高幾十倍以上。相對硬件設(shè)備投入,只有4臺普通IBM服務(wù)器,每臺配置8核cpu.32G內(nèi)存500G硬盤。投入產(chǎn)出比預(yù)期高很多,獲得甲方充分肯定。
由上述實(shí)踐案例可見,雖然大數(shù)據(jù)BI與傳統(tǒng)BI在不同量級的數(shù)據(jù)處理環(huán)節(jié)中各展所長,但是兩者的數(shù)據(jù)處理技術(shù)依然具有相互借鑒的價(jià)值。目前新致金融云主要將大數(shù)據(jù)BI技術(shù)集中應(yīng)用于該系統(tǒng)的返回清單數(shù)據(jù)支持功能,在后續(xù)我們還將根據(jù)客戶要求進(jìn)一步整合系統(tǒng)多維度聚合功能,屆時(shí),新致云將繼續(xù)與大家分享大數(shù)據(jù)BI技術(shù)在傳統(tǒng)BI領(lǐng)域中的應(yīng)用與融合。