1

在星型模式的維度中爲37種不同屬性/「檢查點」(可以分級爲通過/失敗/不適用)建模的最佳方式是什麼?事實表中的每一行都是針對相關檢查點進行分級的通信?關於如何在星型模式中模擬許多半布爾屬性的問題

TL; DR:

我已經開發了星型架構模型,其中在事實表中的每一行是一個單一的通信。這些通信經歷了一系列分級的「檢查」(例如「張貼時間」,「正確的電子郵件主題」,「XYZ內容正確複製」等),並且每個檢查可以被評爲「合格」,「錯過」或「不適用」。

不同類型的通信在不同的支票集上進行分級(例如,一種通信類型只能在三個支票上評分,其餘爲「不適用」,而另一種類型的通信則在19個支票上評分)。總共有37個獨特的檢查。

我已經構建了一個「CommunicationGrading」類型2,緩慢地變化維度以便於報告哪些「檢查」通信的得分最差。維度有37列,每個屬性一個,每行是屬性和他們可以接收的分數(通過/失敗/ NA)的排列。當新的排列變爲可用時添加新行 - 不幸的是,填充所有可能的排列會返回數百萬行,而這種方式是100行,更少的開銷。我已經創建了37個單獨的度量來聚合已經錯過了37個單獨的「檢查」中的每一個的通信次數。

我可以在PBI中快速建立一個樹形圖,在那裏拖動37個度量,查看錯過了每個「檢查」的通信總數,並確定本月的X通信錯過了Y檢查點。當我想將視覺作爲切片器使用時(例如,選擇樹形圖上的檢查/切片以查看在樹形圖下的表中檢查哪些個體通信時),或者確定給定切片的前N個「檢查」數據的。

從我所知道的問題來看,問題是因爲我使用了37個不同的屬性和度量,而不是一個屬性和一個度量(我可以將單個度量拖到值中,將包含所有檢查的單個屬性/列樹形圖可視中的組字段)。問題是,我難以理解如何最好地模擬這個/分級維度。它是否涉及將維度修剪爲兩列,一列用於檢查,一列用於檢查可能的分數,然後創建橋表以處理M:M關係?其他想法?

回答

0

您的維度(作爲垃圾維度實現 - 實現爲谷歌)是這樣做的一種方式,但如果沿着這條路走下去,我會將其分解爲多個相關檢查點的維度,以大量減少每個維度的排列。目前還不清楚爲什麼這將需要一個類型2-是否有這個維度的歷史,你需要跟蹤?

但是,我建議一種探索方法是在每個檢查點對每個溝通的評分都有一個新的事實 - 您可以有一個等級結果的維度(通過,失敗,不適用)和每個檢查點的一個維度只是檢查點描述)。它也可以讓你依靠這一事實而不必採取37種不同的措施。如果要保留一些彙總信息,您可能希望在通信級別保留事實,但這取決於您的要求。

+0

感謝您的回覆Rich!關於Type-2 SCD,我的意思是我根據需要添加了行,而不是用所有可能的排列填充維度。我對所有術語都還是有點新意的,所以我對此混淆了道歉! 如果我正確理解你,你建議將通信事實表的顆粒從每次通信的新事實降到每次通信的每個檢查點的新事實,是正確的?這不是我之前考慮過的,但我認爲這應該起作用。謝謝! –

+0

啊,是的,2型SCD是一種歷史追蹤技術,而不是行爲即將來臨的技術。不用擔心,術語並不那麼重要,它的思想很重要。是的,我建議在溝通中的每個檢查點爲每個結果提供更低/更詳細的穀物。這可能不是理想的,但它是一件嘗試。 – Rich