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