隨著互聯(lián)網(wǎng)的發(fā)展進(jìn)入下半場(chǎng),數(shù)據(jù)的時(shí)效性對(duì)企業(yè)的精細(xì)化運(yùn)營(yíng)越來越重要。商場(chǎng)如戰(zhàn)場(chǎng),在每天產(chǎn)生的海量數(shù)據(jù)中,如何實(shí)時(shí)挖掘有價(jià)值的信息并快速觸達(dá)客戶,對(duì)企業(yè)的運(yùn)營(yíng)決策調(diào)整、用戶體驗(yàn)提升等都有很大幫助。為了讓數(shù)據(jù)更高效的反哺業(yè)務(wù)、更及時(shí)地支撐決策,最大化發(fā)揮數(shù)據(jù)價(jià)值,企業(yè)開始探索通過構(gòu)建實(shí)時(shí)數(shù)倉(cāng)來滿足快速獲取數(shù)據(jù)的需求。
實(shí)時(shí)數(shù)據(jù)倉(cāng)庫(kù)集實(shí)時(shí)數(shù)據(jù)采集、實(shí)時(shí)數(shù)據(jù)處理、離線數(shù)據(jù)校正和數(shù)據(jù)定制化展示4大功能一體,可支持實(shí)時(shí)經(jīng)營(yíng)分析、實(shí)時(shí)營(yíng)銷、實(shí)時(shí)風(fēng)控等場(chǎng)景的需求。新場(chǎng)景的出現(xiàn)催產(chǎn)出新的技術(shù),新一代實(shí)時(shí)計(jì)算引擎Flink的興起,在超高性能、數(shù)據(jù)一致性保障、SQL化編程方式等特點(diǎn)下也推動(dòng)了實(shí)時(shí)數(shù)倉(cāng)的發(fā)展。基于Flink架構(gòu)的實(shí)時(shí)數(shù)倉(cāng)為各類實(shí)時(shí)應(yīng)用場(chǎng)景提供數(shù)據(jù)基礎(chǔ),在數(shù)據(jù)中臺(tái)體系中起著至關(guān)重要的作用。
長(zhǎng)亮科技作為金融科技領(lǐng)先企業(yè),也對(duì)實(shí)時(shí)數(shù)倉(cāng)建設(shè)做了大量的嘗試和實(shí)踐。本文將以長(zhǎng)亮科技參與建設(shè)的某城商行實(shí)時(shí)數(shù)倉(cāng)建設(shè)項(xiàng)目為引子,分享基于Flink技術(shù)組件建設(shè)實(shí)時(shí)數(shù)倉(cāng)的經(jīng)驗(yàn)。
某城商行實(shí)時(shí)數(shù)倉(cāng)建設(shè)方案
實(shí)時(shí)數(shù)倉(cāng)建設(shè)在保證數(shù)據(jù)準(zhǔn)確性的情況,最優(yōu)先考慮的問題就是如何保證數(shù)據(jù)的實(shí)時(shí)性,因此Kafka、Hbase這類讀寫效率較高的技術(shù)組件成為實(shí)時(shí)數(shù)倉(cāng)數(shù)據(jù)交換組件的首選。根據(jù)選型組件的特性以及實(shí)時(shí)性的要求,實(shí)時(shí)數(shù)倉(cāng)架構(gòu)分層需注意以下幾點(diǎn):
· 簡(jiǎn)化鏈路,盡可能縮減數(shù)據(jù)處理鏈路,最大化保證數(shù)據(jù)實(shí)時(shí)性;
· 實(shí)時(shí)數(shù)倉(cāng)數(shù)據(jù)流轉(zhuǎn)在Kafka去結(jié)構(gòu)化消息隊(duì)列,數(shù)倉(cāng)各層需分工明確,方便操作人員對(duì)數(shù)據(jù)進(jìn)行回溯、定位;
· 準(zhǔn)備離線數(shù)據(jù)對(duì)實(shí)時(shí)數(shù)據(jù)的校驗(yàn),防止計(jì)算錯(cuò)誤或者遺漏的情況;
· 因?yàn)閷?shí)時(shí)數(shù)倉(cāng)任務(wù)均為7x24不間斷運(yùn)行,如果出現(xiàn)意外情況某一層鏈路終端,實(shí)時(shí)數(shù)倉(cāng)就會(huì)出現(xiàn)斷數(shù)的情況,這時(shí)候需要離線數(shù)據(jù)保證查詢服務(wù)可以正常返回?cái)?shù)據(jù)。
綜上所述,實(shí)時(shí)數(shù)倉(cāng)構(gòu)建分為4層,各層具體說明如下:
· RTL:技術(shù)解析層,通過數(shù)據(jù)采集工具收集各個(gè)業(yè)務(wù)源數(shù)據(jù),數(shù)據(jù)結(jié)構(gòu)保持一致;
· ROL:貼源層,分為實(shí)時(shí)區(qū)和離線區(qū)兩個(gè)區(qū)域,實(shí)時(shí)區(qū)存放經(jīng)過一定清洗/標(biāo)準(zhǔn)化的數(shù)據(jù),離線區(qū)存放每日同步的離線維度數(shù)據(jù);
· RCL:匯總共享層,存放輕度匯總和可以共享的數(shù)據(jù),數(shù)據(jù)按照一定規(guī)則進(jìn)行分類,達(dá)到可以復(fù)用的目的;
· RDL:數(shù)據(jù)服務(wù)層,將RCL層數(shù)據(jù)進(jìn)行指標(biāo)化加工,包括分析、應(yīng)用匯總類指標(biāo)以及明細(xì)數(shù)據(jù);分為實(shí)時(shí)區(qū)和離線區(qū),實(shí)時(shí)區(qū)存放實(shí)時(shí)指標(biāo)結(jié)果,離線區(qū)存放每日離線指標(biāo)結(jié)果,用于數(shù)據(jù)保底與實(shí)時(shí)數(shù)據(jù)校驗(yàn)。
不同場(chǎng)景下的實(shí)時(shí)數(shù)據(jù)處理鏈路
實(shí)時(shí)數(shù)據(jù)應(yīng)用包含實(shí)時(shí)指標(biāo)計(jì)算、流式傳輸、實(shí)時(shí)風(fēng)控、實(shí)時(shí)營(yíng)銷、實(shí)時(shí)對(duì)客等多種業(yè)務(wù)場(chǎng)景。基于FlinkSQL+OLAP的生產(chǎn)鏈路,實(shí)時(shí)數(shù)據(jù)通過采集工具同步至消息隊(duì)列進(jìn)行承載,再經(jīng)由實(shí)時(shí)數(shù)倉(cāng)進(jìn)行業(yè)務(wù)加工后,落地到各類存儲(chǔ),最后由下游業(yè)務(wù)系統(tǒng)接收處理或者由數(shù)據(jù)服務(wù)平臺(tái)推送給各類終端進(jìn)行展示,整條鏈路兼顧了數(shù)據(jù)的時(shí)效性與查詢的高效性。
在某城商行實(shí)時(shí)數(shù)倉(cāng)建設(shè)項(xiàng)目中,其主要業(yè)務(wù)場(chǎng)景包括實(shí)時(shí)資產(chǎn)負(fù)債、實(shí)時(shí)管理駕駛艙以及實(shí)時(shí)監(jiān)管數(shù)據(jù)監(jiān)測(cè)等。
場(chǎng)景一:實(shí)時(shí)資產(chǎn)負(fù)債:實(shí)時(shí)獲取各業(yè)務(wù)系統(tǒng)用戶動(dòng)賬后的余額,通過關(guān)聯(lián)相關(guān)維度信息補(bǔ)充數(shù)據(jù)到結(jié)果表,后續(xù)由前端查詢實(shí)時(shí)結(jié)果表返回?cái)?shù)據(jù);
通過構(gòu)建實(shí)時(shí)、離線兩張Hbase結(jié)果表并實(shí)時(shí)比對(duì)的方式應(yīng)對(duì)用戶對(duì)實(shí)時(shí)交易、不動(dòng)帳的實(shí)時(shí)查詢需求,相比于采取“昨日離線余額+今日實(shí)時(shí)發(fā)生額”的原始查詢方案,更能提升查詢結(jié)果的時(shí)效性,規(guī)避了每日日切時(shí)間與跑批時(shí)間段的空窗期數(shù)據(jù)時(shí)效性的問題。
場(chǎng)景二:實(shí)時(shí)管理駕駛艙:通過實(shí)時(shí)獲取交易動(dòng)賬,對(duì)全行級(jí)別的資金流入流出金額、客戶資產(chǎn)、申貸金額及人數(shù)等指標(biāo)進(jìn)行實(shí)時(shí)展示;
以實(shí)時(shí)資金流入流出統(tǒng)計(jì)為例,對(duì)當(dāng)日交易動(dòng)賬數(shù)據(jù)按照指標(biāo)粒度進(jìn)行分組聚合,保證每個(gè)粒度在RDL層rowkey相同,每獲取到一條動(dòng)賬信息,計(jì)算出最新的資金金額后根據(jù)rowkey實(shí)時(shí)更新hbase表結(jié)果數(shù)據(jù)。
場(chǎng)景三:實(shí)時(shí)監(jiān)管數(shù)據(jù)監(jiān)測(cè):根據(jù)制定的監(jiān)管命中邏輯對(duì)當(dāng)日交易流水進(jìn)行監(jiān)控,符合命中邏輯的數(shù)據(jù)發(fā)送到下游進(jìn)行交易限制等處理;
以涉賭涉詐需求為例,監(jiān)管命中邏輯為在非柜面系統(tǒng)中,連續(xù)發(fā)生涉及5個(gè)不同用戶名及以上的收款、轉(zhuǎn)賬等資金交易,且每筆交易間隔不超過3分鐘、每筆金額在0.01-10元。此類場(chǎng)景可基于Flink的over窗口功能與事件時(shí)間,通過計(jì)算交易流水前后一段時(shí)間內(nèi)對(duì)手客戶數(shù)量及交易金額,判斷是否滿足命中邏輯,從而打上命中標(biāo)記發(fā)往下游系統(tǒng)。
通過采用Flink技術(shù)構(gòu)建實(shí)時(shí)數(shù)倉(cāng),我們將數(shù)據(jù)生產(chǎn)的各個(gè)環(huán)節(jié)抽象化形成實(shí)時(shí)數(shù)倉(cāng)的各層架構(gòu),實(shí)現(xiàn)了全棧實(shí)時(shí)數(shù)據(jù)應(yīng)用的數(shù)據(jù)源統(tǒng)一,保障了應(yīng)用數(shù)據(jù)指標(biāo)和維度的口徑一致,助力獲取實(shí)時(shí)數(shù)據(jù)的便捷性和時(shí)效性大大提升,從而提升客戶的整體運(yùn)營(yíng)效率。
結(jié)語:
在當(dāng)前數(shù)字化轉(zhuǎn)型大潮中,實(shí)時(shí)數(shù)據(jù)倉(cāng)庫(kù)的建設(shè)作為數(shù)據(jù)中臺(tái)體系的重要組成部分,對(duì)金融機(jī)構(gòu)而言意義重大。而長(zhǎng)亮科技在實(shí)時(shí)數(shù)據(jù)處理領(lǐng)域有豐富的實(shí)施經(jīng)驗(yàn),已為中國(guó)銀行、南京銀行、柳州銀行等不同規(guī)模的銀行提供了實(shí)時(shí)數(shù)據(jù)處理解決方案。未來,長(zhǎng)亮科技將在實(shí)時(shí)數(shù)倉(cāng)領(lǐng)域探索更多新業(yè)務(wù)形態(tài)的落地,助力客戶高效挖掘數(shù)據(jù)價(jià)值、反哺業(yè)務(wù)發(fā)展!