传统数仓不够怎么办?不妨看看这个银行的混合数仓实践,建议收藏
隨著銀行業(yè)務(wù)規(guī)模和交易數(shù)量的增長,為了實(shí)現(xiàn)全行統(tǒng)一的數(shù)據(jù)存儲(chǔ)及分析,各商業(yè)銀行普遍實(shí)施了以Teradata、GreenPlum等為代表的中高端數(shù)據(jù)倉庫系統(tǒng)項(xiàng)目,通過匯總銀行內(nèi)部各交易系統(tǒng)的數(shù)據(jù),并根據(jù)數(shù)據(jù)標(biāo)準(zhǔn)化要求,進(jìn)行清洗、轉(zhuǎn)換,最終統(tǒng)一存儲(chǔ)用于行內(nèi)數(shù)據(jù)統(tǒng)計(jì)與分析。
但近幾年,面對互聯(lián)網(wǎng)金融的挑戰(zhàn),銀行業(yè)務(wù)已經(jīng)發(fā)生巨大變化,各種結(jié)構(gòu)化、非結(jié)構(gòu)化海量數(shù)據(jù)蜂擁而至,而基于海量數(shù)據(jù)下的精細(xì)化管理以及快速業(yè)務(wù)決策需求正成為一種普遍情況,對數(shù)據(jù)應(yīng)用的時(shí)效性、復(fù)雜性提出了巨大的挑戰(zhàn)。
因此形成了對傳統(tǒng)數(shù)據(jù)倉庫解決方案的質(zhì)疑:難以支持實(shí)時(shí)數(shù)據(jù)服務(wù)、過高的海量數(shù)據(jù)存儲(chǔ)成本、無法支持非結(jié)構(gòu)化數(shù)據(jù)處理等等。
由此銀行創(chuàng)新的提出了混合型數(shù)據(jù)倉庫架構(gòu),將數(shù)據(jù)倉庫定義擴(kuò)大為全行統(tǒng)一的數(shù)據(jù)服務(wù)中心,整合了內(nèi)存數(shù)據(jù)庫、關(guān)系型數(shù)據(jù)庫、Hadoop等多種數(shù)據(jù)處理技術(shù),根據(jù)不同業(yè)務(wù)場景對數(shù)據(jù)應(yīng)用的需求,靈活提供數(shù)據(jù)服務(wù),同時(shí)滿足低成本、安全性、可用性、敏捷性、自動(dòng)化的需求。
目前該混合架構(gòu)已在該銀行實(shí)現(xiàn)了第一階段的功能落地,對商業(yè)銀行特別是中小型商業(yè)銀行具有重大的借鑒意義。
?
▍一、數(shù)據(jù)應(yīng)用的發(fā)展方向
隨著金融服務(wù)的不斷創(chuàng)新,以及互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,金融機(jī)構(gòu)對于數(shù)據(jù)的應(yīng)用已不再局限于經(jīng)營報(bào)表、管理決策等傳統(tǒng)數(shù)據(jù)分析需要,而是期望在更多的金融服務(wù)場景發(fā)掘數(shù)據(jù)的應(yīng)用價(jià)值。
在這樣的背景下,除了企業(yè)內(nèi)部產(chǎn)生的各類交易和管理數(shù)據(jù),部分金融機(jī)構(gòu)已開始通過從互聯(lián)網(wǎng),以及第三方合作機(jī)構(gòu)獲取外部數(shù)據(jù)進(jìn)行補(bǔ)充;同時(shí)除了已明確定義的結(jié)構(gòu)化數(shù)據(jù)外,也開始嘗試挖掘音頻、視頻、地理信息、文件、資訊信息等無法直接進(jìn)行分析的非結(jié)構(gòu)化數(shù)據(jù)的價(jià)值。
從各個(gè)渠道所獲取的數(shù)據(jù)數(shù)量龐大、種類多樣、實(shí)時(shí)性強(qiáng),傳統(tǒng)的數(shù)據(jù)倉庫技術(shù)難以完全支持相應(yīng)數(shù)據(jù)的處理,因此近幾年大數(shù)據(jù)的概念逐漸流行起來,同時(shí)針對大數(shù)據(jù)的存儲(chǔ)、處理和分析技術(shù)也得到了迅速的發(fā)展,例如Hadoop等開源大數(shù)據(jù)項(xiàng)目。
但大數(shù)據(jù)技術(shù)也存在其局限性,例如Hadoop技術(shù)在超大文件、流數(shù)據(jù)處理、分布處理等方面具有較大優(yōu)勢,但在低延遲數(shù)據(jù)訪問、數(shù)據(jù)多次寫入、大量小文件處理的支持上還存在較大缺陷。
在進(jìn)行數(shù)據(jù)倉庫項(xiàng)目的建設(shè)選型中,采取傳統(tǒng)數(shù)據(jù)倉庫技術(shù)難以支持大數(shù)據(jù)的處理,而采取Hadoop等大數(shù)據(jù)技術(shù)又在傳統(tǒng)數(shù)據(jù)應(yīng)用支持上存在缺陷,因此,銀行提出一種混合型數(shù)據(jù)倉庫架構(gòu),以發(fā)揮各類數(shù)據(jù)技術(shù)的優(yōu)勢,同時(shí)形成技術(shù)短板的互補(bǔ),以應(yīng)對金融機(jī)構(gòu)的各種數(shù)據(jù)應(yīng)用場景需求。
?
▍二、數(shù)據(jù)倉庫的能力設(shè)計(jì)
傳統(tǒng)數(shù)據(jù)倉庫更多用于支撐數(shù)據(jù)分析和數(shù)據(jù)挖掘應(yīng)用,通過分析各種常見業(yè)務(wù)需求,并考慮數(shù)據(jù)倉庫為全行數(shù)據(jù)中心的定位,可以擴(kuò)充數(shù)據(jù)倉庫對于各類業(yè)務(wù)場景的應(yīng)用支持:
(1)實(shí)時(shí)數(shù)據(jù)共享:支持各業(yè)務(wù)系統(tǒng)通過接口查詢數(shù)據(jù)倉庫的各類實(shí)時(shí)數(shù)據(jù),例如支持各渠道系統(tǒng)實(shí)時(shí)展示客戶全資產(chǎn)負(fù)債視圖,由數(shù)據(jù)倉庫實(shí)時(shí)匯集客戶最新的資產(chǎn)負(fù)債信息,則各類渠道系統(tǒng)(如網(wǎng)上銀行、手機(jī)銀行等)只需訪問數(shù)據(jù)倉庫實(shí)時(shí)獲取信息,無需分別到各個(gè)產(chǎn)品系統(tǒng)獲取客戶產(chǎn)品余額再組合;
(2)批量數(shù)據(jù)獲取:支持通過接口或文件方式獲取批量數(shù)據(jù),例如綜合報(bào)表系統(tǒng)通過文件方式批量獲取數(shù)據(jù)倉庫的每日數(shù)據(jù),用于進(jìn)行各類經(jīng)營管理報(bào)表的生成和展示;
(3)歷史數(shù)據(jù)查詢:支持通過接口或文件方式查詢金融機(jī)構(gòu)開業(yè)以來的各類報(bào)表、回單、單據(jù)等靜態(tài)數(shù)據(jù),以及支持查詢開業(yè)以來的各系統(tǒng)的歸檔數(shù)據(jù);
(4)非結(jié)構(gòu)化數(shù)據(jù)處理:支持對文件、影像、視頻、音頻等非結(jié)構(gòu)化數(shù)據(jù)進(jìn)行存儲(chǔ)及查詢訪問。
考慮到以上的各類數(shù)據(jù)應(yīng)用場景,數(shù)據(jù)倉庫架構(gòu)應(yīng)提供以下核心能力支持:
(1)數(shù)據(jù)時(shí)間范圍:可在數(shù)據(jù)倉庫中訪問各個(gè)時(shí)點(diǎn)的數(shù)據(jù),包括當(dāng)日實(shí)時(shí)數(shù)據(jù)和所有歷史數(shù)據(jù);
(2)數(shù)據(jù)訪問性能:可根據(jù)訪問需求保證數(shù)據(jù)的訪問性能,如當(dāng)天的數(shù)據(jù)用于實(shí)時(shí)交易要求在毫秒級響應(yīng);歷史數(shù)據(jù)用于分析挖掘可在分鐘級響應(yīng);
(3)數(shù)據(jù)類型支持:可支持正常結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)和處理,也可支持視頻、音頻、文件等非結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)和處理;
(4)訪問方式支持:可支持?jǐn)?shù)據(jù)的實(shí)時(shí)報(bào)文查詢,也可支持?jǐn)?shù)據(jù)的批量文件查詢;
(5)數(shù)據(jù)標(biāo)準(zhǔn)支持:數(shù)據(jù)倉庫的結(jié)構(gòu)化數(shù)據(jù)應(yīng)遵循數(shù)據(jù)標(biāo)準(zhǔn),以保證外部數(shù)據(jù)使用的易用性和一致性。
?
▍三、混合數(shù)據(jù)倉庫的整體架構(gòu)
基于數(shù)據(jù)倉庫的核心能力設(shè)計(jì),并針對各類數(shù)據(jù)倉庫方案的技術(shù)優(yōu)勢,可按以下架構(gòu)開展數(shù)據(jù)倉庫的建設(shè):
?
數(shù)據(jù)倉庫整體架構(gòu)
根據(jù)數(shù)據(jù)時(shí)間范圍、數(shù)據(jù)訪問性能、訪問方式支持、數(shù)據(jù)類型支持等不同,數(shù)據(jù)倉庫的整體架構(gòu)可分為實(shí)時(shí)數(shù)據(jù)倉庫、歷史數(shù)據(jù)倉庫、歸檔數(shù)據(jù)倉庫、數(shù)據(jù)總線這四大模塊:
(1)實(shí)時(shí)數(shù)據(jù)倉庫
實(shí)時(shí)數(shù)據(jù)倉庫所存儲(chǔ)數(shù)據(jù)時(shí)間范圍為T日的實(shí)時(shí)數(shù)據(jù)及近期(T+7日),主要提供業(yè)務(wù)系統(tǒng)需高訪問頻度數(shù)據(jù),并包含實(shí)時(shí)的輕度匯總數(shù)據(jù)(如客戶資產(chǎn)總額)。其通過源系統(tǒng)信息推送方式實(shí)時(shí)獲取交易系統(tǒng)及外部的數(shù)據(jù),實(shí)現(xiàn)價(jià)值信息實(shí)時(shí)而高效的獲取,為業(yè)務(wù)系統(tǒng)的數(shù)據(jù)查詢和分析型系統(tǒng)的實(shí)時(shí)決策等提供數(shù)據(jù)支持。
由于實(shí)時(shí)數(shù)據(jù)倉庫需要支持?jǐn)?shù)據(jù)的實(shí)時(shí)更新和實(shí)時(shí)訪問,其應(yīng)對場景為需及時(shí)響應(yīng)、高并發(fā)的交易場景,因此在技術(shù)選型上可采用內(nèi)存數(shù)據(jù)庫,利用高效內(nèi)存計(jì)算技術(shù),進(jìn)行實(shí)時(shí)匯總、整合處理,同時(shí)可以支持高頻讀寫的應(yīng)用訪問場景。
(2)歷史數(shù)據(jù)倉庫
歷史數(shù)據(jù)倉庫所存儲(chǔ)數(shù)據(jù)時(shí)間范圍為T+1日至3年,每日日終從全行各源系統(tǒng)批量獲取T+1的數(shù)據(jù),采用統(tǒng)一模型策略,集成全行各業(yè)務(wù)系統(tǒng)有商業(yè)價(jià)值的基礎(chǔ)數(shù)據(jù),實(shí)現(xiàn)對基礎(chǔ)明細(xì)數(shù)據(jù)的存儲(chǔ)、整合和加工處理。
歷史數(shù)據(jù)倉庫的定位和能力要求與傳統(tǒng)的數(shù)據(jù)倉庫一致,主要是為經(jīng)營分析和管理決策提供全方位、多角度、深層次的數(shù)據(jù)支持,滿足分析型應(yīng)用需求,因此可采取傳統(tǒng)的數(shù)據(jù)倉庫技術(shù)搭建。
(3)歸檔數(shù)據(jù)倉庫
歸檔數(shù)據(jù)倉庫所存儲(chǔ)數(shù)據(jù)時(shí)間范圍為3年以上的歷史數(shù)據(jù),以及各類文件、音頻、視頻、圖像等非結(jié)構(gòu)化數(shù)據(jù),主要用于在線長期保存歷史數(shù)據(jù)倉庫、文服和下游各應(yīng)用系統(tǒng)的離線歸檔數(shù)據(jù),為客戶交易明細(xì)歷史查詢等歷史數(shù)據(jù)查詢提供支持,同時(shí)可支持非結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)、查詢和處理。
歸檔數(shù)據(jù)倉庫存儲(chǔ)的數(shù)據(jù)量巨大,且涉及非結(jié)構(gòu)化數(shù)據(jù)的支持,應(yīng)用上較為符合大數(shù)據(jù)的處理要求,因此可采用Hadoop等大數(shù)據(jù)平臺(tái)搭建,除滿足基本的數(shù)據(jù)歸檔和查詢需求外,還可支持后續(xù)對非結(jié)構(gòu)化數(shù)據(jù)及大數(shù)據(jù)處理的擴(kuò)展。
(4)數(shù)據(jù)總線
數(shù)據(jù)總線定位為針對外圍應(yīng)用系統(tǒng)訪問實(shí)時(shí)、歷史、歸檔數(shù)據(jù)倉庫的數(shù)據(jù)查詢服務(wù),通過統(tǒng)一的接口服務(wù),實(shí)現(xiàn)外圍應(yīng)用對跨系統(tǒng)、跨周期數(shù)據(jù)的查詢。數(shù)據(jù)總線提供聯(lián)機(jī)的查詢服務(wù),滿足高并發(fā)、小數(shù)據(jù)量的查詢;對于大數(shù)據(jù)量的查詢,采取異步方式,在數(shù)據(jù)總線中生成數(shù)據(jù)文件后,通過通用文件服務(wù)平臺(tái)進(jìn)行文件的傳輸和處理。
數(shù)據(jù)總線主要是向外圍應(yīng)用提供訪問數(shù)據(jù)倉庫的服務(wù),因此在功能要求上與企業(yè)服務(wù)總線(ESB)類似,可采用企業(yè)服務(wù)總線類似的架構(gòu)和技術(shù)。
?
▍四、混合數(shù)據(jù)倉庫的詳細(xì)設(shè)計(jì)和實(shí)現(xiàn)
1、實(shí)時(shí)數(shù)據(jù)倉庫設(shè)計(jì)
(1)詳細(xì)設(shè)計(jì)
實(shí)時(shí)數(shù)據(jù)倉庫需要滿足實(shí)時(shí)數(shù)據(jù)的大量并發(fā)讀寫和毫秒級響應(yīng)要求,因此在核心技術(shù)選型上選擇基于Redis數(shù)據(jù)庫(一款開源的Key-Value內(nèi)存數(shù)據(jù)庫)搭建,架構(gòu)設(shè)計(jì)如下圖:
?
實(shí)時(shí)數(shù)據(jù)倉庫架構(gòu)設(shè)計(jì)
實(shí)時(shí)數(shù)據(jù)倉庫的架構(gòu)主要分為兩層,數(shù)據(jù)存儲(chǔ)層和應(yīng)用層:
- 數(shù)據(jù)存儲(chǔ)層
數(shù)據(jù)存儲(chǔ)層使用最基本的數(shù)據(jù)庫功能進(jìn)行數(shù)據(jù)模型的落地和數(shù)據(jù)存儲(chǔ),Redis數(shù)據(jù)庫用于存儲(chǔ)交易明細(xì)和輕度匯總數(shù)據(jù),MySQL數(shù)據(jù)庫用于每日日終與歷史數(shù)據(jù)倉庫進(jìn)行明細(xì)數(shù)據(jù)和匯總數(shù)據(jù)的核對,以保證可自動(dòng)發(fā)現(xiàn)由于交易實(shí)時(shí)推送出錯(cuò)導(dǎo)致的數(shù)據(jù)不不一致問題。
其中Redis數(shù)據(jù)庫采用主從集群方式提高讀寫性能和系統(tǒng)可用性,此外也使用Redis數(shù)據(jù)庫的AOF(掉電保護(hù)文件)模式來確保服務(wù)器宕機(jī)后可通過物理文件進(jìn)行數(shù)據(jù)庫的恢復(fù)。
- 應(yīng)用層
由于數(shù)據(jù)存儲(chǔ)層不支持?jǐn)?shù)據(jù)的邏輯處理,需通過應(yīng)用層部署各類數(shù)據(jù)服務(wù)功能,包括數(shù)據(jù)服務(wù)池模塊、事務(wù)處理模塊、批處理模塊、SQL適配器、管理后臺(tái)功能等。
數(shù)據(jù)服務(wù)池:提供對外接口服務(wù)的管理,包括處理標(biāo)準(zhǔn)服務(wù)數(shù)據(jù)的標(biāo)準(zhǔn)組件、處理特殊服務(wù)或業(yè)務(wù)邏輯的專用組件、接口及組件定義的參數(shù)配置和對外服務(wù)的管理發(fā)布。
事務(wù)處理模塊:由于Redis不支持事務(wù),需通過應(yīng)用層的事務(wù)處理模塊實(shí)現(xiàn)事務(wù)提交或回滾,在明細(xì)同步和輕度匯總處理中如果出錯(cuò),需控制進(jìn)行數(shù)據(jù)回滾,保證數(shù)據(jù)的一致性。
批處理模塊:提供日終批次處理服務(wù),主要用于與歷史數(shù)據(jù)倉庫的明細(xì)和匯總數(shù)據(jù)核對處理。
SQL適配器:封裝對Reids和MySQL等數(shù)據(jù)庫的訪問。
管理后臺(tái):向管理員提供系統(tǒng)參數(shù)配置、日志查看、系統(tǒng)運(yùn)行情況監(jiān)控的管理界面功能。
(2)關(guān)鍵技術(shù)總結(jié)
由于實(shí)時(shí)數(shù)據(jù)倉庫采用的Redis數(shù)據(jù)庫為Key-Value類型數(shù)據(jù)庫,與傳統(tǒng)的關(guān)系型數(shù)據(jù)庫無論在數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)還是數(shù)據(jù)查詢語言上都有極大的不同,如果每類數(shù)據(jù)在Redis數(shù)據(jù)庫上的落地都需要進(jìn)行特殊設(shè)計(jì)和開發(fā),將導(dǎo)致后續(xù)的維護(hù)成本非常高。為解決該問題,在方案中實(shí)現(xiàn)了傳統(tǒng)關(guān)系型數(shù)據(jù)庫表結(jié)構(gòu)和Key-Value類型結(jié)構(gòu)的轉(zhuǎn)換模型,以保證關(guān)系型數(shù)據(jù)庫的任意表結(jié)構(gòu)均可直接在Redis數(shù)據(jù)庫上落地;此外也針對Redis數(shù)據(jù)庫設(shè)計(jì)了專用SQL適配器,讓開發(fā)人員可以直接使用標(biāo)準(zhǔn)SQL操作和查詢Reids數(shù)據(jù)庫的數(shù)據(jù)。
- 數(shù)據(jù)存儲(chǔ)模型
a. 關(guān)系型數(shù)據(jù)表的每行記錄在Redis中存儲(chǔ)為一個(gè)Key-Value值;
b. Key值字符串格式為“Detail:表名:主鍵字段1值||主鍵字段2值||…”;如果數(shù)據(jù)表并無主鍵,則自動(dòng)生成一個(gè)不重復(fù)的自增序號作為主鍵,以便可區(qū)分記錄并進(jìn)行數(shù)據(jù)訪問;
c. Value存儲(chǔ)的是一個(gè)Hash類型,存放1行表記錄的所有“字段名-字段值”鍵值對(Key-Value);
d. 如果可確定要訪問數(shù)據(jù)的主鍵值,可通過“HGETALL key”命令直接訪問行記錄的hash對象,或通過“HGET key field”命令獲取記錄指定字段的值;
- 索引模型
對于檢索非主鍵字段值的查詢需求,需要建立相應(yīng)的字段索引,以提高數(shù)據(jù)的訪問速度。
a. 關(guān)系型數(shù)據(jù)表的每個(gè)字段的每一類值,可建立一個(gè)Key-Value鍵值對存儲(chǔ)相應(yīng)的索引信息;
b. 每插入一行數(shù)據(jù),需在現(xiàn)有索引值Key-Value上增加對應(yīng)的key字符串,或新增一類索引值Key-Value鍵值對;
c. 字符型字段的索引Key值字符串格式為“Index:表名:主鍵名:字段名:字段值”,Value值為對應(yīng)記錄主鍵字符串列表;
d. 數(shù)字類型字段的索引Key值字符串格式為“Index:表名:主鍵名:字段名”,Value為sorted-sets結(jié)構(gòu),其中字段值直接作為sorted-sets結(jié)構(gòu)的分?jǐn)?shù)(score),對應(yīng)記錄的主鍵字符串為sorted-sets結(jié)構(gòu)的值,通過對分?jǐn)?shù)(score)排序來提高檢索數(shù)據(jù)的效率;
2、歷史數(shù)據(jù)倉庫設(shè)計(jì)
歷史數(shù)據(jù)倉庫基本沿用傳統(tǒng)數(shù)據(jù)倉庫的技術(shù)方案,方案上與傳統(tǒng)數(shù)據(jù)倉庫的區(qū)別僅在于數(shù)據(jù)標(biāo)準(zhǔn)轉(zhuǎn)換的落地工作在源系統(tǒng)實(shí)現(xiàn),歷史數(shù)據(jù)倉庫內(nèi)部直接使用經(jīng)過數(shù)據(jù)標(biāo)準(zhǔn)轉(zhuǎn)換后的數(shù)據(jù),無需轉(zhuǎn)標(biāo)的處理,架構(gòu)設(shè)計(jì)如下圖:
?
歷史數(shù)據(jù)倉庫架構(gòu)設(shè)計(jì)
歷史數(shù)據(jù)倉庫的設(shè)計(jì)基本采用傳統(tǒng)數(shù)據(jù)倉庫的方案,說明如下:
(1)使用Oracle數(shù)據(jù)庫,通過Oracle RAC實(shí)現(xiàn)數(shù)據(jù)庫的高可用性;
(2)在數(shù)據(jù)倉庫的建設(shè)過程中同步制定相關(guān)的數(shù)據(jù)標(biāo)準(zhǔn),以及設(shè)計(jì)對應(yīng)的數(shù)據(jù)標(biāo)準(zhǔn)接口,由源系統(tǒng)按數(shù)據(jù)標(biāo)準(zhǔn)要求實(shí)現(xiàn)標(biāo)準(zhǔn)轉(zhuǎn)換后,再將已實(shí)現(xiàn)標(biāo)準(zhǔn)轉(zhuǎn)換的數(shù)據(jù)供給數(shù)據(jù)倉庫進(jìn)行處理;
(3)由于數(shù)據(jù)標(biāo)準(zhǔn)已在源系統(tǒng)落地,數(shù)據(jù)倉庫內(nèi)部的層級只設(shè)計(jì)4層,與傳統(tǒng)數(shù)據(jù)倉庫的5層結(jié)構(gòu)有所區(qū)別;
(4)ETL過程與傳統(tǒng)數(shù)據(jù)倉庫方案一致,通過統(tǒng)一調(diào)度服務(wù)實(shí)現(xiàn)ETL的調(diào)度。
?
3、歸檔數(shù)據(jù)倉庫設(shè)計(jì)
歸檔數(shù)據(jù)倉庫主要存儲(chǔ)兩大類數(shù)據(jù),第一是來源于歷史數(shù)據(jù)倉庫的明細(xì)數(shù)據(jù)歸檔,該歸檔為結(jié)構(gòu)化的數(shù)據(jù),通過數(shù)據(jù)總線提供查詢服務(wù);第二是非結(jié)構(gòu)化數(shù)據(jù)歸檔,針對對賬單、報(bào)表等非結(jié)構(gòu)化數(shù)據(jù),可以通過數(shù)據(jù)總線進(jìn)行查詢。
歸檔數(shù)據(jù)倉庫的總體架構(gòu)設(shè)計(jì)如下圖:
?
歸檔數(shù)據(jù)倉庫架構(gòu)設(shè)計(jì)
歸檔數(shù)據(jù)倉庫的核心技術(shù)是利用開源的Hadoop集群及相應(yīng)組件,提供數(shù)據(jù)庫存儲(chǔ)、文件存儲(chǔ)、數(shù)據(jù)檢索、分布計(jì)算等功能,同時(shí)在對外的應(yīng)用層中封裝數(shù)據(jù)交互接口、文件處理、文檔檢索、數(shù)據(jù)查詢等常用功能,對外提供相應(yīng)數(shù)據(jù)服務(wù)。
4、數(shù)據(jù)總線設(shè)計(jì)
數(shù)據(jù)總線功能要求上與企業(yè)服務(wù)總線(ESB)類似,因此采用企業(yè)服務(wù)總線類似的架構(gòu)和技術(shù)實(shí)現(xiàn),總體架構(gòu)設(shè)計(jì)如下圖:
?
數(shù)據(jù)總線架構(gòu)設(shè)計(jì)
數(shù)據(jù)總線的架構(gòu)說明如下:
(1)外部服務(wù)接口層
接收外部WebService請求,經(jīng)過安全模塊檢查通過,發(fā)送報(bào)文消息給消息服務(wù)層,等待消息服務(wù)層返回響應(yīng)交易報(bào)文消息,取回響應(yīng)報(bào)文返回外部。
接受流量監(jiān)控接口層流量進(jìn)行控制。
(2)安全模塊層
進(jìn)行交易報(bào)文的檢查,操作人員權(quán)限檢查,系統(tǒng)安全檢查。
(3)服務(wù)控制層
接收消息服務(wù)層指定消息隊(duì)列消息,分拆請求報(bào)文,發(fā)出調(diào)用數(shù)據(jù)接口交易的消息給消息服務(wù)層,等待消息服務(wù)層返回消息,解析返回消息,組合成響應(yīng)交易報(bào)文,發(fā)送響應(yīng)消息報(bào)文至消息服務(wù)層。
接受流量監(jiān)控服務(wù)層流量進(jìn)行控制。
(4)消息服務(wù)層
接收消息服務(wù)層指定隊(duì)列消息,轉(zhuǎn)發(fā)至指定消息隊(duì)列。對阻塞的消息進(jìn)行緩存,并在適當(dāng)時(shí)候重新載入消息隊(duì)列。
(5)數(shù)據(jù)訪問層
接收消息服務(wù)層指定消息隊(duì)列消息,解析數(shù)據(jù)訪問信息,調(diào)用指定的數(shù)據(jù)訪問適配器,訪問對應(yīng)數(shù)據(jù)倉庫,得到返回?cái)?shù)據(jù),組織成返回消息,發(fā)送至消息服務(wù)層。
接受流量監(jiān)控訪問層流量進(jìn)行控制。
(6)流量控制模塊
監(jiān)控接口層、服務(wù)層、接口層的報(bào)文,依據(jù)設(shè)定的參數(shù)進(jìn)行流量控制。超出流量的直接返回系統(tǒng)流量控制超出信息。
負(fù)載均衡在系統(tǒng)接近流量控制時(shí),啟動(dòng)備機(jī)資源,進(jìn)行負(fù)載均衡。
(7)公共模塊
配置化管理、參數(shù)管理、文件管理。
?
▍五、混合數(shù)據(jù)倉庫的應(yīng)用
銀行在2015年按照混合數(shù)據(jù)倉庫的架構(gòu)進(jìn)行了可行性研究,并于當(dāng)年按照混合架構(gòu)啟動(dòng)了數(shù)據(jù)倉庫項(xiàng)目,該項(xiàng)目于2016年5月完成建設(shè),實(shí)現(xiàn)了混合架構(gòu)中的數(shù)據(jù)總線、實(shí)時(shí)數(shù)據(jù)倉庫、歷史數(shù)據(jù)倉庫的投產(chǎn)和實(shí)際應(yīng)用。
在歷史數(shù)據(jù)倉庫的建設(shè)中,嘗試了源系統(tǒng)落地?cái)?shù)據(jù)標(biāo)準(zhǔn),以標(biāo)準(zhǔn)接口向數(shù)據(jù)倉庫供轉(zhuǎn)換后數(shù)據(jù)的實(shí)施方式,目前已按該模式順利完成了貸款類數(shù)據(jù)的數(shù)據(jù)標(biāo)準(zhǔn)制定及數(shù)據(jù)入倉,并對應(yīng)完成了貸款類數(shù)據(jù)報(bào)送集市的投產(chǎn)應(yīng)用,主要效果如下:
(1)由于入倉數(shù)據(jù)均在源系統(tǒng)進(jìn)行標(biāo)準(zhǔn)轉(zhuǎn)換,可通過該模式推動(dòng)源系統(tǒng)建設(shè)中注重對數(shù)據(jù)標(biāo)準(zhǔn)落地執(zhí)行,以應(yīng)對傳統(tǒng)數(shù)據(jù)倉庫建設(shè)無法推動(dòng)數(shù)據(jù)標(biāo)準(zhǔn)在全行各系統(tǒng)落地執(zhí)行的難點(diǎn);
(2)由于入倉的數(shù)據(jù)均已完成了數(shù)據(jù)標(biāo)準(zhǔn)轉(zhuǎn)換,歷史數(shù)據(jù)倉庫的開發(fā)人員無需熟悉源系統(tǒng)數(shù)據(jù)結(jié)構(gòu),只需專注于業(yè)務(wù)數(shù)據(jù)的處理和應(yīng)用本身,可降低開發(fā)人員的經(jīng)驗(yàn)和能力要求,降低項(xiàng)目實(shí)施難度;
(3)源系統(tǒng)建設(shè)過程中的數(shù)據(jù)結(jié)構(gòu)變更,只需在該源系統(tǒng)上對應(yīng)調(diào)整標(biāo)準(zhǔn)轉(zhuǎn)換邏輯,數(shù)據(jù)倉庫及下游應(yīng)用無需進(jìn)行改造,可有效降低源系統(tǒng)數(shù)據(jù)變更的業(yè)務(wù)影響,并減少數(shù)據(jù)倉庫及下游應(yīng)用的成本投入。
混合型數(shù)據(jù)倉庫架構(gòu)的應(yīng)用,不僅改變了數(shù)據(jù)倉庫項(xiàng)目的實(shí)施方式和技術(shù)選型,更重要的是擴(kuò)展了數(shù)據(jù)倉庫的在實(shí)時(shí)數(shù)據(jù)和大數(shù)據(jù)兩方面的服務(wù)能力,讓數(shù)據(jù)倉庫的應(yīng)用不再局限于報(bào)表展示、分析決策等交易后的業(yè)務(wù)場景,而是可以直接為交易前、交易中的業(yè)務(wù)處理提供數(shù)據(jù)支持,進(jìn)一步擴(kuò)大了數(shù)據(jù)應(yīng)用的價(jià)值體現(xiàn)。
歡迎關(guān)注我的公眾號“商業(yè)智能研究”,私信回復(fù)“資料包”,即可領(lǐng)取大數(shù)據(jù)、數(shù)據(jù)中臺(tái)、商業(yè)智能、數(shù)據(jù)倉庫等6G精華資料!
總結(jié)
以上是生活随笔為你收集整理的传统数仓不够怎么办?不妨看看这个银行的混合数仓实践,建议收藏的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用企业实例说明,制造业如何打破4大困境,
- 下一篇: 整理了一份「生产管理数据分析」方案,解决