基于可復(fù)用構(gòu)件思想的ETL架構(gòu)設(shè)計(jì)
基于此,這里研究了基于構(gòu)件的思想,設(shè)計(jì)并實(shí)現(xiàn)了可重用的ETL架構(gòu),經(jīng)北京銀聯(lián)、江蘇銀聯(lián)、浙江銀聯(lián)籌10家銀聯(lián)省級(jí)分公司的數(shù)據(jù)倉(cāng)庫(kù)項(xiàng)目實(shí)際應(yīng)用,表明該架構(gòu)是有效的。
1 基于可復(fù)用構(gòu)件思想的ETL架構(gòu)設(shè)計(jì)
1.1 設(shè)計(jì)思想
基于構(gòu)件技術(shù)的軟件復(fù)用提倡以已有的工作為基礎(chǔ),充分利用過去工作中積累的知識(shí)和經(jīng)驗(yàn),將已經(jīng)辨識(shí)的具有相對(duì)獨(dú)立功能的構(gòu)件應(yīng)用于新系統(tǒng)的開發(fā),保證新系統(tǒng)開發(fā)的過程中,能夠?qū)⒅攸c(diǎn)集中于辨識(shí)和實(shí)現(xiàn)應(yīng)用系統(tǒng)特有的構(gòu)成成分,最終縮短系統(tǒng)開發(fā)周期,提高系統(tǒng)的質(zhì)量。
基于構(gòu)件技術(shù)的軟件復(fù)用的核心思想包括如下幾個(gè)方面:
(1)構(gòu)件化設(shè)計(jì)。通過系統(tǒng)地分析一類相似或相近的數(shù)據(jù)倉(cāng)庫(kù)項(xiàng)目,識(shí)別出其共同特征和可變特征,并對(duì)這些特征進(jìn)行抽象,形成領(lǐng)域分析模型,并據(jù)此進(jìn)一步識(shí)別出可復(fù)用的構(gòu)件。
(2)層次化設(shè)計(jì)。層次化設(shè)計(jì)可以提高系統(tǒng)的可擴(kuò)展性和可維護(hù)性。通過層次化設(shè)計(jì)可以將所有識(shí)別的構(gòu)件按一定的規(guī)則(如抽象級(jí)別、處理對(duì)象和處理的功能)分類管理,然后以分層的形式來組織,進(jìn)而確定不同層構(gòu)件之間的交互方式,保證每個(gè)構(gòu)件的變化只涉及它的鄰近兩層的相關(guān)構(gòu)件,實(shí)現(xiàn)系統(tǒng)一定程度上的開放性。
(3)接口化設(shè)計(jì)。不同層次的構(gòu)件之間需要溝通,溝通需要規(guī)范,通過規(guī)范的接口可實(shí)現(xiàn)構(gòu)件之間溝通的規(guī)范化。接口只制定規(guī)范,具體實(shí)現(xiàn)交由構(gòu)件內(nèi)部完成。接口化設(shè)計(jì)將構(gòu)件的差異放到實(shí)現(xiàn)階段,而不是在設(shè)計(jì)階段,使得設(shè)計(jì)階段可以致力于軟件架構(gòu)設(shè)計(jì)的完整性和復(fù)用性,使得不同系統(tǒng)之間處理的差異通過替換構(gòu)件而無需變動(dòng)架構(gòu)就可得到解決。
1.2 ETL架構(gòu)模型設(shè)計(jì)
基于可復(fù)用構(gòu)件思想的ELT架構(gòu)(如圖1所示)主要分成基礎(chǔ)服務(wù)層、抽取層、集成轉(zhuǎn)換層、特殊處理層四個(gè)層次,每個(gè)層次的功能如下所述。
1.2.1 抽取層
抽取層構(gòu)件位于ETL架構(gòu)的最底層,直接面對(duì)數(shù)據(jù)源,完成數(shù)據(jù)抽取階段的工作。鑒于數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)源差異性大的特點(diǎn),這個(gè)層的ETL構(gòu)件在不同數(shù)據(jù)倉(cāng)庫(kù)間差異很大,可重用程度總體上比較低。
1.2.2集成轉(zhuǎn)換層
集成轉(zhuǎn)換層構(gòu)件主要將抽取層抽取的數(shù)據(jù)轉(zhuǎn)換成格式規(guī)范、含義統(tǒng)一、質(zhì)量良好的數(shù)據(jù),并集成到數(shù)據(jù)倉(cāng)庫(kù)中。由于是在兩個(gè)層接口構(gòu)件之間,所以集成轉(zhuǎn)換層構(gòu)件的輸入和輸出都要滿足層間接口構(gòu)件的約定,在相似數(shù)據(jù)倉(cāng)庫(kù)項(xiàng)目之間的差異主要體現(xiàn)在業(yè)務(wù)處理規(guī)則上。集成轉(zhuǎn)換層為每類數(shù)據(jù)對(duì)象提供一類ETL處理構(gòu)件,同層構(gòu)件之間相對(duì)獨(dú)立,通過抽象各個(gè)相似數(shù)據(jù)倉(cāng)庫(kù)項(xiàng)目業(yè)務(wù)規(guī)則,將其封裝在構(gòu)件內(nèi),保證ETL架構(gòu)在相似數(shù)據(jù)倉(cāng)庫(kù)之間移植時(shí),只要通過配置業(yè)務(wù)規(guī)則,ETL構(gòu)件即可投入使用。
1.2.3特殊處理層
為了保證后續(xù)功能開發(fā)者可以將注意力放在功能關(guān)注的指標(biāo)上,而不要關(guān)心指標(biāo)的具體口徑,更不要擔(dān)心指標(biāo)口徑變化和指標(biāo)口徑在相似數(shù)據(jù)倉(cāng)庫(kù)項(xiàng)目之間的差異對(duì)功能移植造成不利影響,在集成轉(zhuǎn)換層構(gòu)件處理的基礎(chǔ)上,專門增加了特殊處理層,負(fù)責(zé)將數(shù)據(jù)倉(cāng)庫(kù)中按流水交易形式組織的數(shù)據(jù)換算成按KPI組織的形式。
1.2.4 基礎(chǔ)服務(wù)層
為了給ETL提供一個(gè)相對(duì)穩(wěn)定和靈活的架構(gòu),在元數(shù)據(jù)管理的構(gòu)件識(shí)別的基礎(chǔ)上引入了基礎(chǔ)服務(wù)層,擴(kuò)展了傳統(tǒng)意義上的元數(shù)據(jù)管理的功能,包含元數(shù)據(jù)管理構(gòu)件、層間接口構(gòu)件、KPI自動(dòng)測(cè)試構(gòu)件三大類:這些構(gòu)件構(gòu)成了ETL基礎(chǔ)和骨架,為系統(tǒng)的穩(wěn)定性和適應(yīng)性奠定了基礎(chǔ)。
評(píng)論