摘 要:本文探討了人保財(cái)險(xiǎn)公司建立數(shù)據(jù)倉(cāng)庫(kù)時(shí)如何進(jìn)行數(shù)據(jù)導(dǎo)入的設(shè)計(jì),闡述了數(shù)據(jù)導(dǎo)入的設(shè)計(jì)基礎(chǔ)和數(shù)據(jù)加載的策略。
關(guān)鍵詞:數(shù)據(jù)倉(cāng)庫(kù);抽?。患虞d
中圖分類號(hào):TP311.13
在進(jìn)行人保財(cái)險(xiǎn)公司數(shù)據(jù)倉(cāng)庫(kù)整體架構(gòu)的設(shè)計(jì)時(shí),對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)必須保持較高的訪問(wèn)效率,還必須滿足多個(gè)用戶對(duì)數(shù)據(jù)庫(kù)的并發(fā)訪問(wèn),這樣才能保證整個(gè)數(shù)據(jù)庫(kù)系統(tǒng)穩(wěn)定安全的運(yùn)行。在數(shù)據(jù)倉(cāng)庫(kù)的模型和結(jié)構(gòu)體系的設(shè)計(jì)確定之后,就應(yīng)該具體實(shí)現(xiàn)數(shù)據(jù)倉(cāng)庫(kù)。數(shù)據(jù)ETL是數(shù)據(jù)倉(cāng)庫(kù)最重要最基礎(chǔ)的部分,也是數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)處理正確一致、完整、可靠的技術(shù)保障。只有數(shù)據(jù)ETL具備良好的性能才能保證整個(gè)數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)高效的運(yùn)行,才能得到最終正確恰當(dāng)?shù)臄?shù)據(jù)分析結(jié)果。
1 設(shè)計(jì)原則
(1)模塊化的系統(tǒng)設(shè)計(jì)。采用模塊化設(shè)計(jì),首先可以嚴(yán)格區(qū)分管理控制和數(shù)據(jù)處理,其次采用松散度相對(duì)較高的模塊設(shè)計(jì)可以解決由于數(shù)據(jù)源不斷擴(kuò)大導(dǎo)致系統(tǒng)必須進(jìn)行不斷擴(kuò)充才能滿足日益增加的系統(tǒng)擴(kuò)展的需求的問(wèn)題。
(2)統(tǒng)一的調(diào)配與控制。采用統(tǒng)一的調(diào)配與控制是為了給數(shù)據(jù)ETL的高效運(yùn)行提供有力的技術(shù)管理保障。在統(tǒng)一管理模式的控制下,處于數(shù)據(jù)ETL每一個(gè)周期的任務(wù)狀態(tài)和運(yùn)行情況及出錯(cuò)信息都能直觀的顯現(xiàn)出來(lái)。
(3)高效的ETL加載策略。高效率的ETL加載策略,能夠縮短ETL的加載時(shí)間,從而提高ETL過(guò)程的效率。解決在數(shù)據(jù)導(dǎo)入層數(shù)據(jù)處理環(huán)節(jié)多,數(shù)據(jù)吞吐量大的問(wèn)題。ETL的基本原則是盡量發(fā)揮Teradata在性能方面的優(yōu)勢(shì),實(shí)現(xiàn)對(duì)大數(shù)據(jù)量進(jìn)行數(shù)據(jù)統(tǒng)計(jì)、分析、匯合、改換等各種繁瑣計(jì)算的操作。
(4)安全的用戶管理。在數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)ETL的整個(gè)運(yùn)行過(guò)程中,不同的ETL環(huán)節(jié)都有數(shù)據(jù)的傳輸與交流,所以數(shù)據(jù)本身的安全性就顯得特別重要。只有對(duì)數(shù)據(jù)庫(kù)用戶的口令進(jìn)行加密保護(hù)并妥善保存,才能保障在進(jìn)行數(shù)據(jù)的加載與轉(zhuǎn)換時(shí)指定數(shù)據(jù)庫(kù)用戶的數(shù)據(jù)訪問(wèn)的安全性。
(5)便捷的消息通知機(jī)制。ETL的設(shè)計(jì)體系應(yīng)該有特定部分可以完成及時(shí)把任務(wù)的執(zhí)行情況通知負(fù)責(zé)ETL加載運(yùn)行和維護(hù)的人員的功能,此項(xiàng)作用由消息通知機(jī)制來(lái)實(shí)現(xiàn)。消息通知機(jī)制采用郵件或短消息等形式,把每天ETL任務(wù)的執(zhí)行情況和出錯(cuò)警報(bào)信息通知相關(guān)維護(hù)人員。
2 數(shù)據(jù)抽取
數(shù)據(jù)抽取是數(shù)據(jù)進(jìn)入數(shù)據(jù)倉(cāng)庫(kù)的第一項(xiàng)操作,數(shù)據(jù)抽取模式設(shè)計(jì)的是否恰當(dāng),決定了數(shù)據(jù)的數(shù)量是否合理數(shù)據(jù)的質(zhì)量是否能夠滿足使用需求。以下將探討增量抽取的技術(shù)方案,增量抽取是抽取系統(tǒng)不斷變化的數(shù)據(jù),這里將探討數(shù)據(jù)上次抽取和裝載任務(wù)完成后的日常抽取工作。技術(shù)方案的具體內(nèi)容是:
(1)時(shí)間戳,時(shí)間戳是為了記錄新記錄的加入時(shí)間和原有記錄內(nèi)容的調(diào)整時(shí)間及用戶的關(guān)聯(lián)信息,增量抽取數(shù)據(jù)時(shí),可以查詢?cè)幢淼臅r(shí)間戳就可以完成。
(2)掃描增量文件,由相應(yīng)的應(yīng)用程序自動(dòng)生成增量文件,增量文件記錄數(shù)據(jù)應(yīng)用過(guò)程中的變化,通過(guò)增量文件的內(nèi)容既可以獲得增量數(shù)據(jù)。
(3)掃描日志文件,日志文件內(nèi)記錄了最近發(fā)生變化的數(shù)據(jù)。
(4)設(shè)立觸發(fā)器,在源表中建立一個(gè)觸發(fā)器,每當(dāng)在源表中插入、更新或刪除一條記錄時(shí),即數(shù)據(jù)發(fā)生變化時(shí),觸發(fā)觸發(fā)器,生成一個(gè)表或文件存儲(chǔ)新增加的數(shù)據(jù)或有變化的數(shù)據(jù);
(5)映像文件比較,用原有的映像文件與新生成的映像文件進(jìn)行比較,從比較結(jié)果中分析獲取哪些數(shù)據(jù)發(fā)生了變化。
對(duì)幾種方案進(jìn)行分析比較,采用增量文件的方案需購(gòu)買其它相關(guān)廠商的產(chǎn)品;映像文件進(jìn)行原有映像文件和新生成映像文件比較時(shí),要耗費(fèi)巨大的軟硬件資源才能夠?qū)崿F(xiàn),從技術(shù)角度考慮實(shí)現(xiàn)比較困難,一般不采用此方案;而時(shí)間戳、日志文件進(jìn)行掃描和設(shè)立觸發(fā)器這三種方案實(shí)現(xiàn)比較容易而且性能比較高。考慮技術(shù)可行性和保險(xiǎn)公司的數(shù)據(jù)倉(cāng)庫(kù)需求,最后選用時(shí)間戳和觸發(fā)器相結(jié)合的方案實(shí)現(xiàn)數(shù)據(jù)的增量抽取功能。具體做法是對(duì)業(yè)務(wù)處理系統(tǒng)表的結(jié)構(gòu)進(jìn)行調(diào)整,添加記錄的最后修改時(shí)間和數(shù)據(jù)提取時(shí)間等字段作為時(shí)間戳。當(dāng)數(shù)據(jù)記錄有調(diào)整時(shí),由觸發(fā)器負(fù)責(zé)實(shí)現(xiàn)把修改時(shí)間等信息記錄在業(yè)務(wù)處理系統(tǒng)表的時(shí)間戳字段。最后提取時(shí)間表的字段設(shè)計(jì)如表1所示。
表1 最后提取時(shí)間表字段設(shè)計(jì)
BeginStatDateDATETIME YEAR TO SECOND最后提取開(kāi)始時(shí)間
EndStatDateDATETIME YEAR TO SECOND最后提取結(jié)束時(shí)間
EndAlterDaterDATETIME YEAR TO SECOND最后修改時(shí)間
FlagCHAR(1)標(biāo)志字段
但是數(shù)據(jù)抽取也必須解決以下問(wèn)題:
(1)數(shù)據(jù)信息不完整。例如有些數(shù)據(jù)為空值,是因?yàn)橛袝r(shí)根據(jù)實(shí)際需要賦了空值,但數(shù)據(jù)查詢時(shí)空值無(wú)法完成,此時(shí)可以用默認(rèn)值代替或用其它數(shù)據(jù)進(jìn)行計(jì)算處理來(lái)生成等方式實(shí)現(xiàn)不完整信息的填充。例如,人員年齡字段為空值,可以由相應(yīng)身份證號(hào)碼中的出生日期計(jì)算出來(lái)。
(2)拼寫(xiě)不規(guī)則導(dǎo)致的錯(cuò)誤數(shù)據(jù)。拼寫(xiě)不規(guī)則主要是指在對(duì)同一字段的值進(jìn)行填充時(shí),有的大寫(xiě),有的小寫(xiě),還有的大小寫(xiě)混等存在多種形式。此種錯(cuò)誤數(shù)據(jù)處理比較容易,只需在數(shù)據(jù)ETL過(guò)程中調(diào)用相應(yīng)字符轉(zhuǎn)換函數(shù)就可以完成。
(3)不符合商業(yè)邏輯。不符合商業(yè)邏輯的錯(cuò)誤數(shù)據(jù)要靠商業(yè)規(guī)則來(lái)調(diào)整。商業(yè)規(guī)則的建立相對(duì)比較穩(wěn)定,不需經(jīng)常變動(dòng)和修改,所以根據(jù)商業(yè)規(guī)則的內(nèi)容修正數(shù)據(jù)即可。
3 數(shù)據(jù)加載
對(duì)于數(shù)據(jù)倉(cāng)庫(kù)高效的裝載要求是重要的,數(shù)據(jù)加載需要完成數(shù)據(jù)采用什么樣的順序裝入、如何清除失效或錯(cuò)誤的數(shù)據(jù)、對(duì)過(guò)時(shí)數(shù)據(jù)進(jìn)行處理、創(chuàng)建數(shù)據(jù)加載索引等工作。
加載策略如下:
(1)維表的增量加載??紤]維表的變化幅度與慢于事實(shí)表的變化幅度,可以采用慢速變化維表的設(shè)計(jì)思路,采用不同的處理方式,根據(jù)維表中不同的變化形式,對(duì)維表進(jìn)行更新并對(duì)屬性的變化情況進(jìn)行記錄和統(tǒng)計(jì)。在進(jìn)行數(shù)據(jù)輸入時(shí),要和數(shù)據(jù)表中的現(xiàn)有數(shù)據(jù)比對(duì),通過(guò)自然鍵進(jìn)行比較,如果比較結(jié)果是現(xiàn)有數(shù)據(jù)沒(méi)有相一致的情況,說(shuō)明現(xiàn)有數(shù)據(jù)中沒(méi)有匹配的記錄,新記錄應(yīng)該插入到維表中去。反之,說(shuō)明已經(jīng)存在相應(yīng)記錄,記錄應(yīng)該更新或排除。
(2)索引的加載。在進(jìn)行數(shù)據(jù)裝載時(shí),也應(yīng)該完成索引的高效加載工作。但考慮系統(tǒng)的運(yùn)行效率,對(duì)索引的加載可根據(jù)情況推遲。綜合保險(xiǎn)公司的業(yè)務(wù)流程與對(duì)數(shù)據(jù)管理的需求,考慮對(duì)數(shù)據(jù)準(zhǔn)確與嚴(yán)密性的要求,在整個(gè)ETL過(guò)程中,還需要實(shí)現(xiàn)ETL任務(wù)調(diào)度和控制的自動(dòng)化管理以及必要的數(shù)據(jù)質(zhì)量檢查處理。
數(shù)據(jù)倉(cāng)庫(kù)ETL實(shí)現(xiàn)完成后,把原始數(shù)據(jù)加入數(shù)據(jù)庫(kù),再把日常數(shù)據(jù)做入庫(kù)處理,數(shù)據(jù)倉(cāng)庫(kù)就可以實(shí)現(xiàn)數(shù)據(jù)的分析工作。對(duì)產(chǎn)品銷售相關(guān)數(shù)據(jù)進(jìn)行匯總,分析人員就能對(duì)數(shù)據(jù)進(jìn)行挖掘,從而分析市場(chǎng)的方向和變化規(guī)律。對(duì)于保險(xiǎn)公司來(lái)說(shuō),經(jīng)過(guò)數(shù)據(jù)挖掘與分析得到的數(shù)據(jù)能讓公司及時(shí)更新保險(xiǎn)產(chǎn)品,從而更符合市場(chǎng)的需求,在眾多保險(xiǎn)公司的競(jìng)爭(zhēng)中處于不敗之地。
參考文獻(xiàn):
[1]彭曉東.基于數(shù)據(jù)倉(cāng)庫(kù)的綜合決策支持系統(tǒng)的設(shè)計(jì)研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2003.
[2]于莉莉.基于數(shù)據(jù)倉(cāng)庫(kù)的決策支持系統(tǒng)[J].佳木斯大學(xué)學(xué)報(bào),2003.
[3]徐潔磐.數(shù)據(jù)倉(cāng)庫(kù)與決策支持系統(tǒng)——數(shù)據(jù)庫(kù)應(yīng)用系列叢書(shū)[M].北京:科學(xué)出版社,2005.
[4]潘華,向同德.數(shù)據(jù)倉(cāng)庫(kù)與數(shù)據(jù)挖掘原理、工具、及應(yīng)用[M].北京:中國(guó)電力出版社,2007:105-117.
[5]王豐華.保險(xiǎn)公司數(shù)據(jù)大集中及應(yīng)用對(duì)策[OL].http://www.rmic.cn/?uid-7364-action-viewspace-itemid-1485,2012,11,21.
作者簡(jiǎn)介:杜素芳(1975-),女,河南濮陽(yáng)人,講師,碩士,研究方向:軟件工程。
作者單位:濮陽(yáng)職業(yè)技術(shù)學(xué)院,河南濮陽(yáng) 457000