2016-02-12 52 views
2

我有一個星形模式可以跟蹤公司中的角色,角色所屬的部門,分配給角色的員工,何時開始,何時完成並離開。遲到的事實 - 處理它的最好方法

我有兩個時間維度,StartedDate & EndDate。角色處於活動狀態時,源系統中的結束日期爲空。在星型模式中,我將任何空結束日期設置爲31/12/2099,這是我手動添加的維度成員。

我正在研究更新角色完成或員工離職時最終結果的最佳方式。

眼下IM:

  1. 填充事實表正常,所有尺寸做查找。

  2. 然後,我對事實表進行查找以查找重複項,但在此查找中未包括EndDate。非匹配行是新的,因此插入到事實表中。

  3. 匹配行然後進入條件拆分來檢查currentEndDate是否與newEnd日期不同。如果不同,它們被插入updateStaging表和一個進程運行更新事實表Fact table data flow

是否有更有效或更有條理的方式來做到這一點?

+0

你說「兩個維度,StartedDate&EndDate」...你不是指兩個時間欄? –

回答

0

如何把所有的東西放在一個foreach容器中,它會遍歷並且效率更高。

+0

我不明白,我不能看到每個容器如何幫助優化工作流程,或者它如何適合所有。我可以請求更詳細一點嗎? 謝謝! –

0

我認爲這是一個合理的解決方案。我個人會使用Stored Proc來代替處理效率,但是由於DWH的維度特性和隱含的類型2特性,這是一種有效的方法。

另一種方法是按照原樣做SSIS的「不匹配」部分,但在「匹配」部分,您可以將該行插入實際的事實表中,然後進行後處理T-SQL這將更新所需的兩個記錄。

相關問題