【原創】SSAS-引用維度與多數據源、多數據源視圖引起分區錯誤

背景:

  最近有個項目,有32家分公司,集團總部須要取這個32家分公司數據作分析,因爲每一個分公司的數據都比較龐大,因此最終方案是每一個分公司一個DW,在cube搭建過程當中將每一個公司數據做爲一個分區數據的來源,這樣子便可分區又易於維護每一個分公司的數據,並且還不會容易引起一個DW而數據爆炸、效率等問題。測試

 

問題:

  在建立cube時候,因爲先前搭建先用一個分公司搭建了一個模型,因此後面想着將其它的分公司事實表添加到這個數據源視圖裏面便可,因而興奮的建立了好多數據源,而後在原有的數據源視圖裏面添加了其它分公司的事實表,也添加修改了分區等內容,十分順利,後面處理也是成功。spa

      可是後面,由於店鋪和經銷商兩個維度剛開始是分開2個單獨維度,但後面須要分析各經銷商經營狀況,因此必須將經銷商和店鋪鏈接起來,因而就作了經銷商和店鋪之間的引用關係,cube因而就建立了銷售度量值維度和經銷商維度經過店鋪的引用維度關係,可是再次處理,就處理失敗,老是報錯:數據源視圖未包含「dbo_Dim_Store」表或視圖的定義blog

      1

 

測試:

測試一:

  猜測是不是數據源視圖引起的,因而刪除了剛纔的引用關係,創建普通的關係,分區也沒有改變任何設置,從新處理經過get

     

測試二:

  看到錯誤提示,想來想去仍是以爲是分區的問題,因而查看了錯誤時候報錯的分區,查看其建立分區時候使用的查詢SQL,發現一個重大問題:建立了引用維度的度量值組,查詢的SQL回去關聯相應的維度表查詢,就如咱們平時寫JOIN查詢同樣,那在咱們後面添加的的其它公司的數據源視圖裏面並無這兩個須要創建引用關係的維度表,只有事實表,因此在查詢時候就致使了這個找不到xxx表的緣由呢?因而將這兩個引用的維度表也添加到了對應數據源視圖中,再處理,就能夠了。it

 

總結:

  咱們在建立引用維度的時候,其實cube底層也是經過SQL查詢數據的,因此它依然會鏈接咱們這些表進行查詢,所以在咱們的數據源視圖中若是沒有這些表,則查詢就會失敗,找不到表,所以咱們在建立引用維度時候必定要注意:若是分區用到了不一樣數據源視圖,則須要在相應視圖中添加這個分區中使用的維度表方可。若是沒有使用維度引用,則咱們就不須要添加這些表,每一個數據源視圖就是一個單獨的分公司便可。效率

相關文章
相關標籤/搜索