Data-Warehouse

維度繼承的維度模型

  • February 15, 2018

如果一個維度在邏輯上繼承自另一個維度,那麼維度通常如何在維度模型中建模?

例如,假設我有一個Employee維度和一個Driver維度,其中 Driver 具有 Employee 的所有屬性,但也具有一個Truck Number屬性。這些維度應該如何建模?

在傳統的 OLTP 系統中,您可能需要關注規範化和繼承,而在典型的數據倉庫系統中,您將希望進行非規範化以加速查詢響應。

在這種情況下,我將設計一個Employee_Dimension表,其中包含您可能要查詢的有關員工的所有相關列,以及我可能呼叫的附加列,我將用、等employee_role條目填寫,然後有另一列填寫了作為司機的員工,或者在他們不是司機時離開該列。當然,您可以添加更多列以包含其他員工角色的資訊。Driver``Manager``truck_number``NULL

長話短說,如果你正在建構一個典型的星型模式,你可以通過使用大量的非規範化來獲得更快的查詢結果,當然會以儲存空間為代價。

聽說我會採用可交換的維度模式。創建具有相同 SK 的三個維度:

1) **Employee** Base table with the common attributes
2) **Driver** table with driver specific attributes note the SK' needs to match the table above
3) **DriverEmployee** a view that joins the values from one and two.

那麼當您報告數據時,請選擇最適合要求的結構:Employee、Driver、DriverEmployee

引用自:https://dba.stackexchange.com/questions/105374