緩慢變化維經常使用三種處理類型

前言

Slowly Changing Dimension 簡稱SCD是數據倉庫建模和處理過程當中一個很重要的概念,由於數據倉庫系統的主要功能是對歷史數據進行彙總和分析,因此保存歷史記錄的變化是很重要的。緩慢變化維的提出是由於在現實世界中,維度的屬性並非靜態的,它會隨着時間的流失發生緩慢的變化。這種隨時間發生變化的維度咱們通常稱之爲緩慢變化維。markdown

SCD 三種經常使用類型

類型1(Type 1):覆蓋舊數值。

根據主鍵ID來追蹤數據是否發生變化,發生變化直接將舊數據覆蓋重寫spa

優勢:節省空間,操做簡單code

缺點:沒有保留歷史數據,沒法分析歷史變化信息orm

類型2(Type 2):增長新數值。

就相似拉鍊表,通常增長如下字段。it

star_data(開始時間)io

end_data(結束時間)table

status(狀態、是否當前記錄值)class

Date Changed (記錄改變的時間戳)import

優勢:支持追尋歷史快照數據,較節省空間im

類型3(Type 3):增長新字段。

添加歷史列。不會追蹤全部的歷史記錄,只會追蹤上一次的歷史信息

優勢:只追蹤上一次的歷史信息,介於類型1和2之間

缺點:若是維護字段較多就比較麻煩

總結

  • 類型1適合不須要維護歷史數據,直接覆蓋
  • 類型2使用比較多、常見,除了類型1基本上都是優先考慮類型2
  • 類型3適合不會追蹤全部的歷史記錄,只會追蹤上一次的歷史信息
相關文章
相關標籤/搜索