2017-04-05 50 views
0

這與我的問題非常相似。 http://forum.kimballgroup.com/t2534-modeling-fact-tables-that-have-direct-relationships-but-at-a-detail-and-not-a-dimension-layer建模具有直接關係但在細節層面而非維度層面的事實表格

我已經爲PO,供應商發票,付款,收據等提供了一個事實表。它們有一些共同的維度,其他的不是。問題是,例如,如果他們正在通過他們的gl賬戶查看發票(使用連接到立方體的Excel數據透視表),那麼他們希望能夠放入PO號碼的列,PO的買家,等等。儘管買方維度僅與採購訂單相關,並且該維度僅與發票相關。但是他們說,PO和發票有關係,所以你應該可以將其拉入。

我在發票事實表上有一個PO參考字段,但它只填寫了50%的時間。即使是這樣,就我而言,至少在我看來,您可以在採購單和發票之間以任何一種方式建立一對多的關係。 無論如何,他們希望能夠從任何度量組中引入任何度量,並且可以運用每個可能的維度,然後深入細節以查看PO,發票,付款和收據以及它們如何匹配向上。最好的做法是根據Kimball的規定,將事實表分開,如果它們是不同的穀物,但所有的業務問題都不能通過這種方式解決。

的唯一的解決方案,我可以想出是:

  1. 要麼上一堆細節相關的列的所述退化維度粘性當我加載它們。即將PO添加到發票和發票到PO等,但是當它是多對一時,將其作爲逗號分隔列表在該列中。
  2. 創建與每個事實和維度表的每個可能的關係。儘管如此,這將是很多工作,有些仍然可能與某些維度沒有關係。
  3. 創建一個怪異的事實表,並將所有當前的事實表連接在一起,並以某種方式找出邏輯,以便僅爲多對一連接顯示一次度量值。
  4. 這可能是一個糟糕的主意,但也許我可以在某種程度上創建每個度量值組和相應的退化維度參考字段之間的關係。就像在供應商發票退化維度採購訂單參考字段和採購訂單行措施組採購訂單字段之間創建關係一樣。

  5. 降低他們的期望,大聲笑。

下面是維度用法選項卡的屏幕快照,用於瞭解當前的外觀。

enter image description here

回答

1

我試過一次選項3。表演很糟糕。產量是誤導性的。永遠不會再一次。

最好的選擇就是與商家合作。如果數據不容易獲得(例如,沒有采購單的發票),應同意採取哪些措施。您可以顯示默認值(採購單未記錄在發票上)。您可以就ETL中實施的邏輯達成一致,該邏輯將提取最可能的PO。

無論你選擇什麼方法,你都必須討論它。如果你不這樣做,企業將根據錯誤的假設做出決定。企業會發現自己在看報告不理解。您必須幫助您的用戶避免這些結果。

一旦方法得到了同意,將其記錄下來。當查詢出現時,分享文檔。確保文件強調所有計算,困難和缺少源數據。

與產生源日期的團隊合作。如果一個重要的領域人口稀少,安排一次會議。看看捕捉過程是否可以改進。讓你的用戶知道你正在調查這個區域。讓他們知道結果。如果源數據無法改進(發票繼續在沒有采購訂單的情況下提出),請告知用戶相關原因。

管理您的客戶可能具有挑戰性。尤其是那些在公司擔任高級職位的人。透明和可靠的文檔將幫助你。

+0

感謝您的反饋意見。有助於瞭解不要選擇3,我得出了一個類似的結論,即讓企業記錄所有關係。我打算做一個公共汽車矩陣,讓業務填滿,並使用它來創建儘可能多的缺少維度和事實關係。廣管局從技術上寫下每一部分的關係。所以,選項2基本上。很多工作,但它會解決很多。在完成之後,如果他們仍然不滿意,可以在橋表的細節層面找出一些多對多的關係。希望不是。 – bpfrenchak