2011-09-07 30 views
8

我有一個事實表,它引用我的日期維度作爲表格日期和財務日期。因此日期維度是角色扮演兩種不同的角色。這工作正常,除了我不能角色扮演年份或月份列的名稱。我寧願它們分別是Form Year和Finance Year列,或者能夠設置屬性描述,以便我的客戶端應用程序可以使用該屬性顯示爲工具提示/標題。在SSAS中使用友好的屬性名稱實現角色扮演維度?

的問題是,在一個單一的樞紐報告,用戶將有兩種不同的年,目前尚不清楚這是(他們詳見2010年和2009年,不知道哪個是表年和這是財務年)沒有我做一些黑客代碼來看看維名稱是什麼。

換句話說,[表格日期]。[年]和[財經日期]。[年]都是一個「年」至於集將被關注的屬性。在SSAS中更改該屬性的描述或名稱時,您正在更改角色扮演維度。您可以自定義角色扮演維度的名稱,但不幸的是不是屬性。

我的選擇至今:

- 在數據倉庫數據庫,創建日期維度表的副本,爲每個用例,這樣我可以自定義列的屬性名稱/描述。這爲我保持這些副本的一致性創造了更多的維護/工作。

- 在數據倉庫數據庫中,爲每個用例在日期維度表頂部創建一個視圖。這裏的問題是我無法在維視圖和事實表之間創建FK關係。恐怕這會讓我更加頭疼,而不是它的價值,因爲SSAS/SSRS/Powerpivot和其他工具似乎很多都依賴於FK關係來幫助確定數據倉庫的結構。

在同一個表Year列 - 創建副本,這樣每個被物化爲在SSAS自己的特性,因此可以有自己的名稱和描述特性。沒有玩過這個遊戲,看看它是否會像我想象的那樣工作,但我想我只是基於同一張表創建多個維度,並且每種情況下都只包含年份列之一,例如Form Year在表單日期維度中。 (也可以使用計算列而不是列的副本。)這一點的缺點是它使維度更加混亂。我已經有很多屬性來支持不同的層次結構,這是正常的,但現在我爲單個屬性引入多個列,僅僅爲了支持屬性的頭/描述不同,即使屬性值都是相同。

在金博爾集團數據倉庫工具包書,它說

這些日期維度副本被聲明爲語義不同 看法,比如「首次購買日期」 [其中有像屬性描述了這種非常情況「第一購買年的日期 」而不僅僅是「年」]尺寸表,其中包含 唯一列標籤。

這本書是相當概念化和技術不可知論,並沒有進入實施細節。有些地方的措辭意味着使用意見,而在其他地方意味着使用物理表副本。如上所述,兩者都具有足夠大的缺點,因爲我已經可以預見到頭痛,所以我害怕冒險走上兩條路。

您如何看待我應該實現日期維度的多個角色,以便我可以爲維度參與的每個角色/用例自定義屬性的描述/名稱屬性?

我也會有其他事實表引用相同的維度,因此會有類似的問題,所以它不只是一個事實表引用一個維度兩次的問題。

+0

顯然我不是這個問題的唯一人https://connect.microsoft.com/SQLServer/feedback/details/144500/rename-attributes-for-each-instance-of-a-role-playing-維度 – AaronLS

+0

**我最近發現了一篇很好的報道這篇文章的文章:https://www.mssqltips.com/sqlservertip/3058/custom-attribute-names-in-role-playing-dimensions-for-ssas / – AaronLS

回答

6

根據您非常詳細和深思熟慮的文章,我建議您在Analysis Services項目的DSV中創建一個附加日期表。這將是針對數據倉庫中日期維度的named_query。在DSV中,您可以給它一個「邏輯主鍵」並將其與您喜歡的任何事實表相關聯。這將允許您創建2個獨立的「立方體」維度並在兩者之間以不同的方式命名屬性。

0

如果您使用的是Excel 2010,只需右鍵單擊,然後選擇field settings並提供自定義名稱,即可重命名這些字段。