Insert into <臨時(shí)表-增量-upd>
Select 不含開(kāi)閉鏈字段***,開(kāi)始時(shí)間
From <臨時(shí)表-開(kāi)鏈-pre>
where (不含開(kāi)閉鏈字段***) not in
(Select 不含開(kāi)閉鏈字段***
From <臨時(shí)表-開(kāi)鏈-cur>);
–步驟5 更新閉鏈數(shù)據(jù),即歷史記錄閉鏈(刪除-插入替代更新)
DELETE FROM <目標(biāo)表>
WHERE (PK***) IN
(Select PK*** From <臨時(shí)表-增量-upd>)
AND 結(jié)束日期=date'<最大日期>’;
INSERT INTO <目標(biāo)表>
(不含開(kāi)閉鏈字段***,開(kāi)始時(shí)間,結(jié)束日期)Select 不含開(kāi)閉鏈字段***,開(kāi)始時(shí)間,date'<數(shù)據(jù)日期>’
From <臨時(shí)表-增量-upd>;
— 6 插入開(kāi)鏈數(shù)據(jù),即當(dāng)日新增記錄
INSERT INTO <目標(biāo)表>
(不含開(kāi)閉鏈字段***,開(kāi)始時(shí)間,結(jié)束日期)Select 不含開(kāi)閉鏈字段***,date'<數(shù)據(jù)日期>’,date'<最大日期>’
From <臨時(shí)表-增量-ins>;
5、增量拉鏈算法
算法實(shí)現(xiàn)邏輯是提取上日開(kāi)鏈數(shù)據(jù)-PK相同變化記錄,關(guān)閉舊記錄鏈,開(kāi)啟新記錄鏈-PK不同,源表存在,新增開(kāi)鏈記錄 。增量拉鏈,目的是追蹤數(shù)據(jù)增量變化歷史,根據(jù)PK比對(duì)新拉一條開(kāi)鏈數(shù)據(jù) 。
SQL代碼模型:
— 步驟1. 提取當(dāng)前有效記錄
Insert into <臨時(shí)表-開(kāi)鏈-pre> (不含開(kāi)閉鏈字段***)
Select 不含開(kāi)閉鏈字段***
From <目標(biāo)表>
Where 結(jié)束日期 =date'<最大日期>’;
–步驟2. 提取當(dāng)日源系統(tǒng)增量記錄
<源表臨時(shí)表-cur>
— 步驟3. 提取當(dāng)日源系統(tǒng)新增記錄
Insert into <臨時(shí)表-增量-ins>
Select 不含開(kāi)閉鏈字段***
From <臨時(shí)表-開(kāi)鏈-cur>
where (PK) not in
(select PK from <臨時(shí)表-開(kāi)鏈-pre>);
–步驟4. 提取當(dāng)日源系統(tǒng)歷史變化記錄
Insert into <臨時(shí)表-增量-upd>
Select 不含開(kāi)閉鏈字段***
From <臨時(shí)表-開(kāi)鏈-cur>
inner join <臨時(shí)表-開(kāi)鏈-pre>
on (PK 等值)
where (變化字段 非等值);
–步驟5. 更新歷史變化記錄,關(guān)閉歷史舊鏈,開(kāi)啟新鏈
update <目標(biāo)表> AS T1
SET <變化字段 S1賦值>,結(jié)束日期 = date'<數(shù)據(jù)日期>’
FROM <臨時(shí)表-增量-upd> AS S1
WHERE ( <PK 等值> )
AND T1.結(jié)束日期 =date'<最大日期>’
INSERT INTO <目標(biāo)表>
(不含開(kāi)閉鏈字段***,開(kāi)始時(shí)間,結(jié)束日期)SELECT 不含開(kāi)閉鏈字段***,date'<數(shù)據(jù)日期>’,date'<最大日期>’
FROM <臨時(shí)表-增量-upd>;
–步驟6. 插入全新開(kāi)鏈數(shù)據(jù)
INSERT INTO <目標(biāo)表>
(不含開(kāi)閉鏈字段***,開(kāi)始時(shí)間,結(jié)束日期)SELECT 不含開(kāi)閉鏈字段***,date'<數(shù)據(jù)日期>’,date'<最大日期>’
FROM <臨時(shí)表-增量-ins>;
6、增刪拉鏈算法
算法實(shí)現(xiàn)邏輯是,提取上日開(kāi)鏈數(shù)據(jù)-提取源表非刪除記錄-PK相同變化記錄,關(guān)閉舊記錄鏈,開(kāi)啟新記錄鏈-PK比對(duì),源表存在,新增開(kāi)鏈記錄-提取源表刪除記錄-PK比對(duì),舊開(kāi)鏈記錄存在,關(guān)閉舊記錄鏈 。
SQL代碼模型:
— 步驟1. 清理目標(biāo)表
TRUNCATE TABLE <目標(biāo)表>;
— 步驟2. 全量插入
INSERT INTO <目標(biāo)表> (字段***)
SELECT 字段***
FROM <源表>
***JOIN <關(guān)聯(lián)數(shù)據(jù)>
WHERE ***;
7、全量增刪拉鏈算法
算法實(shí)現(xiàn)邏輯是提取上日開(kāi)鏈數(shù)據(jù)-提取源表非刪除記錄_PK相同變化記錄,關(guān)閉舊記錄鏈,開(kāi)啟新記錄鏈-PK比對(duì),源表存在,新增開(kāi)鏈記錄-提取源表刪除記錄-PK比對(duì),舊開(kāi)鏈記錄存在,關(guān)閉舊記錄鏈-PK比對(duì),提取舊開(kāi)鏈存在但源表不存在記錄,關(guān)閉舊記錄鏈;主要是利用業(yè)務(wù)字段跟蹤全量數(shù)據(jù)中包含刪除的變化歷史 。
以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問(wèn)題,請(qǐng)您及時(shí)就醫(yī)或請(qǐng)專業(yè)人士給予相關(guān)指導(dǎo)!
「愛(ài)刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對(duì)您有所幫助:- 圖文 生肖兔2020年1月份運(yùn)勢(shì)詳解
- 圖文 生肖蛇2020年1月份運(yùn)勢(shì)詳解
- 圖文 生肖豬2020年1月份運(yùn)勢(shì)詳解
- 圖文 生肖馬2020年1月份運(yùn)勢(shì)詳解
- 圖文 生肖羊2020年2月份運(yùn)勢(shì)詳解
- 圖文 生肖雞2020年2月份運(yùn)勢(shì)詳解
- 圖文 生肖馬2020年2月份運(yùn)勢(shì)詳解
- 圖文 生肖猴2020年2月份運(yùn)勢(shì)詳解
- 圖文 生肖虎2020年2月份運(yùn)勢(shì)詳解
- 輸卵管積水程度詳解
