2016-07-26 48 views
0

TI流程有兩個部分讓我困惑不已。將尺寸添加到TM1中的現有立方體中

  1. 此過程涉嫌爲沒有數據源的多維數據集(使用某些元素的屬性)創建新維度。但我所能看到的是,它創建了維度名稱,並立即向此維度添加元素。這甚至可能如此,除非有人已經創建了這個名稱的維度,這是不太可能的? (下圖)

Creating dimension without data source

  • 這個過程也被說成這些新創建的尺寸添加到現有的多維數據集。這怎麼能被執行?該立方體中的現有數據如何適應新的維度?
  • +0

    我的理解是,您不能將維度添加到多維數據集。您需要創建一個新的多維數據集。更何況所有的饋線和規則將失敗,當它有不同的維數 –

    +0

    關於你的另一個問題....誰知道....你檢查,看看這些名稱的維度是否已經存在?你可能會因爲這個原因而預先創建它們, –

    +0

    是的,這不就是爲什麼當需要向多維數據集添加更多維時,它們爲度量維添加新元素嗎? –

    回答

    0

    這一過程據稱立方體

    不,它不創造新的層面,也不聲稱。在代碼中的註釋不說有關創建尺寸什麼,它說:創建維名稱。也就是說,它只是計算DimensionElementInsert函數中要使用的維名稱。該屬性爲尺寸提供了基本名稱,該尺寸應該已經存在。 (雖然這是一篇關於DimensionExists函數在任何時候都沒有被調用的文章,當然,由於TI完全沒有錯誤處理,所以即使它沒有)上面突出顯示的代碼段不會嘗試創建維度 - DimensionCreate函數在此處不會調用 - 它只是逐個字符地分析屬性值,用下劃線替換任何空格(在粘貼之後rp_),以獲得正確的尺寸名稱。

    另一個屬性定義維度中的頂層元素應該是什麼。如果該元素不存在,那麼突出顯示的代碼就會創建它。

    Nick McDermaid的評論是正確的;您無法將尺寸添加到現有的多維數據集。您可以導出數據,銷燬多維數據集,構建具有相同名稱但具有額外維度的新多維數據集,然後將舊數據導入其中,但這是不同的。並且導入過程需要有一些代碼來選擇寫入數據時要使用的新維的適當元素。

    不是爲什麼他們增加新的元素來度量維度,而不是當有需要增加更多的維度對多維數據集

    尺寸不存在,因此,在TM1措施。多維數據集的維度可以標記爲與其他可能需要維度的系統進行通信的「度量」維度,但它們在TM1內部沒有任何影響。爲了方便起見,多維數據集的最後一個維度通常稱爲「度量維度」,但除了作爲用於標識維度存儲在多維數據集中的度量標識的方便名稱之外,它沒有任何意義。

    更重要的是,尺寸是尺寸,元素是元素。將元素添加到維度時,不會更改多維數據集的維度。 (你可能(也可能會)會改變稀疏性,但這是一個完全不同的概念。)唯一的方法就是向立方體添加新的維度,如上所述,你實際上無法做到這一點;而是摧毀舊的多維數據集,並用一個剛剛具有相同名稱和不同維數的新多維數據集替換它。考慮到這樣做會損壞曾經爲立方體編寫的每一個切片,活動窗體,視圖等,但實際上並不是或者應該經常這樣做。

    +0

    謝謝Alan,Nick! 在這個立方體加載過程可以將值載入多維數據集之前,確實存在一個用新維度(使用屬於維度的元素的屬性)重新創建多維數據集的過程。你是對的 - 這只是在評論中指定的維度名稱的創建。 –

    相關問題