亚洲精品久久久久久第一页-人妻少妇精彩视品一区二区三区-91国产自拍免费视频-免费一级a在线播放视频正片-少妇天天日天天射天天爽-国产大屁股喷水视频在线观看-操美女骚穴抽插性爱视频-亚洲 欧美 中文字幕 丝袜-成人免费无码片在线观看

ETL算法詳解 etl什么意思


ETL算法詳解 etl什么意思

文章插圖
**一、ETL定義 **
ETL是將業(yè)務(wù)系統(tǒng)的數(shù)據(jù)經(jīng)過抽取、清洗轉(zhuǎn)換之后加載到數(shù)據(jù)倉庫的過程,目的是將企業(yè)中的分散、零亂、標(biāo)準(zhǔn)不統(tǒng)一的數(shù)據(jù)整合到一起,為企業(yè)的決策提供分析依據(jù) 。
二、ETL算法導(dǎo)圖
三、算法應(yīng)用場(chǎng)景
這8種ETL算法,其中主要分成4大類,增量累加、拉鏈算法是更符合數(shù)據(jù)倉庫歷史數(shù)據(jù)追蹤的算法,但現(xiàn)實(shí)中基于業(yè)務(wù)及性能考慮,往往存在全刪全插、增量累全算法的數(shù)據(jù)表應(yīng)用 。
四、算法詳解
1、全刪全插算法
用DML語句中的Delete/Insert實(shí)現(xiàn)邏輯,主要應(yīng)用在維表、參數(shù)表、主檔表加載上,即適合源表是全量數(shù)據(jù)表,該數(shù)據(jù)表業(yè)務(wù)邏輯只需保存當(dāng)前最新全量數(shù)據(jù),不需跟蹤過往歷史信息 。
SQL代碼模型:
–步驟1. 清空目標(biāo)表
TRUNCATE TABLE <目標(biāo)表名>;
–步驟2. 全量插入
INSERT INTO <目標(biāo)表名> (字段1,***)
SELECT 字段***
FROM <源表>
***JOIN <關(guān)聯(lián)數(shù)據(jù)>
WHERE ***;
2、增量累全算法
用Upsert實(shí)現(xiàn)邏輯,主要應(yīng)用在參數(shù)表、主檔表加載上,即源表可以是增量或全量數(shù)據(jù)表,目標(biāo)表始終最新最全記錄 。
SQL代碼模型:
–步驟1. 生成加工源表 Create temp Table <臨時(shí)表> ***;
INSERT INTO <臨時(shí)表> (字段***)
SELECT 字段***
FROM <源表>
***JOIN <關(guān)聯(lián)數(shù)據(jù)>
WHERE ***;
— 步驟2. 可利用Merge Into實(shí)現(xiàn)累全,當(dāng)前也可以采用分步Delete/Insert或Update/Insert操作
Merge INTO <目標(biāo)表> As T1 (字段***)
Using <臨時(shí)表> as S1
on (PK)
when Matched then
update set Colx = S1.Colx ***
when Not Matched then
INSERT (字段***) values (字段*** );
3、增量累加
用Append實(shí)現(xiàn)邏輯,主要應(yīng)用在流水表加載上,即每日產(chǎn)生的流水、事件數(shù)據(jù),追加到目標(biāo)表中保留全歷史數(shù)據(jù) 。流水表、快照表、統(tǒng)計(jì)分析表等均是通過該邏輯實(shí)現(xiàn) 。
SQL代碼模型:
–步驟1.插入目標(biāo)表
INSERT INTO <目標(biāo)表> (字段1***)
SELECT 字段***
FROM <源表>
***JOIN <關(guān)聯(lián)數(shù)據(jù)>
WHERE ***;
4、全歷史拉鏈算法
拉鏈表定義:是一張至少存在PK字段、跟蹤變化的字段、開鏈日期、閉鏈日期組成的數(shù)據(jù)倉庫ETL數(shù)據(jù)表 。
拉鏈表優(yōu)勢(shì):根據(jù)開鏈、閉鏈日期可以快速提取對(duì)應(yīng)日期有效數(shù)據(jù),對(duì)于跟蹤源系統(tǒng)非事件流水類表數(shù)據(jù),拉鏈算法發(fā)揮越大作用,源業(yè)務(wù)系統(tǒng)通常每日變化數(shù)據(jù)有限,通過拉鏈加工可以大大降低每日打快照帶來的空間開銷,且不損失數(shù)據(jù)變化歷史 。
全歷史拉鏈表算法實(shí)現(xiàn)邏輯:提取當(dāng)前有效記錄-提取當(dāng)日源系統(tǒng)最新數(shù)據(jù)-根據(jù)PK字段比對(duì)當(dāng)前有效記錄與最新源表,更新目標(biāo)表當(dāng)前有效記錄,進(jìn)行閉鏈操作-根據(jù)全字段比對(duì)最新源表與當(dāng)前有效記錄,插入目標(biāo)表 。
SQL代碼模型:
–步驟1. 提取當(dāng)前有效記錄
Insert into <臨時(shí)表-開鏈-pre> (不含開閉鏈字段***)
Select 不含開閉鏈字段***
From <目標(biāo)表>
Where 結(jié)束日期 =date'<最大日期>’;
–步驟2. 提取當(dāng)日源系統(tǒng)最新數(shù)據(jù)
<源表臨時(shí)表-cur>
— 步驟3 今天全部開鏈的數(shù)據(jù),即包含今天全新插入、數(shù)據(jù)發(fā)生變化的記錄
Insert Into <臨時(shí)表-增量-ins>
Select 不含開閉鏈字段***
From <源表臨時(shí)表-cur>
where (不含開閉鏈字段***) not in
(Select 不含開閉鏈字段***
From <臨時(shí)表-開鏈-pre> );— 4 今天需要閉鏈的數(shù)據(jù),即今天發(fā)生變化的記錄


以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問題,請(qǐng)您及時(shí)就醫(yī)或請(qǐng)專業(yè)人士給予相關(guān)指導(dǎo)!

「愛刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對(duì)您有所幫助: