Sql-Server

我們如何將 FK 分配給事實表中新載入的數據?

  • September 1, 2022

在閱讀 SQL 時,我對新載入到事實表中的數據如何獲得其 FK 感到困惑。用下面的例子說(圖片來自Google):

在此處輸入圖像描述

這是我對如何載入數據的想法

  1. SaleID是自動生成的(例如增量),以便為新行提供唯一 ID
  2. SalesQuantity, SalesPrice, SalesAmount, ReceiptID,TimeStamp被載入到factSales

問題是這個新載入的數據如何知道它應該添加什麼 FK ( DateKey, CustomerKey, StoreKey, )?ProductKey我對維度表的理解是它描述了factSales.

例如,dimDate將具有截至 2050 年的預填充日期數據。如果將日期數據載入到factSales,它應該在TimeStamp其中包含諸如 的數據2020-05-01 13:00,如何FK1 DateKey知道如何將其自動分配給日期 2020-05- 01?其他維度也是如此CustomerKey,例如已經存在一些客戶數據的維度。

謝謝你。

您使用源數據中存在的業務鍵將銷售臨時表連接到維度以解析維度鍵,例如,您使用如下查詢載入 FactSales:

select d.DateKey, c.CustomerKey, s.SalesQuantity, s.SalesPrice
from stage.factSales s
left join dimDate d
 on d.FullDate = cast(s.TimeStamp as Date)
left join dimCustomer c
 on c.BusinessKey = s.CustomerNumber

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