日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SCD缓慢变化维拉链表

發(fā)布時間:2024/9/27 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SCD缓慢变化维拉链表 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

? ? ? ? ? ? ? ? ? ? ? ? ? ?SCD緩慢變化維拉鏈表SQL實現(xiàn)

1 緩慢變化維概述

SCD英文Slow Changing Dimensions(緩慢變化維),它是數(shù)據(jù)倉庫建模過程中一個非常重要的概念。眾所周知數(shù)據(jù)倉庫是基于歷史數(shù)據(jù)的,而歷史數(shù)據(jù)的變化依賴于維度的定義,緩慢變化維就是用來跟蹤和表現(xiàn)維度表變化的一種方法。事實表往往在跟維度表關(guān)聯(lián)時需要“卡”住相應(yīng)的時間節(jié)點,這就是SCD記錄歷史變化的作用。

注: 1 當(dāng)前代碼演示環(huán)境是SQL Server,基于Merge語法,其它數(shù)據(jù)庫類似。

? ? ? 2 SCD緩慢變換維Kettle實現(xiàn)

? ? ? 3?Kettle轉(zhuǎn)換作業(yè)應(yīng)用50個案例腳本?

數(shù)據(jù)倉庫里維度表的字段改變(變化)常見的有3種,分別記作Type1、Type2、Type3。這里假如我們有用戶維度表customer客戶(cust_id用戶編號、name姓名、jobtitle職位),如果在某個時間將某個用戶的職位由Dev更新成CTO,我們看下三種維度處理的方法的情況:

  • Type1(不會記錄維度里關(guān)鍵字段值的變化歷史情況):
cust_idnamejobtitle
1張三Dev

新的customer表為:

cust_idnamejobtitle
1張三CTO
  • Type2(記錄維度里關(guān)鍵字段每次的變化情況):

針對1的情況假設(shè)更新時間是2020-10-21,那么對應(yīng)到客戶維度表里(這里end_date對應(yīng)最新時一般設(shè)置為9999-12-31或者NULL),則有如下的軌跡:

cust_idnamejobtitlestart_dateend_dateis_current
1張三Dev2020-10-102020-10-210
1張三CTO2020-10-21NULL1
  • Type3(直接記錄當(dāng)前最新的值和上一次變化前的值)
cust_idnamejobtitlepre_jobtitle
1張三CTODev

綜上所述不難發(fā)現(xiàn)type1和type3不能很好的記錄維度的每次變化情況,type1沒有,type3只能記錄最新的一次變化,而type2會記錄每次變化(關(guān)注的字段需自定義)的情況。

注:一般來說事實表會存放維度表的ID,而事實表抽取(ETL)的過程中是通過維度表的start_date和end_date來確定事實表里度量(指標(biāo))的時間范圍(即維度表的對應(yīng)時間)。

2 代碼與注釋

2.1 表結(jié)構(gòu)與數(shù)據(jù)

-- step1 準(zhǔn)備表和數(shù)據(jù),當(dāng)前運行在SQL Server里。-- 業(yè)務(wù)系統(tǒng)(OLTP)的客戶表 CREATE TABLE Customer(ID int IDENTITY(1,1) NOT NULL,FullName nvarchar(50) NULL,City nvarchar(50) NULL,Occupation nvarchar(50) NULL)-- 數(shù)據(jù)倉庫的(OLAP)的客戶維度表 CREATE TABLE DimCustomer(CustomerID int IDENTITY(1,1) NOT NULL,CustomerAlternateKey int NULL,FullName nvarchar(50) NULL,City nvarchar(50) NULL,Occupation nvarchar(50) NULL,StartDate datetime NULL,EndDate datetime NULL,IsCurrent bit NULL,PRIMARY KEY CLUSTERED(CustomerID ASC) )GOALTER TABLE DimCustomer ADD? DEFAULT ((1)) FOR IsCurrent INSERT INTO Customer(FullName,City,Occupation) SELECT 'BIWORK','Beijing','CEO' UNION ALL SELECT 'ZhangSan','Shanghai','Education' UNION ALL SELECT 'Lisi','Guangzhou','IT' UNION ALL SELECT 'Wangwu','Beijing','Finance'

2.2 緩慢變換維代碼

-- step2 SCD 模塊 -- 1 修改狀態(tài) MERGE INTO dbo.DimCustomer AS Dim USING dbo.Customer AS SrcON Dim.CustomerAlternateKey = Src.ID WHEN NOT MATCHED BY TARGETTHEN INSERT VALUES(Src.ID,Src.FullName,Src.City,Src.Occupation,GETDATE(),NULL,1) WHEN MATCHED AND (Dim.City <> Src.City OR Dim.Occupation <>? Src.Occupation) AND Dim.IsCurrent=1THEN UPDATE SET Dim.EndDate =CASE WHEN Dim.EndDate IS NULL THEN GETDATE() ELSE Dim.EndDate END,Dim.IsCurrent = 0;-- 2 修改數(shù)據(jù) MERGE INTO dbo.DimCustomer AS Dim USING dbo.Customer AS SrcON Dim.CustomerAlternateKey = Src.IDAND Dim.City = Src.City AND Dim.Occupation = Src.OccupationWHEN NOT MATCHED BY TARGETTHEN INSERT VALUES(Src.ID,Src.FullName,Src.City,Src.Occupation,getDATE(),NULL,1);

2.3? 修改數(shù)據(jù)驗證

-- Step3 驗證 -- 新插入一條 INSERT INTO Customer(FullName,City,Occupation) VALUES ('qinliu','Beijing','Finance')-- Case1: 執(zhí)行如下更新后執(zhí)行SCD模塊,這里的ID依賴于自增序列生成的序號UPDATE Customer SET Occupation = 'IT' WHERE ID = 6-- Case2: 執(zhí)行如下更新后執(zhí)行SCD模塊,這里的ID依賴于自增序列生成的序號 UPDATE Customer SET Occupation = 'Publisher',City = 'Hangzhou' WHERE ID = 6-- 每次修改后對照查看DimCustomer表的變化,查看是否追蹤到數(shù)據(jù)的歷史變更信息。以下為查詢示例: SELECT * FROm DimCustomer WHERE FullName='qinliu'

總結(jié)

以上是生活随笔為你收集整理的SCD缓慢变化维拉链表的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 鲁片一区二区三区 | 日韩精品短片 | 成年人深夜福利 | 永久免费AV无码网站韩国毛片 | 最色网站| 97视频在线免费观看 | 日韩国产一区二区三区 | 日韩成人精品视频 | 翔田千里一区二区三区av | 一区二区三区在线观看免费 | 嫩草av91 | 不卡中文| 夜夜操av| 亚洲国产高清视频 | 西欧free性满足hd老熟妇 | 日日摸日日碰 | av中文字幕观看 | 自拍偷拍亚洲一区 | 人妻一区在线 | 婷婷的五月天 | 亚洲成人一区二区 | 男人激烈吮乳吃奶爽文 | www.好了av.com| 重口另类| 欧美射射射| 美国福利片 | 免费国产视频在线观看 | 日韩一中文字幕 | 成人不卡视频 | 四虎在线影院 | 激情av网 | 大度亲吻原声视频在线观看 | 一本—道久久a久久精品蜜桃 | 91成人在线免费 | 亚洲美女福利视频 | 婷婷黄色网 | 91黄色国产 | 草久在线观看 | 久久久久久久久久亚洲 | 黄色网页入口 | 午夜精品在线免费观看 | 综合久久99| 草草影院av| 欧美激情va永久在线播放 | 日韩电影在线观看中文字幕 | 国产精品国产三级国产aⅴ浪潮 | 色婷婷久久综合中文久久蜜桃av | 羞羞漫画在线播放 | 欧美另类专区 | av五月天在线 | 福利在线免费 | 国产美女久久久久久 | 国产精品无码一区二区三区三 | 黄色无遮挡 | 四虎8848精品成人免费网站 | 欧美xxxx黑人xyx性爽 | 亚洲一二三区在线观看 | 亚洲AV无码久久精品浪潮 | 中文字幕第一页久久 | 中文字幕av亚洲精品一部二部 | 天天久久 | 本道久久 | 国产又粗又猛又黄 | 国产亚洲精品久久久久婷婷瑜伽 | 国产一区二区成人 | 中文在线字幕免费观 | 亚洲一区二区网站 | 成人做爰69片免费观看 | 日韩诱惑 | 秋霞国产 | 日本欧美久久久久免费播放网 | 日韩中文字幕精品视频 | 日韩一区二区免费视频 | 越南av| 乌克兰少妇性做爰 | 亚洲日日操 | 好吊一区二区三区视频 | 日韩性大片 | 亚洲性片 | 欧美性猛交xxxx乱大交 | 台湾swag在线观看 | 欧美xxxx黑人 | 无码精品人妻一区二区三区湄公河 | 小h片在线观看 | 无码人妻精品一区二区三区不卡 | 中日韩av在线 | 91制服诱惑 | 免费精品一区二区 | 久久男人天堂 | 日本三级一区 | 天堂国产一区二区三区 | 可以免费看污视频的网站 | 欧美 亚洲 另类 激情 另类 | 久久精品免费一区二区 | 一区www | 激情九月婷婷 | 国产色无码精品视频国产 | 一级片中文 | 在线成人免费视频 |