2015-10-19 140 views
-1

我不是一位經驗豐富的BI開發人員,所以我需要幫助填充我的事實表。首先,我使用適當的SSIS組件填充了我的生產數據庫中的所有維度(我沒有使用臨時數據庫或表)。如何填充我的事實表?

DimParentDimStudentDimManager,和DimFacilitator使用自然鍵作爲主鍵。其餘維度使用代理鍵作爲主鍵。使用自然鍵的原因是因爲我的生產(OLTP)數據庫具有相同的數據庫模型,可以在多個不同的模式(充當我不同的校園位置)上使用。 DW Diagram

我的可測量數據仍然在我的生產數據庫中,我似乎無法弄清楚如何填充我的事實表。 Production OLTP

我想用一個大的查詢用的加入,但它可能會太複雜我就通過使用查詢填充我DimAssessmentType方式:

select PK_Assessment, [Description] 
from Auckland_Park.Assessment 
union 
select 3, 'International' 
+0

我不明白....你需要幫忙寫一個插入語句或什麼? –

+0

而且? 你有什麼嘗試? 你卡在哪裏? 你需要什麼幫助? – Ragul

+0

我想填充我的事實表。我已經嘗試了一個帶有連接的大選擇語句,但正如我所提到的,我認爲它不會起作用。可以嗎?會這麼簡單嗎? – Jnr

回答

2

不要不一致。使用代理鍵的一切。然後,無論發生什麼情況(即校園上線不遵循此規則),您都可以對其進行解釋。不一致只是爲自己工作。現在就做設計吧。在你事實上有三年數據之後,重新加載一個維度和事實是一件很糟糕的事情。

無論如何。我填寫事實的方式是:

  1. 將事實加載到臨時表中。
  2. 臨時表中有包含你的代理鍵
  3. 運行,在代理鍵填充
  4. 在你其實選擇一個合適的窗口上的臨時表的更新語句附加列。刪除並重新加載該窗口

這聽起來像你可能想在SSIS中進行「內聯查找」,而不是找到SK的。這很好,但確實很難排除故障。此外,SSIS查找組件不能很好地擴展(即,對於少數行工作,對於許多行非常緩慢)。而且它也沒有做好SCD。

您的陳述「我似乎無法弄清......」的含義很模糊。按照上面的四個步驟告訴我你無法弄清楚哪一個。

一個問題可能是您不能保留暗淡的源系統密鑰......所以您無法根據源系統密鑰查找新的代理密鑰。

+0

謝謝,我會努力工作並回到你身邊。 – Jnr

+0

我在讀博客[這裏](http://sqlblog.com/blogs/jorg_klein/archive/2008/10/22/ssis-decrease-your-fact-table-loading-time-up-to-40.aspx ),其中指出您的業務/自然密鑰應該是鏈接到事實表外鍵的主鍵。正如你所說「你應該使用代理鍵的一切」。這意味着我應該在我的Dimensions表中使用_Identity_列(代理鍵)和_primary key_列(業務鍵),然後將主鍵鏈接到事實表的外鍵。 – Jnr

+1

您的尺寸中有兩個鍵。你確保它們都是唯一的(通過約束)。那個博客說_存儲DWH事實表中的事實記錄和dimension_的增益代理鍵。所以它表示在階段性來源交易和維度上的_business keys_上匹配,並推導出您的替代關鍵字,並且_that_ SK會落在您的事實中。我們說的是同樣的事情。看到我的最後一條評論:「你沒有在你的維度中保留源系統密鑰(業務密鑰)」。您需要在維度中存儲這兩種類型的密鑰,但在您的事實中只能存儲_only_代理鍵。 –