ETL中前期數(shù)據(jù)分析、變化數(shù)據(jù)探測,數(shù)據(jù)獲取 注意事項(xiàng)

網(wǎng)絡(luò)上或者數(shù)據(jù)倉庫工具箱都提到總共會有34個子系統(tǒng)。個人理解的是這34個子系統(tǒng)都不會獨(dú)立存在,也不需要一次全部去實(shí)現(xiàn)。根據(jù)當(dāng)前業(yè)務(wù)的發(fā)展的階段,當(dāng)前最緊急的問題展開。

獲取數(shù)據(jù)

從源系統(tǒng)中收集原始數(shù)據(jù),為之后的數(shù)據(jù)處理提供“糧食”,存儲在ETL環(huán)境的磁盤上。

子系統(tǒng)一:數(shù)據(jù)分析

對源數(shù)據(jù)進(jìn)行分析,包括數(shù)據(jù)內(nèi)容,一致性,結(jié)構(gòu)的描述。一但確認(rèn)數(shù)據(jù)源就要立即展開輕量級的評估工作。最終確定數(shù)據(jù)源是否可用,今早發(fā)現(xiàn)數(shù)據(jù)源是否能夠支撐業(yè)務(wù)。


數(shù)據(jù)分析

子系統(tǒng)二:變化數(shù)據(jù)獲取系統(tǒng)

將最新的數(shù)據(jù)源分離出來被稱為變化數(shù)據(jù)獲取(Change Data Capture,CDC),背后的思想是:僅僅傳輸那些上次加載后發(fā)生變化的數(shù)據(jù)。


變化數(shù)據(jù)
變化數(shù)據(jù)獲取子系統(tǒng)主要目標(biāo)包括:

1,分離變化數(shù)據(jù)以允許可選在加載過程而不是完全更新加載
2,獲取源數(shù)據(jù)所有的變化(刪除、更新和插入),包括由非標(biāo)準(zhǔn)接口所產(chǎn)生的變化
3,用變化原因標(biāo)記變化了的數(shù)據(jù),以區(qū)分對錯誤更正和真正的更新
4,利用其它的元數(shù)據(jù)支持合規(guī)性跟蹤
5,盡早執(zhí)行CDC步驟,最好是在大量數(shù)據(jù)傳輸?shù)綌?shù)據(jù)倉庫前完成

獲取源數(shù)據(jù)變化可以采取的幾種方式

1,審計(jì)列。這些列一般都是在數(shù)據(jù)庫在插入或者更新的時候,激活觸發(fā)器自動而產(chǎn)生的。這些一般存儲著一條記錄的插入或者修改時間
2,定時獲取。通常會選擇所有那些建立日期或者修改日期字段等于SysDate-1 的行。風(fēng)險在于如果晚間加載過程失敗并且推遲了一天,那就意味著丟失的數(shù)據(jù)將無法再進(jìn)入數(shù)據(jù)倉庫
3,全差異比較。將昨天和今天的數(shù)據(jù)進(jìn)行逐個比較,找到那些發(fā)生了的變化的數(shù)據(jù)。缺點(diǎn)是:對資源消耗巨大??梢試L試采用CRC(Cyclie Redundancy Checksum)快速檢出某個復(fù)雜的記錄是否發(fā)生了變化,而不需要對每一個字段進(jìn)行校驗(yàn)
4,數(shù)據(jù)庫日志抓取。一旦數(shù)據(jù)日志被情況,日志中包含的所有事務(wù)都會丟失,一定要和DBA溝通好,請他未為滿足特殊需求設(shè)立一個專門的日志。

子系統(tǒng)三:獲取系統(tǒng)

ETL系統(tǒng)通常會被要求從范圍廣泛的系統(tǒng)中獲取設(shè)計(jì)多種不同類型和固有難題的數(shù)據(jù)。這些不是ETL工具或者小組經(jīng)驗(yàn)可以支持的,在此情況下,請求所有者將這些原系統(tǒng)轉(zhuǎn)換為平面文件。
1,對于比較古老的系統(tǒng),最容易的辦法是采用文件形式,將這些文件移動到ETL服務(wù)器上。
2,如果浙西數(shù)據(jù)在數(shù)據(jù)庫中,可以按照流來設(shè)置,其中數(shù)據(jù)流出源系統(tǒng),通過轉(zhuǎn)換引擎,從單一過程進(jìn)入過渡數(shù)據(jù)庫。
3,如果數(shù)據(jù)量巨大,需要提前對數(shù)據(jù)進(jìn)行壓縮。且在加密前壓縮。

數(shù)據(jù)清洗和整合

清洗與整合數(shù)據(jù)是ETL系統(tǒng)的關(guān)鍵任務(wù)。
如果做好數(shù)據(jù)清洗的工作?提高數(shù)據(jù)數(shù)量文化與過程
1,通過技術(shù)方面的解決方案,增加錄入數(shù)據(jù)的限制性約束,來改善數(shù)據(jù)質(zhì)量的問題。
2,當(dāng)然純粹的通過技術(shù)的方式無法取得成功。我們需要逐步建設(shè)數(shù)據(jù)質(zhì)量文化。
3,建設(shè)數(shù)據(jù)質(zhì)量文化的經(jīng)驗(yàn):
????定義一個針對數(shù)據(jù)質(zhì)量文化的高級別承諾。
????在執(zhí)行層面上發(fā)起過程改造
????投資用于改進(jìn)數(shù)據(jù)錄入環(huán)境
????投資改進(jìn)應(yīng)用集成
????投資用于改變工作過程
????促進(jìn)端到端的團(tuán)隊(duì)意識
????促進(jìn)部門間合作
????大力褒獎卓越的數(shù)據(jù)質(zhì)量
????不斷度量并改進(jìn)數(shù)據(jù)質(zhì)量

數(shù)據(jù)獲取

子系統(tǒng)四:數(shù)據(jù)清洗系統(tǒng)

ETL數(shù)據(jù)清洗過程通常希望訂正臟數(shù)據(jù),同事希望數(shù)據(jù)倉庫能夠提供對組織生產(chǎn)系統(tǒng)中數(shù)據(jù)的準(zhǔn)確描述。
數(shù)據(jù)清洗系統(tǒng)的目標(biāo)
1,提供清洗數(shù)據(jù),獲取數(shù)據(jù)質(zhì)量事件,以及度量并最終控制數(shù)據(jù)倉庫中的數(shù)據(jù)質(zhì)量的全面結(jié)構(gòu)。
2,今早診斷并分類數(shù)據(jù)質(zhì)量問題
3,獲得更好的數(shù)據(jù)
4,提供在ETL中可能遇到的數(shù)據(jù)錯誤的專門描述
5,獲取所有數(shù)據(jù)量錯誤以及隨時間變化精確度量數(shù)據(jù)質(zhì)量矩陣的框架
6,附加到最終數(shù)據(jù)上的質(zhì)量可信度度量
數(shù)據(jù)清洗的做法:
1,質(zhì)量檢測。每個質(zhì)量加測單元就是一個測試單元,如果測試成功,就會不會有事情發(fā)生,否則一定會在錯誤事件模式中出現(xiàn)錯誤行,并做選擇,是終止過程,還是將錯誤數(shù)據(jù)發(fā)到掛起狀態(tài),還是對數(shù)據(jù)做標(biāo)記。
2,對質(zhì)量事件的響應(yīng)。上面已經(jīng)提到。
????終止過程
????錯誤記錄發(fā)送到擱置文件中,以便后續(xù)處理
????對數(shù)據(jù)進(jìn)行標(biāo)注,并將其放到流水線下一步
無論如何,第三步是目前為止最好的選擇。


數(shù)據(jù)清洗
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容