我有一個具有一個數據月份數據的事實表的多維數據集。事實表是15億行。 事實表包含以下列{DateID,UserKey,ActionKey,ClientKey,ActionCount}。{} 事實表中每個用戶每個用戶每個操作每個用戶一行,並且沒有完成任何活動。什麼是多維數據集中多個不同計數度量的最佳分區策略
現在我要計算的以下措施,在我的立方體如下
平均天數用戶 AVG([用戶]已訂婚。[用戶鍵],[用戶鍵],[措施]。[ DATE COUNT])從事
用戶> = 14天 SUM([用戶]。[用戶密鑰]。[用戶鍵],IIF([措施]。[DATE COUNT]> = 14,1,0 ))
平均每用戶請求 IIF([Measures]。[USER COUNT] = 0,0,[Measures]。[ACTIVITY COUNT]/[Measures]。[USER COUNT])
所以要創建兩個不同的計數度量DATE COUNT和USER COUNT,它們是事實表的DateKey和UserKey列上的不同聚合。我想知道對度量組進行劃分(其中有3個度量組採用自己的度量組)。
劃分立方體的最佳策略是什麼?我已閱讀analysis service distinct count指南的末端,並提到用不重疊的用戶id分區多維數據集是單用戶查詢的最佳策略,而用戶X時間最適合單用戶時間設置查詢。
我想知道如果我應該將多維數據集劃分爲75個分區(每個分區15億行/ 2000萬行),這將使每個分區具有不重疊和連續的用戶ID,或者我應該將它分區爲31個分區每天有一個重疊的用戶標識符,但每個分區有不同的天數或31 * 3 = 93個分區,我每天將立方體分解到每天,然後每天進一步分區到3個相等部分,每天有不重疊的用戶標識符但用戶將在幾天之間重疊)或由ActionKey分區成45個不相等大小的分區,因爲大部分時間度量都是由Action分割的?
我有點困惑,因爲本文只談論優化一個不同的計數度量值,因爲我需要對我的度量值的用戶和日期執行不同的計數。
任何提示?
我首先嚐試了使用M2M技術的獨特計數,並且它根本沒有很好的擴展性。我的查詢實際上是超時:( – user330612 2014-11-12 00:36:58
我首先嚐試了使用M2M技術的獨特計數,但它並沒有很好地擴展。我的查詢實際上超時了:(我也有一臺相當不錯的機器,16核48GB RAM和1TB SSD硬盤我很好奇當你提到你的20億行表中只有4個分區沒有任何聚集時,這是真的嗎?我的多維數據集處理有3個度量組中的近1000個分區需要4-5小時,但是查詢從冷啓動開始的時間超過15分鐘,聚合是否真的很糟糕?我已經爲DimAction.ActionName維度上的所有分區設置了完全聚合 – user330612 2014-11-12 00:52:27
我確實有聚合,他們似乎對於查詢性能非常重要,我只是運行嚮導性能提升10-20%,如果超過100個聚合就會停止),並且結果看起來很好 - 它爲該MG提供了74個聚合,所有4個分區使用相同的Agg設計。現在一年。我懷疑你已經過分了分區和聚合設計。 – 2014-11-12 05:23:15