2011-09-07 25 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并提供自定义名称,即可重命名这些字段。