【正文】
PIW e b 服 務(wù) 器用 戶 層訪 問 控 制 層系統(tǒng)管理財(cái) 務(wù) 系 統(tǒng)數(shù)據(jù)落地區(qū)ETL開發(fā)E T Lloade x p o r t集 市 應(yīng) 用Export國(guó) 結(jié) 系 統(tǒng)其 他 系 統(tǒng)渠 道 系 統(tǒng)人 力 系 統(tǒng)系統(tǒng)管理維護(hù)人員數(shù) 據(jù) 平 臺(tái) 層匯 總 模 型 層F i l eETL開發(fā)多 維 模 型 層操作型功能一線業(yè)務(wù)使用人員E T LJ D B CE D W靈 活 查 詢 / K P I駕 駛 艙 系 統(tǒng)個(gè) 貸 系 統(tǒng)核 心 系 統(tǒng)對(duì) 公 信 貸手 工 數(shù) 據(jù)P a g e B e a nSessionBeanApp。 源數(shù)據(jù)層【功能與作用】總行的各個(gè)業(yè)務(wù)系統(tǒng)為整個(gè) EDW 系統(tǒng)提供原始數(shù)據(jù)支持,首先作為 ETL 層的數(shù)據(jù)抽取源。? 在數(shù)據(jù)存儲(chǔ)區(qū)中進(jìn)行基礎(chǔ)數(shù)據(jù)層、加工匯總層和應(yīng)用集市層的數(shù)據(jù)加載。ETL 調(diào)度管里最基本的可執(zhí)行元素是單元,每個(gè)單元是完成某一特定功能的程序,相關(guān)單元組合在一起構(gòu)成了可以調(diào)度的最小組件——任務(wù)。? 任務(wù)執(zhí)行代理調(diào)用任務(wù)包含的每個(gè)單元執(zhí)行的服務(wù),同一服務(wù)器上可以有多個(gè)任務(wù)執(zhí)行代理同時(shí)運(yùn)行。作為專門為數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)設(shè)計(jì)的流程調(diào)度管理具有如下特點(diǎn):? 任務(wù)執(zhí)行代理可分布在多臺(tái)服務(wù)器上。? 可以啟動(dòng)其它的 ETL 引擎的任務(wù)。詳細(xì)內(nèi)容參見“EDW 數(shù)據(jù)架構(gòu)” 數(shù)據(jù)集市層【功能與作用】數(shù)據(jù)集市是一組特定的、針對(duì)某個(gè)主題域、部門或用戶分類的數(shù)據(jù)集合。 應(yīng)用服務(wù)層【功能與作用】通過對(duì)數(shù)據(jù)平臺(tái)層中的數(shù)據(jù)進(jìn)行適當(dāng)?shù)奶釤挕R總,利用通用展現(xiàn)平臺(tái)向用戶提供包括報(bào)表服務(wù)、查詢服務(wù)、決策儀表盤等相關(guān)服務(wù)。 訪問控制層【功能與作用】訪問控制層主要包括 WEB、認(rèn)證、安全、門戶四方面的服務(wù)。所有用戶統(tǒng)一通過用戶門戶訪問 EDW 系統(tǒng)各類應(yīng)用,從而實(shí)現(xiàn)了 EDW 系統(tǒng)的應(yīng)用界面、安全管理統(tǒng)一,同時(shí)用戶可以對(duì)門戶進(jìn)行個(gè)性化定制以方便自己使用。這類用戶會(huì)使用 B/S 和 C/S 兩種客戶端訪問 EDW 系統(tǒng)。這類用戶會(huì)使用 B/S 和 C/S 兩種客戶端訪問 EDW 系統(tǒng)。這類用戶只會(huì)使用 B/S 客戶端訪問 EDW 系統(tǒng)。? 數(shù)據(jù)安全提供各種基于數(shù)據(jù)庫(kù)的安全保護(hù)機(jī)制。清楚地區(qū)分?jǐn)?shù)據(jù)庫(kù)中的數(shù)據(jù)和元數(shù)據(jù)是很重要的,所謂元數(shù)據(jù),是指關(guān)于數(shù)據(jù)的數(shù)據(jù),即用來描述數(shù)據(jù)的類型、來源、定義、存儲(chǔ)位置,使得可以正確地使用數(shù)據(jù)倉(cāng)庫(kù)。在本期 EDW 系統(tǒng)的建設(shè)中,包括技術(shù)元數(shù)據(jù)和業(yè)務(wù)元數(shù)據(jù)兩類,其數(shù)據(jù)源涵蓋了 EDW 系統(tǒng)的各個(gè)環(huán)節(jié),包括:數(shù)據(jù)源系統(tǒng)、EDW 數(shù)據(jù)庫(kù)、EDW 邏輯數(shù)據(jù)模型、ETL 系統(tǒng)、業(yè)務(wù)應(yīng)用系統(tǒng)等,同時(shí),還將涉及數(shù)據(jù)的業(yè)務(wù)含義和業(yè)務(wù)規(guī)則等相關(guān)業(yè)務(wù)文檔。ETL Server 可通過 ds job,FTP,NFS 等方式從數(shù)據(jù)落地區(qū)獲取數(shù)據(jù),將處理后的結(jié)果放在數(shù)據(jù)準(zhǔn)備區(qū)域。整個(gè)過程通過調(diào)度工具進(jìn)行統(tǒng)一調(diào)度,集中管理,確保各項(xiàng)任務(wù)有序完成。各個(gè)組件的主要功能如下:? 系統(tǒng)監(jiān)控管理組件:監(jiān)控網(wǎng)絡(luò)/系統(tǒng)性能、運(yùn)行,以及診斷和報(bào)告故障。這個(gè)組件根據(jù)備份策略,通過對(duì)數(shù)據(jù)的冗余存儲(chǔ)來保證系統(tǒng)可以從各種服務(wù)中斷中恢復(fù)。? 性能容量規(guī)劃組件:性能及容量規(guī)劃從環(huán)境中的不同元素收集利用數(shù)據(jù),并規(guī)劃硬件和軟件能力需求。日常操作流程是指 IT 用戶在日常為維護(hù)生產(chǎn)環(huán)境正常運(yùn)轉(zhuǎn)需要做的工作,如:數(shù)據(jù)倉(cāng)庫(kù)管理、系統(tǒng)監(jiān)控、備份恢復(fù)、容量規(guī)劃。應(yīng)監(jiān)控所有的關(guān)鍵數(shù)據(jù)庫(kù)/數(shù)據(jù)倉(cāng)庫(kù)性能比例,以保證高可用性和性能。? 安全管理:運(yùn)維架構(gòu)中涉及的安全管理內(nèi)容主要包括身份管理、系統(tǒng)級(jí)密鑰和證書管理、安全策略管理。24 / 47? 變更管理允許對(duì)技術(shù)架構(gòu)組件進(jìn)行變更的控制管理。? 最低程度地降低數(shù)據(jù)丟失。當(dāng)發(fā)生故障或失敗時(shí),該切換發(fā)生在主系統(tǒng)和備份系統(tǒng)之間。性能容量規(guī)劃包括如下組件:? 信息收集:收集性能容量相關(guān)的重要分析數(shù)據(jù);? 性能管理:對(duì)系統(tǒng)系統(tǒng)性能進(jìn)行監(jiān)控、管理、分析和調(diào)優(yōu);? 性能容量規(guī)劃:基于歷史趨勢(shì)和未來性能容量需求進(jìn)行規(guī)劃;性能容量規(guī)劃的主要任務(wù)及工具支持如下圖所示: 運(yùn)維安全管理安全管理組件通過制定和管理安全策略,并利用安全工具,維護(hù)信息系統(tǒng)資產(chǎn)(包括硬件、軟件、固件、用戶數(shù)據(jù)、信息/數(shù)據(jù))的機(jī)密性、一致性和可用性。 EDW 數(shù)據(jù)架構(gòu) 數(shù)據(jù)架構(gòu)設(shè)計(jì)原則? 統(tǒng)一規(guī)范對(duì)各源系統(tǒng)數(shù)據(jù)按主題進(jìn)行統(tǒng)一整合;分行特色也按統(tǒng)一規(guī)范進(jìn)行補(bǔ)充建設(shè)。28 / 47? 高效原則數(shù)據(jù)模型面臨海量數(shù)據(jù)的加工和存儲(chǔ),隨著時(shí)間的推移,數(shù)據(jù)將不斷累積,因此效率問題是直接影響系統(tǒng)可用性的關(guān)鍵因素。? 存儲(chǔ)空間合理性原則數(shù)據(jù)模型需要處理海量數(shù)據(jù)。因此數(shù)據(jù)和信息不能隨意堆積存放到數(shù)據(jù)庫(kù)中,需要對(duì)全行的數(shù)據(jù)和信息進(jìn)行分層、分類存放,并制定相應(yīng)的數(shù)據(jù)分層、分類的規(guī)范,EDW 系統(tǒng)上所有數(shù)據(jù)和應(yīng)用的建設(shè)都應(yīng)遵從統(tǒng)一的數(shù)據(jù)管理規(guī)范。? 標(biāo)準(zhǔn)化全量層? 基礎(chǔ)數(shù)據(jù)層數(shù)據(jù)模型基礎(chǔ)數(shù)據(jù)模型用于整合、存儲(chǔ)全行各業(yè)務(wù)系統(tǒng)的基礎(chǔ)業(yè)務(wù)數(shù)據(jù)。在基礎(chǔ)據(jù)模型中按照八大主題對(duì)銀行全行數(shù)據(jù)進(jìn)行整合、分類組織和存儲(chǔ),這八大主題包括總帳(GL)、客戶(CI)、存款(DEP)、貸款(LN)、銀行卡(CRD)、中間業(yè)務(wù)(NIN)、渠道(CHN)、公用(CM);每個(gè)主題下設(shè)計(jì)相應(yīng)的數(shù)據(jù)模型,最后構(gòu)成全行統(tǒng)一的基礎(chǔ)數(shù)據(jù)模型。加工匯總數(shù)據(jù)層下的匯總需求由“應(yīng)用需要”來確定。數(shù)據(jù)集市中可存在操作型數(shù)據(jù)、匯總型數(shù)據(jù)和多維分析數(shù)據(jù),根據(jù)應(yīng)用的需要分別進(jìn)行建立。EDW 系統(tǒng)的應(yīng)用架構(gòu)應(yīng)該能夠作為需求檢查列表,檢驗(yàn)當(dāng)前用戶需求是否被涵蓋,而不會(huì)發(fā)生遺漏。EDW 數(shù)據(jù)采集、加工、發(fā)布的范圍包括:? 總行各應(yīng)用系統(tǒng)之間? 總行與分行應(yīng)用系統(tǒng)之間? 同一分行應(yīng)用系統(tǒng)間? 不同分行應(yīng)用系統(tǒng)間? 分布部署的同一應(yīng)用系統(tǒng)間EDW 數(shù)據(jù)服務(wù)具備的能力有:? EDW 快速提供批量數(shù)據(jù),可以滿足應(yīng)用系統(tǒng)準(zhǔn)實(shí)時(shí)的數(shù)據(jù)要求。33 / 47 應(yīng)用服務(wù)基于數(shù)據(jù)分析功能和交易功能分離原則,為保證交易系統(tǒng)運(yùn)行效率和數(shù)據(jù)分析功能日益增加的需求,新系統(tǒng)設(shè)計(jì)時(shí),應(yīng)該將數(shù)據(jù)分析功能和交易功能分離到不同系統(tǒng)中,或者至少為將來分離做好技術(shù)準(zhǔn)備。通過高效的 ETL 系統(tǒng)結(jié)構(gòu)、層次化的應(yīng)用功能劃分和標(biāo)準(zhǔn)的程序模板,EDW 系統(tǒng)能夠達(dá)到以下目標(biāo):? 支持在此框架下實(shí)現(xiàn)EDW項(xiàng)目所需要的ETL功能;? 支持在規(guī)定的批處理時(shí)間窗口(Batch Window)內(nèi)能夠完成數(shù)據(jù)加載工作,即需要滿足日常數(shù)據(jù)加載的性能需求;? 能夠支持有效的應(yīng)用程序開發(fā)模式,提高開發(fā)效率,盡量減少應(yīng)用開發(fā)成本;? 減少系統(tǒng)維護(hù)的復(fù)雜性,支持后續(xù)增加新數(shù)據(jù)或功能的開發(fā)工作。ETL 轉(zhuǎn)換清洗通過連接、合并、分割,按照清洗規(guī)則對(duì)數(shù)據(jù)緩沖區(qū)、數(shù)據(jù)存儲(chǔ)區(qū)的數(shù)據(jù)進(jìn)行加工、匯總,最終裝載入數(shù)據(jù)存儲(chǔ)區(qū)。對(duì)源數(shù)據(jù)做數(shù)據(jù)平衡檢查、稽核數(shù)據(jù)有效性,報(bào)告數(shù)據(jù)質(zhì)量問題。? ETL3:屬于ETL轉(zhuǎn)換。從數(shù)據(jù)倉(cāng)庫(kù)FDM層進(jìn)行適量的維度、指標(biāo)建模。本模式提供EDW允許的相應(yīng)時(shí)間段的歷史數(shù)據(jù)支持。 ETL 設(shè)計(jì)方案 ETL 關(guān)鍵設(shè)計(jì)環(huán)節(jié) 接口層設(shè)計(jì)策略將數(shù)據(jù)源環(huán)境下的數(shù)據(jù)裝載進(jìn)入 EDW 環(huán)境,需要在兩個(gè)不同環(huán)境的記錄系統(tǒng)之間建立一個(gè)接口。Staging Area 的作用與實(shí)現(xiàn):1. 減少對(duì)數(shù)據(jù)源的查詢壓力,有助于數(shù)據(jù)整合。3. 對(duì)數(shù)據(jù)的格式進(jìn)行轉(zhuǎn)換在 Staging Area 完成數(shù)據(jù)格式的轉(zhuǎn)換,例如日期格式、字符串右邊的空格、NULL 值的替換、數(shù)據(jù)類型轉(zhuǎn)換等。歷史數(shù)據(jù)加載指在第一次加載數(shù)據(jù)到數(shù)據(jù)倉(cāng)庫(kù)中,此時(shí)數(shù)據(jù)倉(cāng)庫(kù)中不存在歷史數(shù)據(jù)。對(duì)于歷史數(shù)據(jù)加載的策略,我們可以采用時(shí)間窗口的分段的方法來處理歷史數(shù)據(jù)量大的表的裝載,即我們可以一個(gè)一個(gè)時(shí)間段來加載歷史數(shù)據(jù)。2. 自增長(zhǎng)的序列號(hào)源系統(tǒng)設(shè)置了自增長(zhǎng)的序列號(hào)作為唯一主鍵。一般數(shù)據(jù)庫(kù)均包括日志,通過分析數(shù)據(jù)庫(kù)的日志來判斷增量數(shù)據(jù)。缺點(diǎn)是必須對(duì)業(yè)務(wù)數(shù)據(jù)庫(kù)進(jìn)行改動(dòng),客戶不一定能接受。錯(cuò)誤的恢復(fù)策略:? 每條記錄中有數(shù)據(jù) ETL 的時(shí)間戳,對(duì)小數(shù)據(jù)量的數(shù)據(jù)表,可以通過該時(shí)間戳清除掉本次加載的數(shù)據(jù)。 作業(yè)調(diào)度和監(jiān)控根據(jù)作業(yè)依賴關(guān)系的元數(shù)據(jù)進(jìn)行 ETL 作業(yè)的調(diào)度,并對(duì)執(zhí)行過程進(jìn)行監(jiān)控。需要定義:源數(shù)據(jù)結(jié)構(gòu)、目標(biāo)數(shù)據(jù)結(jié)構(gòu)、源和目標(biāo)的映射(包括定制映射的方案、定制映射調(diào)用的函數(shù)、定制清洗的方案)、作業(yè)處理日志以及作業(yè)依賴關(guān)系。? ETL 域:ETL 架構(gòu)中基本的計(jì)算資源組合,是一個(gè)計(jì)算機(jī)群,由 JCI統(tǒng)一管理和控制,一個(gè) ETL 域由一個(gè) ETL Server 和多個(gè) ETL 41 / 47Client 組成。任務(wù)調(diào)度模塊在 EDWH+EDWB 統(tǒng)一模塊中,調(diào)度是由部署在總行的調(diào)度 SERVER 統(tǒng)一完成調(diào)度工作,或者由部署在分行的調(diào)度 Server 完成本分行作業(yè)的調(diào)度??傂杏幸粋€(gè)或多個(gè)總行的 ETL 域,分行有本分行的 ETL 域。ETL SERVER 主要負(fù)責(zé) ETL JOB 的具體執(zhí)行。42 / 47ETL CLIENT 主要負(fù)責(zé) ETL SERVER 分配的作業(yè)模塊的具體執(zhí)行,是作業(yè)的具體執(zhí)行者。如果實(shí)際運(yùn)行 JOB 的 ETL CLIENT 資源不足,經(jīng)常處于高負(fù)荷狀態(tài),則可以通過增加 ETL CLIENT 來提高運(yùn)行效率。管理類數(shù)據(jù)庫(kù)存放的是作業(yè)運(yùn)行控制相關(guān)的數(shù)據(jù)信息,如系統(tǒng)配置參數(shù)或作業(yè)配置信息、狀態(tài)信息和運(yùn)行日志信息等。管理庫(kù)的信息分為三類:? 系統(tǒng)參數(shù)和作業(yè)配置信息:靜態(tài)參數(shù);? 狀態(tài)信息: 屬于控制類的動(dòng)態(tài)信息;? 日志信息; ETL 流程設(shè)計(jì)系統(tǒng) ETL 設(shè)計(jì)流程如下圖:43 / 47本系統(tǒng) ETL 處理流程順序概要描述如下:1. 調(diào)度程序在總行的調(diào)度服務(wù)器上面運(yùn)行,當(dāng)調(diào)度程序發(fā)現(xiàn)某個(gè)作業(yè)符合調(diào)度條件,就對(duì)其進(jìn)行調(diào)度,將該 JOB 的 ID 發(fā)給該 JOB 所在域的ETL SERVER。5. ETL SERVER 在得到 JOB 運(yùn)行的結(jié)點(diǎn)個(gè)數(shù)和能夠運(yùn)行該 JOB 的結(jié)點(diǎn)列表后,根據(jù)本域的管理類數(shù)據(jù)庫(kù)中結(jié)點(diǎn)的使用情況表,按照一定的策略對(duì)能夠運(yùn)行該 JOB 的結(jié)點(diǎn)列表進(jìn)行排序,選出最優(yōu)的若干個(gè) ETL CLIENT。7. ETL SERVER 得到 ETL CLIENT 的反饋信息后,將其寫入日志,并設(shè)置JOB 的狀態(tài),同時(shí)釋放結(jié)點(diǎn)的資源??蛻舳伺c服務(wù)端采用 C/S 通信模式,通過 TCP 協(xié)議傳送信息,這樣做的好處是:? 避免工作節(jié)點(diǎn)直接訪問管理庫(kù),訪問管理庫(kù)的工作統(tǒng)一ETL Server來完成,從而提高了應(yīng)用部署的適應(yīng)能力;46 / 47? ETL Server可以據(jù)此檢測(cè)所有工作節(jié)點(diǎn)是否存在故障;客戶端負(fù)責(zé)采集信息發(fā)送到服務(wù)端,服務(wù)端接收信息,并寫到數(shù)據(jù)庫(kù)。在 EDW 中,將由成千上萬(wàn)的作業(yè)來完成數(shù)據(jù)整和的功能,這些作業(yè)由于復(fù)雜度不同,運(yùn)行頻度不同,甚至是同一個(gè)作業(yè),由于數(shù)據(jù)來源不同(例如不同的分行),數(shù)據(jù)規(guī)模也是相差甚遠(yuǎn)的,因此如果對(duì)所有的作業(yè)使用相同的配置文件,將對(duì)系統(tǒng)。服務(wù)端與客戶端作為daemon 進(jìn)程,要求能夠長(zhǎng)時(shí)間運(yùn)行。45 / 47 動(dòng)態(tài)資源分配R e s o u r c e B r o k e rR e s o u r c eA g e n tN o d e 1R e s o u r c eA g e n tN o d e 2R e s o u r c eA g e n tN o d e NR e s o u r c eA g e n tD B S e r v e r. . . 節(jié)點(diǎn)資源實(shí)時(shí)信息T C P / I P T C P / I P T C P / I P T C P / I P更新E T L S e r v e rE T L C l i e n tE T L 域上圖為本系統(tǒng)的動(dòng)態(tài)資源采集模塊的邏輯結(jié)構(gòu)圖,其目的是實(shí)時(shí)采集整個(gè)ETL 域中各節(jié)點(diǎn)的系統(tǒng)資源使用情況,以及檢測(cè)節(jié)點(diǎn)運(yùn)行狀態(tài)是否正常,以作為動(dòng)態(tài)資源分配的主要依據(jù)。然后根據(jù)運(yùn)行配置文件,將 JOB 分配給各個(gè) ETL CLIENT 執(zhí)行。44 / 473. 3.ETL SERVER 對(duì) JOB 的類型進(jìn)行判斷,如果是普通的 SHELL JOB 或者EXEC JOB,則根據(jù) JOB 實(shí)例表中的 NODES_LIST(該作業(yè)可使用的節(jié)點(diǎn)列表),計(jì)劃在本域中分配一個(gè) ETL CLIENT 給 JOB 運(yùn)行,如果是 DS JOB,則根據(jù) JOB 實(shí)例表中的 NODES_NEED(運(yùn)行該作業(yè)所需節(jié)點(diǎn)數(shù))和NODES_LIST(該作業(yè)可使用的節(jié)點(diǎn)列表)得到該 JOB 運(yùn)行所需的結(jié)點(diǎn)個(gè)數(shù)以及所能夠運(yùn)行該 JOB 的結(jié)點(diǎn)列表。無論是總行還是分行,數(shù)據(jù)庫(kù)都是由管理類數(shù)據(jù)庫(kù)和業(yè)務(wù)類數(shù)據(jù)庫(kù)組成。? 數(shù)據(jù)庫(kù)模塊統(tǒng)一架構(gòu)中的數(shù)據(jù)庫(kù)模塊分為兩個(gè)部分:管理類數(shù)據(jù)庫(kù)和業(yè)務(wù)類數(shù)據(jù)庫(kù)。它可以根據(jù)本域上的作業(yè)情況增減 ETL CLIENT。其次根據(jù)作業(yè)運(yùn)行資源需求,獲取所屬 ETL CLIENT 的資源情況,選擇最優(yōu)的若干臺(tái) ETL CLIENT,分配作業(yè)給這些 ETL CLIENT 運(yùn)行。對(duì)于不同的域,它們的處理任務(wù)也是不一樣的。在實(shí)際部署中,調(diào)度模塊可以僅部署在總行,實(shí)施統(tǒng)一調(diào)度,也可能部署在分行,實(shí)施分布調(diào)度;而在每個(gè) ETL 域的 ETL Server 上部署調(diào)度的Agent 模塊,調(diào)度 Server 負(fù)責(zé)任