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