Sql-Server
我們如何將 FK 分配給事實表中新載入的數據?
在閱讀 SQL 時,我對新載入到事實表中的數據如何獲得其 FK 感到困惑。用下面的例子說(圖片來自Google):
這是我對如何載入數據的想法
SaleID
是自動生成的(例如增量),以便為新行提供唯一 IDSalesQuantity
,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