- 相關(guān)推薦
小研非現(xiàn)場審計系統(tǒng)業(yè)務的ETL
1.引言
在商業(yè)銀行中,用戶對數(shù)據(jù)實時性的要求很高。在商業(yè)銀行的一些系統(tǒng)中,如非現(xiàn)場審計系統(tǒng),用戶需要在很短的時間內(nèi)對交易數(shù)據(jù)進行分析、統(tǒng)計,并把可疑數(shù)據(jù)上報,以盡量減少損失。這就要求系統(tǒng)所需數(shù)據(jù)必須在短時間內(nèi)到達,但是這些系統(tǒng)的數(shù)據(jù)源十分繁多。
審計系統(tǒng)中,審計人員需要的信息很全面,既包括個貸業(yè)務、信貸業(yè)務、私金業(yè)務,還要包括國際業(yè)務、資金業(yè)務和中間業(yè)務等,這些業(yè)務都有各自的系統(tǒng),其中有一部分數(shù)據(jù)還取自于核心系統(tǒng)。而且數(shù)據(jù)存儲在異構(gòu)的環(huán)境中,比如它們使用不同的數(shù)據(jù)庫,不同的操作系統(tǒng)環(huán)境等等,如何在眾多系統(tǒng)中快速的提取數(shù)據(jù)和快速的形成一個系統(tǒng)所需的數(shù)據(jù)集市,這對我們是一個挑戰(zhàn)。
針對上述問題,本文提出了一個ETL模型。與其他商業(yè)銀行常用的模型相比,本模型基于業(yè)務設(shè)計和實現(xiàn),具有高效的錯誤恢復機制,能夠利用基礎(chǔ)任務和業(yè)務任務的劃分,根據(jù)任務號單獨執(zhí)行出錯的任務,而不用將整個ETL過程重新執(zhí)行一遍,大大縮短了恢復錯誤的時間,從而可以更好地滿足客戶對于時間上的要求;與傳統(tǒng)成熟的商業(yè)ETL工具相比,基于業(yè)務的模型設(shè)計與實現(xiàn),可以根據(jù)每天的審計目標去創(chuàng)建ETL任務,減少了工作量。同時,此模型部分實現(xiàn)直接采用代碼,針對性更強,靈活性更好,可以處理商業(yè)銀行復雜系統(tǒng)中清洗和轉(zhuǎn)換任務,最重要的是可以減少商業(yè)工具一些不必要的執(zhí)行步驟,縮短了時間。中國碩士論文網(wǎng)提供大量免費mba碩士論文,如有業(yè)務需求請咨詢網(wǎng)站客服人員!
2.審計系統(tǒng)的ETL
目標ETL 過程的最終目標是在合理的時間內(nèi)實現(xiàn)了高質(zhì)量的審計系統(tǒng)數(shù)據(jù)集市,以供客戶審計業(yè)務數(shù)據(jù)。圍繞此目標,本文必須合理、靈活、高效的設(shè)計ETL 過程,才能滿足用戶的需求。在此過程中,存在以下幾個問題:
1.靈活的ETL 控制過程。
因為本審計系統(tǒng)涉及的數(shù)據(jù)源比較多,包括信貸系統(tǒng)、票據(jù)系統(tǒng)、核心系統(tǒng)等,根據(jù)客戶要求,有的業(yè)務數(shù)據(jù)可能需要每天更新,而有的業(yè)務數(shù)據(jù)可能需要每兩天更新一次。對于這種數(shù)據(jù)更新頻率不統(tǒng)一的要求,本論文需要設(shè)計靈活的ETL過程,可以實現(xiàn)針對單數(shù)據(jù)源的操作。
2.統(tǒng)一安全的抽取平臺。
由于數(shù)據(jù)源的繁多,而且數(shù)據(jù)存儲在異構(gòu)的環(huán)境中,比如它們使用不同的數(shù)據(jù)庫,不同的操作系統(tǒng)環(huán)境等。這就要求本文要實現(xiàn)一個統(tǒng)一的抽取平臺,以應對不同的數(shù)據(jù)承載平臺、數(shù)據(jù)源和數(shù)據(jù)格式,同時要求在抽取構(gòu)成中不能破壞源數(shù)據(jù)。
3.快速的處理過程。
由于用戶要求數(shù)據(jù)的準實時性,要求在盡量短的時間內(nèi)(比如兩個小時)便可以審計業(yè)務,所以本文還要解決如何快速在眾多數(shù)據(jù)源中提取數(shù)據(jù)和快速的形成一個系統(tǒng)所需的數(shù)據(jù)集市,這對本文是一個巨大的挑戰(zhàn)。
4.自動化的處理流程,可定制的服務。
由于商業(yè)銀行的特殊性,要求數(shù)據(jù)抽取必須在午夜進行,所以本系統(tǒng)必須實現(xiàn)自動化的處理流程,盡量減少人工干預,降低服務成本。此外,還要實現(xiàn)客戶定制任務,包括時間和頻率等。
5.高質(zhì)量的數(shù)據(jù)集市。
同樣由于商業(yè)銀行業(yè)務的特殊性,審計系統(tǒng)的數(shù)據(jù)一定要高質(zhì)量,只有高質(zhì)量的數(shù)據(jù)作為保證,整個數(shù)據(jù)集市項目所提供的數(shù)據(jù)才能體現(xiàn)出高價值,這就要求本系統(tǒng)在ETL 過程中一定要建立合理的質(zhì)量保證和錯誤恢復機制。
3.ETL 模型結(jié)構(gòu)設(shè)計
主要分為四個部分:控制臺、ODS、ETL過程和審計系統(tǒng)數(shù)據(jù)集市。
首先開發(fā)人員必須利用控制臺初始化任務,建立源數(shù)據(jù)和目標數(shù)據(jù)集市中的映射關(guān)系。
根據(jù)數(shù)據(jù)源的不同,建立不同的任務類型,以供用戶選擇。然后用戶就可以利用控制臺管理任務了,包括初始化任務、任務調(diào)度、異常處理和記錄日志等。
客戶啟動任務后,ETL過程會根據(jù)本次任務需要的數(shù)據(jù)信息從相應的數(shù)據(jù)源中抽取數(shù)據(jù)到ODS中。為什么要先將數(shù)據(jù)抽取到ODS中,而不直接進行清洗,裝載到目標數(shù)據(jù)集市中呢?ODS是目標數(shù)據(jù)集市與外部源數(shù)據(jù)的接口,并且ODS在ETL中有著緩沖和保護的作用,在業(yè)務系統(tǒng)和數(shù)據(jù)集市之間形成一個隔離層,避免外部源數(shù)據(jù)直接向目標數(shù)據(jù)集市寫數(shù)據(jù)。
將數(shù)據(jù)抽取到ODS中,開發(fā)人員就可以對ODS中的數(shù)據(jù)進行多次清洗和轉(zhuǎn)換,即是在清洗和轉(zhuǎn)化過程中發(fā)生錯誤,開發(fā)人員也不需要直接從數(shù)據(jù)源再次抽取,而只要使用ODS中的數(shù)據(jù)即可,為審計系統(tǒng)提供一定的容錯能力。清洗和轉(zhuǎn)換完畢后,將數(shù)據(jù)裝載到審計系統(tǒng)數(shù)據(jù)集市中。
4. ETL 的功能設(shè)計
4.1 控制臺
控制臺中又包括了任務管理、元數(shù)據(jù)管理、異常處理和系統(tǒng)日志。任務管理實現(xiàn)了任務的初始化、任務調(diào)度、任務執(zhí)行等功能。元數(shù)據(jù)管理則為開發(fā)人員提供了源數(shù)據(jù)(ODS 中)和數(shù)據(jù)集市映射關(guān)系的管理。
4.1.1 元數(shù)據(jù)管理目前,元數(shù)據(jù)存在多種不同的描述,Luo Agostas 說元數(shù)據(jù)是一種比喻,因為它抽象了看起來完全不同的事物。在數(shù)據(jù)倉庫領(lǐng)域元數(shù)據(jù)被定義為:描述數(shù)據(jù)及其環(huán)境的數(shù)據(jù)。在本文里,筆者采用常用的一種描述,將本系統(tǒng)的元數(shù)據(jù)分為技術(shù)元數(shù)據(jù)和業(yè)務元數(shù)據(jù)。
所謂技術(shù)元數(shù)據(jù)主要是用來描述數(shù)據(jù)實體和數(shù)據(jù)處理過程中的技術(shù)細節(jié)和處理規(guī)則。比如數(shù)據(jù)源接口(數(shù)據(jù)庫名、端口、數(shù)據(jù)庫類型、用戶名、密碼等)、ETL 任務表(任務編號、任務名稱、任務粒度、任務號、后序任務、狀態(tài)等)、業(yè)務元數(shù)據(jù)則主要是對IT 系統(tǒng)的數(shù)據(jù)實體和數(shù)據(jù)處理的業(yè)務化描述,包括業(yè)務規(guī)則、業(yè)務術(shù)語、統(tǒng)計口徑、信息分類等。如某商業(yè)商業(yè)銀行審計系統(tǒng)中的企業(yè)基本信息(企業(yè)名稱、客戶類型、企業(yè)隸屬、企業(yè)類型、行業(yè)類型、主營業(yè)務、經(jīng)濟類型等)、財務報表數(shù)據(jù)(報表月份、客戶名稱、報表種類、幣種等)、小額擔保貸款貼息統(tǒng)計(借據(jù)號、合同號、小額擔保貸款類型、客戶姓名、貸款金額、期限年、期限月、貸款發(fā)放日等)等。
考慮到保證系統(tǒng)的執(zhí)行效率。元數(shù)據(jù)管理主要為數(shù)據(jù)集市的形成提供基礎(chǔ)數(shù)據(jù)映射分析,并且在以后的維護中提供支持。
4.1.2 任務管理
在本文中,任務的劃分按照客戶審計目標而定,一個任務即是一個審計業(yè)務數(shù)據(jù)的ETL過程,這是本文的重點。在一個數(shù)據(jù)集市的形成過程中,會涉及到很多的業(yè)務系統(tǒng),因此審計系統(tǒng)的數(shù)據(jù)集市由很多任務組成。本系統(tǒng)中任務分為兩種類型:基礎(chǔ)任務和業(yè)務任務;A(chǔ)任務是指實現(xiàn)形成該審計系統(tǒng)數(shù)據(jù)集市所必須的所有數(shù)據(jù),比如審計系統(tǒng)中客戶的基本信息,賬戶信息,企業(yè)信息等,這些都是基礎(chǔ)數(shù)據(jù),無論哪個業(yè)務都必須采用的數(shù)據(jù),所以基礎(chǔ)任務也是每次ETL 過程所必須完成的任務。而業(yè)務任務則是可以選擇的,依據(jù)本次審計人員的要求而決定是否導入審計系統(tǒng)數(shù)據(jù)集市,比如信貸業(yè)務,如果本次審計要求中不包括此業(yè)務,那么本次ETL 任務便可不處理該業(yè)務數(shù)據(jù);A(chǔ)任務是形成數(shù)據(jù)集市的必選任務,每天只需執(zhí)行一次。而業(yè)務任務則是根據(jù)每天的審計目標而選擇的可選任務。
在此基礎(chǔ)上又引入了優(yōu)先級、執(zhí)行時間和任務號的概念。優(yōu)先級是在任務創(chuàng)建的同時就會確定的,優(yōu)先級有三等:重要,一般,不重要。執(zhí)行時間就是執(zhí)行任務的時間先后。任務號是若干任務執(zhí)行先后順序的依據(jù)。
在描述功能前,我們有必要先描述任務的生命周期。在本審計系統(tǒng)中,任務有五種狀態(tài):
新建,就緒,執(zhí)行,成功,失敗。狀態(tài)之間的轉(zhuǎn)換。
新建狀態(tài):創(chuàng)建一個任務即添加一個新的 ETL 任務,任務的信息包括目標子任務信息和任務的創(chuàng)建信息(包括創(chuàng)建者和創(chuàng)建時間等等)。
就緒狀態(tài):任務在被調(diào)度后,初始化其狀態(tài)為就緒,等待執(zhí)行。
執(zhí)行狀態(tài):任務占用系統(tǒng)資源,同一時刻,處于“執(zhí)行”狀態(tài)的只有一個任務,另外的任務處于“就緒”狀態(tài)。
成功狀態(tài):任務執(zhí)行完畢,并且執(zhí)行過程中沒有發(fā)生異常,或者發(fā)生異常后又重新執(zhí)行完畢。
失敗狀態(tài):任務執(zhí)行過程中發(fā)生異常,非正常結(jié)束。
任務狀態(tài)之間的轉(zhuǎn)換主要包括以下幾種:
創(chuàng)建新任務:創(chuàng)建一個新的任務,即確定一個檢測計劃,初始化任務的數(shù)據(jù)源和元數(shù)據(jù)等信息。
調(diào)度:準備執(zhí)行任務,將其置為“就緒狀態(tài)”,隨時可以分派執(zhí)行,由于同步機制的限制,系統(tǒng)在同一時刻只能執(zhí)行一個任務。
分派:選擇任務并執(zhí)行,進入執(zhí)行狀態(tài)。
出現(xiàn)異常:任務在執(zhí)行過程中,發(fā)生可恢復或者不可恢復的異常,中止執(zhí)行,將其置為“失敗”狀態(tài)。
重置:解決異常后,重置失敗的任務,等待重新執(zhí)行。
執(zhí)行完成:任務執(zhí)行過程中沒有出現(xiàn)異常情況,順利執(zhí)行完畢。
任務管理模塊包括的功能主要有任務初始化、任務調(diào)度和任務執(zhí)行。
任務初始化主要是創(chuàng)建任務,用戶根據(jù)本次審計目標的要求來建立一個 ETL 任務,包含任務信息和任務的創(chuàng)建信息。任務信息是指選擇符合本次審計目標的業(yè)務任務,基礎(chǔ)任務不用選擇,因為是必選的,在執(zhí)行ETL 的時候,會首先執(zhí)行基礎(chǔ)任務。
任務調(diào)度模塊是貫穿整個數(shù)據(jù)集市形成過程的,在此過程中監(jiān)聽事件,并能夠根據(jù)事件啟用相應的任務。在此模塊啟動后,根據(jù)任務號順序執(zhí)行,關(guān)于任務的任務號確定問題,本系統(tǒng)中采用一個較為簡單的原則來解決:在任務創(chuàng)建的同時已經(jīng)確定了任務的優(yōu)先級,結(jié)合任務的執(zhí)行時間,先按照執(zhí)行時間先后確定任務號,如果執(zhí)行時間相同,再按照任務的重要性確定任務號,如果重要性也相同,則對二者(或者更多)隨機確定任務號。如果任務B的任務號是排在任務A 的任務號的下一位,則成任務B 是任務A 的后續(xù)任務。順序執(zhí)行任務的同時要監(jiān)聽觸發(fā)事件,此模塊監(jiān)聽的事件可分為主要有兩種:①任務結(jié)束。在一個任務執(zhí)行時,任務調(diào)度模塊會實時監(jiān)控這個任務的狀態(tài),當一個任務執(zhí)行完畢后,將此任務的狀態(tài)置為完成,并將其后序任務狀態(tài)置為準備。而當錯誤發(fā)生后,首先將其狀態(tài)置為異常,然后調(diào)用異常處理模塊,處理好現(xiàn)場,并將該子任務的狀態(tài)置為“失敗”。并將錯誤記錄到日志中,順序執(zhí)行下一個任務。②時間到達。對于一些任務,用戶希望它們定時執(zhí)行,所以任務調(diào)度模塊必須實時比較它們的啟動時間和系統(tǒng)時間,一旦二者一致,就執(zhí)行此任務。任務調(diào)度模塊一直執(zhí)行到任務完成后關(guān)閉系統(tǒng)時才隨系統(tǒng)一起停止運行。
任務執(zhí)行即是開始 ETL 處理過程。任務的執(zhí)行方式分為兩種:手動和定時,手動方式隨時可以執(zhí)行,定時方式則是在設(shè)定的時間自動啟動。具有管理員權(quán)限的用戶隨時可以執(zhí)行任務。定時任務則要在系統(tǒng)內(nèi)設(shè)置定時執(zhí)行任務的時間,可以根據(jù)任務需求設(shè)置幾種頻率:
每月,每周,每天等。每天到零點時刻,系統(tǒng)就會添加所有在這一天內(nèi)要執(zhí)行的定時任務到隊列中,然后計算出到達下一個設(shè)定的執(zhí)行時間的時間差,讓線程休眠相同時間,醒來后再執(zhí)行。同一個任務可以多次重復執(zhí)行。如果在執(zhí)行任務過程中新添加了一個任務,系統(tǒng)會根據(jù)此任務的任務號插入到隊列中。每完成一個任務,系統(tǒng)就從執(zhí)行隊列中選取一個優(yōu)先級最高的執(zhí)行。
4.1.3 異常處理
任何系統(tǒng)都會出現(xiàn)異常情況,所以異常處理模塊必不可少。在本模型中,異常處理模塊主要應對任務執(zhí)行異常情況,比如數(shù)據(jù)出現(xiàn)亂碼,從而致使數(shù)據(jù)轉(zhuǎn)化任務出錯;正在執(zhí)行抽取或?qū)肴蝿諘r,網(wǎng)絡斷開,等等。
在出現(xiàn)錯誤后,本模塊會將該任務的狀態(tài)置為“異!,然后調(diào)用相應的處理程序。對于一些任務執(zhí)行過程中發(fā)生的錯誤,只需要重新執(zhí)行該任務便可,比如網(wǎng)絡或電源斷開;而對于一些錯誤的處理則比較麻煩,比如抽取數(shù)據(jù)的時候一個表發(fā)生錯誤,并且ETL 過程已經(jīng)執(zhí)行完畢后發(fā)現(xiàn)的,這種情況下,重新執(zhí)行一遍ETL 過程勢必要花費大量的時間,無論是用戶還是數(shù)據(jù)源系統(tǒng)都是不允許的,因此我們可以利用前面所述基礎(chǔ)任務和業(yè)務任務的劃分,根據(jù)任務號單獨執(zhí)行出錯的任務,這種做法就大大節(jié)省了時間,從而提高了錯誤恢復的效率。
4.1.4 系統(tǒng)日志
系統(tǒng)日志模塊也是 ETL 過程中必不可少的一個模塊。它的作用在于記錄每一個任務完成情況,以及系統(tǒng)啟動時間和完成時間等詳細信息,以便技術(shù)人員在查看以往的記錄的時候有據(jù)可依,并且也可以從中查看一些異常情況,分析問題,解決系統(tǒng)無法自動解決的問題。
日志模塊對于管理員的一些操作也要做詳細的記錄,比如某天某個管理員沒有按照要求擅自啟動了ETL 系統(tǒng),導致了錯誤的發(fā)生,或者在發(fā)生異常后,管理員做出了一些解決措施。或者有管理員利用職權(quán)竊取數(shù)據(jù),這些都將被記錄下來,為以后的責任的追究和工作表現(xiàn)提供證據(jù)。
4.2 ETL 過程
此模塊是 ETL 的主要實現(xiàn)過程,包含三個階段:數(shù)據(jù)抽取、清洗和轉(zhuǎn)換、轉(zhuǎn)載。
在數(shù)據(jù)抽取階段,我們根據(jù)用戶提供的數(shù)據(jù)源方式分為以下幾種處理方式:①抽數(shù)。針對此種數(shù)據(jù)源,我們在數(shù)據(jù)源接口表中定義好了數(shù)據(jù)源的地址、端口號、用戶名和密碼,以及抽取時間后,即可定時調(diào)用任務抽取數(shù)據(jù)。②送數(shù)。由于數(shù)據(jù)源保密性要求、時間上的不合適或者網(wǎng)絡隔絕等條件的限制,ETL 系統(tǒng)只能等待數(shù)據(jù)源送數(shù)過來,或者以備份文件,或者以文本文件的形式送達。這時,我們可以監(jiān)聽送數(shù)事件,當查看到特定目錄中出現(xiàn)數(shù)據(jù)的時候,便啟動往ODS 導數(shù)任務。在抽取任務中,我們也必須描述清楚數(shù)據(jù)的增長方式:
增量或者全量。增量抽取往往適用于交易信息,這類數(shù)據(jù)的特點是每天的操作不會對以前的信息造成影響;全量則適用于客戶信息、票據(jù)信息等可能被更改的數(shù)據(jù),這些信息在各個抽取任務中都會有所體現(xiàn)。
在清洗和轉(zhuǎn)化操作階段,我們根據(jù)處理的源數(shù)據(jù)的規(guī)模大小和相關(guān)性將幾個處理過程作為一個子任務,這樣做的好處是方便實時查看進度和減少任務失敗時重新執(zhí)行的時間損失,同時也最大化地利用了數(shù)據(jù)庫的緩存池。這樣的一個任務提交時,比每個處理過程執(zhí)行完畢后就提交節(jié)省很多時間,而每個任務完成后再提交則有可能導致數(shù)據(jù)庫緩存池溢出錯誤,從而導致任務提交失敗。即使沒有出現(xiàn)錯誤,實踐證明提交一個任務比子任務需要更多的時間。
在裝載階段,我們采用成熟的商業(yè)工具即可,因為這類工具具有穩(wěn)定性和安全性,并且在此階段,沒有太多可以優(yōu)化的地方。只是在裝載前我們會停去掉表的索引,在導完數(shù)據(jù)后再統(tǒng)一建立,這么做的好處是提高導入速度。
裝載完畢后,對存在于 ODS 中的歷史數(shù)據(jù),我們也需要定時的清理,以減少整個ETL系統(tǒng)負擔。針對不同的數(shù)據(jù),清理的要求也不同,有的數(shù)據(jù)需要保留一天,以便同以后的數(shù)據(jù)對比,有的數(shù)據(jù)則可以即時清理掉。在本模型中,我們可以設(shè)置表數(shù)據(jù)的清理范圍和時間,用戶只需根據(jù)具體要求設(shè)置好執(zhí)行時間,則系統(tǒng)會在指定時間清理指定數(shù)據(jù)。
5.模型的應用
我們將此模型應用到某商業(yè)銀行的非現(xiàn)場審計系統(tǒng)中,針對審計系統(tǒng)的特點對各個模塊就行了本地化。系統(tǒng)實際運行情況表明,該系統(tǒng)具有很好的效率,可靠性比較強,同時具有一定的容錯性,能很好的滿足用戶的需求。
6.總結(jié)
本文針對商業(yè)銀行系統(tǒng)復雜的數(shù)據(jù)存儲環(huán)境設(shè)計了基于業(yè)務的 ETL 模型,該模型將商業(yè)工具和編程實現(xiàn)結(jié)合起來,可以靈活地實現(xiàn)用戶要求,同時保持了很高的效率。本模型在任務管理模塊將業(yè)務劃分為任務,既可以按照傳統(tǒng)ETL 流程處理數(shù)據(jù),也可以在發(fā)生錯誤后按照任務的任務號單獨完成目標數(shù)據(jù)庫中出錯部分,這種靈活的處理方式大大節(jié)省了時間。異常處理模塊和系統(tǒng)日志模塊為系統(tǒng)的安全性、健壯性提供了保障,歷史數(shù)據(jù)的定時清理機制也保證了此ETL 系統(tǒng)可以高效的完成任務。本碩士論文來源于中國碩士論文網(wǎng),參考文獻:http://www.lunwenad.com/wzlb-3.html,轉(zhuǎn)載敬請保留鏈接,謝謝。
本系統(tǒng)也還存在一些不足的地方,比如對于語義異構(gòu)問題沒有有效提出有效的方法,希望將來能夠改進。
【小研非現(xiàn)場審計系統(tǒng)業(yè)務的ETL】相關(guān)文章:
利用非現(xiàn)場審計系統(tǒng)進行分析性復核03-23
論國有貿(mào)易銀行非現(xiàn)場計算機審計03-24
非審計服務與審計質(zhì)量03-22
非鑒證業(yè)務對審計獨立性的影響03-21
淺談國有商業(yè)銀行非現(xiàn)場計算機審計04-01
小研多變量系統(tǒng)的解耦與控制03-01
非接觸測距系統(tǒng)03-07