ETL技術(shù)規(guī)范通用_第1頁(yè)
ETL技術(shù)規(guī)范通用_第2頁(yè)
ETL技術(shù)規(guī)范通用_第3頁(yè)
ETL技術(shù)規(guī)范通用_第4頁(yè)
ETL技術(shù)規(guī)范通用_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、ETL技術(shù)規(guī)范第1章.ETL設(shè)計(jì)規(guī)范ETL設(shè)計(jì)規(guī)范主要應(yīng)用于ETUg碼的前期工作。由于ETL全過(guò)程是面向數(shù)據(jù)的,主要工作為數(shù)據(jù)的抽?。‥xtract)、轉(zhuǎn)換(Transform)、裝載(Loading),正確界定所涉及到的數(shù)據(jù)范圍和應(yīng)當(dāng)應(yīng)用的轉(zhuǎn)換邏輯對(duì)于后續(xù)的編碼工作非常重要,這些數(shù)據(jù)關(guān)系的確定,我們稱(chēng)之為Mapping(數(shù)據(jù)映射)。正確定義數(shù)據(jù)映射關(guān)系是ETL成功實(shí)施的前提,一個(gè)完善的Mapping應(yīng)該包含以下幾個(gè)部分:1.1源數(shù)據(jù)集屬性此部分應(yīng)該詳細(xì)描述數(shù)據(jù)源的相關(guān)屬性,包括:實(shí)體名稱(chēng)一一含數(shù)據(jù)來(lái)源名稱(chēng)(DSN)、所有者等信息;字段名稱(chēng)一一英文名稱(chēng);字段簡(jiǎn)述一一中文名稱(chēng),如為參數(shù)信息應(yīng)該有

2、相關(guān)取值解釋?zhuān)缧詣e字段(1:男;2:女;0:不詳)類(lèi)型一一字段類(lèi)型,含長(zhǎng)度和精度信息;非空屬性一一字段是否可以為空;數(shù)據(jù)源表表名字段說(shuō)明字段名稱(chēng)字段美型ICInventory物料工DFItenilDinteger批號(hào)FBatchNovarchar(255)倉(cāng)庫(kù)標(biāo)沃FStockIDinteger存貨數(shù)量FQtydecimal(2810)存貨余額FBaldecimal(28510)行位標(biāo)識(shí)FStockPlacelDinteger保質(zhì)期FKFPeriodinteger生產(chǎn)日期FKEDatebinary1.2 目標(biāo)數(shù)據(jù)集屬性此部分應(yīng)該詳細(xì)描述目標(biāo)數(shù)據(jù)集的相關(guān)屬性,包括:實(shí)體名稱(chēng)一一含數(shù)據(jù)來(lái)源名稱(chēng)(D

3、SN)、所有者等信息;字段名稱(chēng)一一英文名稱(chēng),建議根據(jù)字段含義來(lái)命名,而不是簡(jiǎn)單用拼音來(lái)定義字段(此部分由負(fù)責(zé)設(shè)計(jì)數(shù)據(jù)集的人員控制);字段簡(jiǎn)述一一中文名稱(chēng),對(duì)于保留字段應(yīng)該給出默認(rèn)值;類(lèi)型一一字段類(lèi)型,含長(zhǎng)度和精度信息;非空屬性一一字段是否可以為空;序號(hào)字段含義宇段名舜字眼美塞主曾取信說(shuō)明1數(shù)據(jù)IDFInterlDintegerTRUE數(shù)據(jù)庫(kù)中已經(jīng)定義了標(biāo)識(shí)字段、不需要去值2數(shù)據(jù)來(lái)源datasourcetinyint根據(jù)數(shù)據(jù)源來(lái)對(duì)應(yīng)相應(yīng)的值,見(jiàn)說(shuō)明一3物料IDFltemlDinteger直接COPY4批號(hào)FBatchNovarchar(255)直接COFY5倉(cāng)庫(kù)標(biāo)識(shí)FStockIDinteger

4、直接COPY6存貨數(shù)量FQty_decimal(23lOj直接COPY7存貨余籟FBaldecimal(2810)直接COPY8占位標(biāo)識(shí)FStockPlacelDinteger直推COPY9保質(zhì)期FKFPeriodinteger直接COPY10生產(chǎn)日期FKFDatedatetime1.3 ETL規(guī)則主要描述ETL各個(gè)環(huán)節(jié)的轉(zhuǎn)換規(guī)則,包括:數(shù)據(jù)源過(guò)濾規(guī)則一一描述從源數(shù)據(jù)集獲取數(shù)據(jù)過(guò)程中過(guò)濾掉記錄的規(guī)則;關(guān)聯(lián)規(guī)則一一當(dāng)源數(shù)據(jù)集為多個(gè)時(shí),描述相互之間的關(guān)聯(lián)關(guān)系;列轉(zhuǎn)換規(guī)則一一描述源數(shù)據(jù)集到目標(biāo)數(shù)據(jù)集的字段間的轉(zhuǎn)換規(guī)則;此規(guī)則非常重要,要清晰描述字段間的邏輯關(guān)系,包括業(yè)務(wù)邏輯;目標(biāo)數(shù)據(jù)集更新規(guī)則一一描

5、述目標(biāo)數(shù)據(jù)集的更新策略,包括更新機(jī)制和更新頻度,如“每日全量更新”、“每周增量更新”等;ETL作業(yè)列表一一由于ETL所開(kāi)發(fā)的作業(yè)之間包含一定的業(yè)務(wù)邏輯和編碼邏輯,所以調(diào)度過(guò)程中應(yīng)遵循一定的邏輯順序,此部分主要用來(lái)明確調(diào)度的順序,包括:作業(yè)名稱(chēng)一一實(shí)現(xiàn)Mapping的作業(yè)名稱(chēng),包括該作業(yè)功能描述;調(diào)度順序一一用序號(hào)或者是流程圖模式描述作業(yè)的調(diào)度順序,需要綜合考慮業(yè)務(wù)邏輯、編碼邏輯以及系統(tǒng)資源等多方面情況,在保證業(yè)務(wù)邏輯和編碼邏輯的基礎(chǔ)上,通過(guò)控制調(diào)度,最大限度地合理利用系統(tǒng)資源;SteplStep2Step3Step4Step6Step6CCYCLCL.SCMCMLMSR_PRDPDPD_HIS

6、TIPIP_HISTOUOU_HISTPD_HLPROU_X_OUOU_X_LPAR_HISTAR_X_IPTXN/TXN_EVAK_TXN_SKYAR_BAL_ODD/AR_SAL_EVNCNL_TKN_SMYAR_SMYAR_PFTJiHLCST_PFT_ANL參數(shù)列表一一列舉每個(gè)作業(yè)中所使用的參數(shù),不同作業(yè)中的相同參數(shù)最好使用相同的名稱(chēng),便于調(diào)度時(shí)進(jìn)行控制。第2章.ETL開(kāi)發(fā)規(guī)范ETL項(xiàng)目的開(kāi)發(fā)往往是多人團(tuán)隊(duì)開(kāi)發(fā)模式,由于周期較長(zhǎng),期間難免會(huì)出現(xiàn)開(kāi)發(fā)人員交替現(xiàn)象。無(wú)論是開(kāi)發(fā)過(guò)程中的人員交替還是從開(kāi)發(fā)到系統(tǒng)運(yùn)營(yíng)之間的轉(zhuǎn)換,都需要良好的交接。為保證項(xiàng)目開(kāi)發(fā)各個(gè)時(shí)期的平穩(wěn)過(guò)度及順利交接,在開(kāi)發(fā)

7、過(guò)程中,應(yīng)該遵循一定的開(kāi)發(fā)規(guī)范。主要包括:命名規(guī)范結(jié)構(gòu)規(guī)范代碼封裝規(guī)范2.1 命名規(guī)范2.1.1 作業(yè)命名規(guī)范ETL是一個(gè)復(fù)雜的工作,數(shù)據(jù)倉(cāng)庫(kù)的建設(shè)一般會(huì)花費(fèi)70%以上的工作量在ETL±面,而且這是一個(gè)細(xì)致活,任何一點(diǎn)小的錯(cuò)誤都有可能造成后續(xù)工作的出錯(cuò)和失?。恢关巴?,數(shù)據(jù)倉(cāng)庫(kù)需要不斷的更新維護(hù),相應(yīng)的ETL程序也需要進(jìn)行相關(guān)的更新維護(hù),所花費(fèi)的成本也很大。一個(gè)好的命名規(guī)范,能夠使ETL的程序更清晰易懂,很好地避免了開(kāi)發(fā)過(guò)程中出錯(cuò);同時(shí)更好的可讀性,也極大地減低了ETL程序的更新維護(hù)成本。作業(yè)命名規(guī)則:JOBTYPEDESCRIPTIONSEQNUMJOBTYPE作業(yè)類(lèi)型DESCRIP

8、TIQN有效的描述信息SEQNUM作業(yè)的編號(hào)。由于一定的原因,有可能需要拆分作業(yè)數(shù)據(jù)多次加載數(shù)據(jù),這個(gè)編號(hào)就可以區(qū)分加載。如果一次加載可以成功的話(huà)這個(gè)編號(hào)就不需要了。2.1.2 作業(yè)內(nèi)部命名規(guī)范對(duì)于作業(yè)內(nèi)部命名,應(yīng)該遵循代碼的可讀性與可傳遞性原則,命名規(guī)則:FunctionDescriptionFunction:表示用途,Ex抽取,Create創(chuàng)建,Ld裝載,Lookup:查找等Description:有意義的描述,比如數(shù)據(jù)庫(kù)表名,文件名等。2.1.3 作業(yè)注釋規(guī)范ETL開(kāi)發(fā)過(guò)程往往要經(jīng)歷一個(gè)較長(zhǎng)時(shí)間段,為了便于團(tuán)隊(duì)開(kāi)發(fā)和后期維護(hù),除開(kāi)發(fā)設(shè)計(jì)文檔要齊全外,還應(yīng)該在作業(yè)設(shè)計(jì)界面中適當(dāng)加注釋信息,

9、主要包括作業(yè)功能說(shuō)明、所屬模塊、開(kāi)發(fā)時(shí)間、開(kāi)發(fā)人員等信息。2.2 結(jié)構(gòu)規(guī)范2.2.1 作業(yè)目錄組織結(jié)構(gòu)對(duì)于ETLPROJECT言,我們需要?jiǎng)澐智逦哪夸浗Y(jié)構(gòu),根據(jù)一定的規(guī)則將作業(yè)組織起來(lái),這樣無(wú)論是對(duì)ETL設(shè)計(jì)人員,運(yùn)行人員,維護(hù)人員,都有很大的幫助。目錄結(jié)構(gòu)劃分遵循以下原則:1. 體現(xiàn)作業(yè)的依賴(lài)關(guān)系。2. 體現(xiàn)作業(yè)功能。3. 獨(dú)立放置二次開(kāi)發(fā)作業(yè)。2.2.2 模塊化結(jié)構(gòu)ETL按照處理邏輯分為E階段(Extract)、T階段(Transformer)和L階段(Loading)。E、T、L階段可能分處不同的服務(wù)器上,需要跨網(wǎng)絡(luò)運(yùn)行,他們之問(wèn)的配置情況可能存在較大的差異,而多數(shù)ETL設(shè)計(jì)的處理機(jī)制

10、是串行運(yùn)行機(jī)制,基于數(shù)據(jù)行處理。如果E、T、L的過(guò)程同時(shí)運(yùn)行,那么整體的處理能力應(yīng)該是三個(gè)環(huán)節(jié)中效率最低的那個(gè)環(huán)節(jié)的處理水平。如果我們將三個(gè)環(huán)節(jié)的設(shè)計(jì)分開(kāi),實(shí)行模塊化流程處理,即E環(huán)節(jié)、T環(huán)節(jié)、L環(huán)節(jié)均設(shè)計(jì)成可獨(dú)立運(yùn)行的模塊,那么在整個(gè)處理過(guò)程中,將可以最大限度發(fā)揮功效,不會(huì)因?yàn)橛眯蕴幚頇C(jī)制而相互制約。另外,模塊化的流程設(shè)計(jì),對(duì)于開(kāi)發(fā)階段的調(diào)試以及維護(hù)階段的出錯(cuò)處理都提供了良好的輔助作用。第3章.ETL維護(hù)規(guī)范3.1 日志檢查3.1.1 日志文件報(bào)告ETL®供日志監(jiān)測(cè)和報(bào)告功能。報(bào)告分匯總報(bào)告和詳細(xì)報(bào)告。匯總報(bào)告報(bào)告內(nèi)容:作業(yè)總數(shù),WARNING作業(yè)數(shù),成功作業(yè)數(shù),失敗作業(yè)數(shù),開(kāi)始時(shí)

11、間,結(jié)束時(shí)間等詳細(xì)報(bào)告報(bào)告內(nèi)容:作業(yè)名稱(chēng),開(kāi)始時(shí)間,結(jié)束時(shí)間,運(yùn)行狀態(tài)等3.1.2 作業(yè)狀態(tài)排查在ETL管理控制臺(tái)上,可點(diǎn)擊進(jìn)入查看作業(yè)更為詳細(xì)的狀態(tài)及出錯(cuò)信息,以便于維護(hù)更正。3.2 出錯(cuò)處理即使是經(jīng)過(guò)嚴(yán)格測(cè)試的程序,在實(shí)際運(yùn)行中仍然會(huì)因?yàn)榉N種原因而導(dǎo)致出錯(cuò),根據(jù)ETL的處理邏輯,我們將錯(cuò)誤分為以下三類(lèi):抽取錯(cuò)誤:簡(jiǎn)稱(chēng)E(Extract)類(lèi)錯(cuò)誤轉(zhuǎn)換錯(cuò)誤:簡(jiǎn)稱(chēng)T(Transformer-)類(lèi)錯(cuò)誤裝載錯(cuò)誤:簡(jiǎn)稱(chēng)L(Loadincj)類(lèi)錯(cuò)誤3.2.1 E類(lèi)錯(cuò)誤這類(lèi)錯(cuò)誤發(fā)生在數(shù)據(jù)抽取階段。諸如數(shù)據(jù)庫(kù)連接故障、網(wǎng)絡(luò)資源不足等原因都可以導(dǎo)致此類(lèi)故障。由于此類(lèi)錯(cuò)誤發(fā)生時(shí),數(shù)據(jù)還處于原始狀態(tài),未發(fā)生轉(zhuǎn)換,對(duì)

12、目標(biāo)數(shù)據(jù)集也未產(chǎn)生任何影響,理論上可以看做是ETL處理未開(kāi)始,因此處理此類(lèi)錯(cuò)誤相對(duì)簡(jiǎn)單,只需要排除故障原因后重新運(yùn)行ETL處理即可。3.2.2 T類(lèi)錯(cuò)誤這類(lèi)錯(cuò)誤發(fā)生在數(shù)據(jù)轉(zhuǎn)換階段。引發(fā)原因較多,既有環(huán)境資源故障的可能,也有設(shè)計(jì)邏輯缺陷的可能。此類(lèi)錯(cuò)誤發(fā)生在ETL的中間階段,應(yīng)根據(jù)實(shí)際故障原因進(jìn)行處理。對(duì)于環(huán)境資源故障所引發(fā)的錯(cuò)誤,只需要排除故障原因,重新運(yùn)行ETL的T(Transformer)階段和1,(Loading)階段即可。對(duì)于設(shè)計(jì)邏輯缺陷所引發(fā)的錯(cuò)誤,處理相對(duì)復(fù)雜一一首先要定位錯(cuò)誤并修正程序,同時(shí)要明確該錯(cuò)誤是否涉及到數(shù)據(jù)源的抽取邏輯,如果未涉及到,則在修正邏輯后重新運(yùn)行T(Trans

13、former-)階段和L(Loading)階段程序即可;若邏輯錯(cuò)誤與數(shù)據(jù)源相關(guān),則需要重新運(yùn)行包括E(Extract)階段在內(nèi)的整個(gè)ETL處理。3.2.3 L類(lèi)錯(cuò)誤這類(lèi)錯(cuò)誤發(fā)生在數(shù)據(jù)裝載階段,除環(huán)境資源故障原因外,最大可能性是需要裝載到目標(biāo)集的數(shù)據(jù)違反了目標(biāo)數(shù)據(jù)集數(shù)據(jù)約束,如主鍵重復(fù)、非空字段出現(xiàn)空值、數(shù)據(jù)超長(zhǎng)、類(lèi)型不匹配等等。因環(huán)境資源故障(網(wǎng)絡(luò)故障等等)所引發(fā)的出錯(cuò),處理簡(jiǎn)單,只需排除故障,將目標(biāo)數(shù)據(jù)集恢復(fù)到裝載前狀態(tài),重新運(yùn)行L階段的處理即可。對(duì)于非環(huán)境資源所引發(fā)的問(wèn)題,處理與T類(lèi)錯(cuò)誤類(lèi)似:先定位原因,根據(jù)以往的經(jīng)驗(yàn),問(wèn)題多數(shù)發(fā)生在T階段,可能存在設(shè)計(jì)缺陷或者運(yùn)行邏輯缺陷,對(duì)T部分的處理

14、進(jìn)行修正,并將目標(biāo)數(shù)據(jù)集恢復(fù)到裝載前狀態(tài),重新運(yùn)行T階段和L階段的處理。在上一章“設(shè)計(jì)規(guī)范”里,我們弓S調(diào)了模塊化的流程設(shè)計(jì),將E階段、T階段、L階段按流程分模塊化設(shè)計(jì),其實(shí)不僅僅是為了解決系統(tǒng)資源瓶頸問(wèn)題,同時(shí)也是為了方便出錯(cuò)時(shí)進(jìn)行處理。在發(fā)生T類(lèi)和L類(lèi)錯(cuò)誤時(shí),由于各處理階段設(shè)計(jì)相對(duì)獨(dú)立,對(duì)于不同階段的問(wèn)題,只需要單獨(dú)運(yùn)行與該階段相關(guān)的處理,而無(wú)須將所有處理過(guò)程都重新運(yùn)行,大大減低重復(fù)運(yùn)行的代價(jià)。3.3 備份、恢復(fù)與版本控制ETL系統(tǒng)的備份包括兩個(gè)部分,即ETL運(yùn)行環(huán)境備份及數(shù)據(jù)庫(kù)的備份。運(yùn)行備份是指為保證如果運(yùn)行的ETL系統(tǒng)崩潰時(shí)可以通過(guò)備份的ETLS統(tǒng)繼續(xù)完成ETL的工作,為達(dá)到這個(gè)目的,應(yīng)安裝兩臺(tái)ETL環(huán)境,并建立相同的配置,其中一臺(tái)處于運(yùn)行狀態(tài),而另一臺(tái)為待機(jī)狀態(tài)。每日在日常ETL完成后對(duì)運(yùn)行環(huán)境的各文件進(jìn)行備份,即將ETL的運(yùn)行目錄轉(zhuǎn)儲(chǔ)到外掛磁盤(pán)或外部存儲(chǔ)介質(zhì)。而數(shù)據(jù)庫(kù)的數(shù)據(jù)備份對(duì)于ETL非常重要,建議系統(tǒng)管理員每日做數(shù)據(jù)的完全備份,每天保留一個(gè)備份文件,建議至少保留7天。ETL系統(tǒng)的恢復(fù)相應(yīng)也包括兩個(gè)部分,即運(yùn)行恢復(fù)及數(shù)據(jù)恢復(fù)運(yùn)行恢復(fù)是指當(dāng)運(yùn)行系統(tǒng)遇到嚴(yán)重故障如硬件故障、操作系統(tǒng)崩潰等無(wú)法及時(shí)修復(fù)時(shí),啟用備份的運(yùn)行系統(tǒng)繼續(xù),通過(guò)將上一日備份的ETL環(huán)境恢復(fù)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論