欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

數(shù)據(jù)分析之ELT的基本概念

 更新時間:2023年07月28日 09:19:36   作者:曉之以理的喵~~  
這篇文章主要介紹了數(shù)據(jù)分析之ELT的基本概念, ETL是英文Extract-Transform-Load的縮寫,用來描述將數(shù)據(jù)從來源端經(jīng)過抽取(extract)、轉(zhuǎn)換(transform)、加載(load)至目的端的過程,需要的朋友可以參考下

1.ETL

ETL,是英文Extract-Transform-Load的縮寫,用來描述將數(shù)據(jù)從來源端經(jīng)過抽?。╡xtract)、轉(zhuǎn)換(transform)、加載(load)至目的端的過程。

ETL一詞較常用在數(shù)據(jù)倉庫,但其對象并不限于數(shù)據(jù)倉庫。

它的主要作用是將企業(yè)中分散、非完全結(jié)構(gòu)化、標(biāo)準(zhǔn)不統(tǒng)一的各種數(shù)據(jù),整合到一起,形成企業(yè)級統(tǒng)一數(shù)據(jù)倉庫,為企業(yè)的分析決策提供有質(zhì)量保證的數(shù)據(jù)源。

2.ETL過程

主要包含三大階段,分別是數(shù)據(jù)抽取、數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)加載。

3.ETL流程--數(shù)據(jù)抽取

3.1 關(guān)系型數(shù)據(jù)庫

關(guān)系型數(shù)據(jù)庫數(shù)據(jù)高度結(jié)構(gòu)化、數(shù)據(jù)量不算特別大、數(shù)據(jù)更新相對頻繁、數(shù)據(jù)質(zhì)量較高、數(shù)據(jù)獲取比較方便,分為離線與實(shí)時

離線抽取,應(yīng)用場景是對短時間內(nèi)的更新不敏感,只關(guān)心一段時間后的最終狀態(tài),一般是固定周期定時抽取。

抽取方法,可以采用快照的方式,對整個表做全表快照;或者是采用基于時間字段的增量抽取,但是需要對這個字段的更新場景非常了解。

實(shí)時抽取,通常的應(yīng)用場景是對數(shù)據(jù)的最新狀態(tài)非常敏感,當(dāng)有新數(shù)據(jù)插入或者舊數(shù)據(jù)更新時,需要及時抽取。

抽取方法有很多,其中常用的一種是基于消費(fèi)數(shù)據(jù)庫binlog的方式,如阿里開源的canal。

3.2服務(wù)端程序日志文件

各種日志數(shù)據(jù)混雜在一起(需要過濾出自己需要的)、數(shù)據(jù)格式比較多樣(格式可能不統(tǒng)一)、數(shù)據(jù)量相對較大。

對于這類數(shù)據(jù),通常的方法就是過濾抽取。抽取方法,可以使用flume監(jiān)控文件目錄,或者使用FileBeat實(shí)時監(jiān)控文件內(nèi)容變化。

3.3 客戶端用戶行為數(shù)據(jù)

數(shù)據(jù)量非常大、數(shù)據(jù)源非常分散、數(shù)據(jù)質(zhì)量參差不齊、數(shù)據(jù)結(jié)構(gòu)化程度高。

針對這種數(shù)據(jù),通常的抽取方法,就是專門設(shè)計一個數(shù)據(jù)收集系統(tǒng)來處理收集數(shù)據(jù)的問題。

4.ETL流程--數(shù)據(jù)轉(zhuǎn)換

ETL的核心環(huán)節(jié),也是最復(fù)雜的環(huán)節(jié)。

它的主要目標(biāo)是將抽取到的各種數(shù)據(jù),進(jìn)行數(shù)據(jù)的清洗、格式的轉(zhuǎn)換、缺失值填補(bǔ)、剔除重復(fù)等操作,最終得到一份格式統(tǒng)一、高度結(jié)構(gòu)化、數(shù)據(jù)質(zhì)量高、兼容性好的數(shù)據(jù),為后續(xù)的分析決策提供可靠的數(shù)據(jù)支持。

4.1 ETL流程--數(shù)據(jù)清洗

清洗掉臟數(shù)據(jù),以免混入正常數(shù)據(jù)中,造成數(shù)據(jù)質(zhì)量下降,引導(dǎo)有偏差的錯誤決策。

通常的做法有,md5校驗(yàn)、關(guān)鍵字段檢查、格式類型一致性檢查、無效性檢查等。

(1)md5校驗(yàn)通常用于通過公網(wǎng)傳輸?shù)臄?shù)據(jù),為防止數(shù)據(jù)被篡改,需要比對md5值來保證數(shù)據(jù)的安全性,沒能通過md5檢驗(yàn)比對的數(shù)據(jù)將被視為臟數(shù)據(jù)過濾掉。

(2)關(guān)鍵字段檢查,是指在一條數(shù)據(jù)記錄中,非常關(guān)鍵的字段,如果其值不合法,或者類型不對,將被視為非法數(shù)據(jù)。比如,識別用戶行為的字段,其值不在規(guī)定取值范圍內(nèi)時,將無法識別具體是做了什么操作,將被視為非法數(shù)據(jù)清洗掉。

(3)格式類型一致性檢查,就是檢查一條數(shù)據(jù)記錄的整體格式或者重要字段的類型是否符合規(guī)范,如果不符合,同樣也是沒辦法處理,只能作為臟數(shù)據(jù)處理掉。例如,不合法的日期格式。

(4)無效性檢查,通常是比較嚴(yán)格的過濾方法,它主要目的是為了保證數(shù)據(jù)的高可靠性,通常是事先規(guī)定好數(shù)據(jù)的可信范圍,不滿足的將被視為不可信的無效數(shù)據(jù)。

4.2格式轉(zhuǎn)換

對數(shù)據(jù)格式做統(tǒng)一化規(guī)范化處理,方便后續(xù)的分析作業(yè)能夠更好地使用數(shù)據(jù)。

一般根據(jù)源數(shù)據(jù)格式和目標(biāo)格式的不同,會有不同的實(shí)現(xiàn)。一般包含記錄格式轉(zhuǎn)換和字段格式轉(zhuǎn)換。

記錄格式轉(zhuǎn)換,就是最終將一條記錄轉(zhuǎn)換成什么格式,例如轉(zhuǎn)成json格式或csv格式。

字段格式轉(zhuǎn)換是對字段值進(jìn)行格式的統(tǒng)一化處理,如將長整型時間戳全部轉(zhuǎn)化為人類可讀的日期格式。

4.3 錯誤數(shù)據(jù)處理

這一類錯誤產(chǎn)生的原因是業(yè)務(wù)系統(tǒng)不夠健全,在接收輸入后沒有進(jìn)行判斷直接寫入后臺數(shù)據(jù)庫造成的,比如數(shù)值數(shù)據(jù)輸成全角數(shù)字字符、字符串?dāng)?shù)據(jù)后面有一個回車操作、日期格式不正確、日期越界等。這一類數(shù)據(jù)也要分類,對于類似于全角字符、數(shù)據(jù)前后有不可見字符的問題,只能通過寫SQL語句的方式找出來,然后要求客戶在業(yè)務(wù)系統(tǒng)修正之后抽取。

日期格式不正確的或者是日期越界的這一類錯誤會導(dǎo)致ETL運(yùn)行失敗,這一類錯誤需要去業(yè)務(wù)系統(tǒng)數(shù)據(jù)庫用SQL的方式挑出來,交給業(yè)務(wù)主管部門要求限期修正,修正之后再抽取。

4.4缺失值填補(bǔ)

針對數(shù)據(jù)中缺失的空位進(jìn)行填充,以保證數(shù)據(jù)類型的一致性或完整性。

例如,對于一個數(shù)量類的整數(shù)型字段,當(dāng)其值缺失時,可以考慮填充0。

這里要注意的是缺失值填充要相對謹(jǐn)慎一些才行,因?yàn)檫@個過程相當(dāng)于是在修改原始數(shù)據(jù),一定要確保填充的值對后續(xù)的分析不會造成誤導(dǎo)性的影響。

4.5剔除重復(fù)數(shù)據(jù)

防止數(shù)據(jù)重復(fù)上傳,造成誤判。剔除重復(fù)數(shù)據(jù),是非常有必要的,也是保證數(shù)據(jù)質(zhì)量的前提。

數(shù)據(jù)清洗是一個反復(fù)的過程,不可能在幾天內(nèi)完成,只有不斷的發(fā)現(xiàn)問題,解決問題。

對于是否過濾,是否修正一般要求客戶確認(rèn),對于過濾掉的數(shù)據(jù),寫入Excel文件或者將過濾數(shù)據(jù)寫入數(shù)據(jù)表,在ETL開發(fā)的初期可以每天向業(yè)務(wù)單位發(fā)送過濾數(shù)據(jù)的郵件,促使他們盡快地修正錯誤,同時也可以做為將來驗(yàn)證數(shù)據(jù)的依據(jù)。

數(shù)據(jù)清洗需要注意的是不要將有用的數(shù)據(jù)過濾掉,對于每個過濾規(guī)則認(rèn)真進(jìn)行驗(yàn)證,并要用戶確認(rèn)。

4.6增加必要信息

對數(shù)據(jù)增加一些追蹤信息或者是生成一些必要的標(biāo)識字段。有些字段是和具體的業(yè)務(wù)強(qiáng)相關(guān)的,也有一些通用的字段。

比如,源數(shù)據(jù)里只有長整型時間戳字段,可以增加可讀性比較高的日期時間字段,還可以增加數(shù)據(jù)來源字段便于追蹤數(shù)據(jù)血緣關(guān)系。

5.ETL流程--.數(shù)據(jù)加載

把數(shù)據(jù)加載至目的地,比如數(shù)據(jù)倉庫中。

通常的做法是,將處理好的數(shù)據(jù)寫成特定格式(如parquet、csv等)的文件,然后再把文件掛載到指定的表分區(qū)上。

也有些表的數(shù)據(jù)量很小,不會采用分區(qū)表,而是直接生成最終的數(shù)據(jù)表。

6.ETL--日志處理

(1)執(zhí)行過程日志,這一部分日志是在ETL執(zhí)行過程中每執(zhí)行一步的記錄,記錄每次運(yùn)行每一步驟的起始時間,影響了多少行數(shù)據(jù),流水賬形式。

(2)錯誤日志,當(dāng)某個模塊出錯的時候?qū)戝e誤日志,記錄每次出錯的時間、出錯的模塊以及出錯的信息等。

(3)總體日志,只記錄ETL開始時間、結(jié)束時間是否成功信息。如果使用ETL工具,ETL工具會自動產(chǎn)生一些日志,這一類日志也可以作為ETL日志的一部分。

到此這篇關(guān)于數(shù)據(jù)分析之ELT的基本概念的文章就介紹到這了,更多相關(guān)ELT的基本概念內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論