我有一个事实表,它引用我的日期维度作为表格日期和财务日期。因此日期维度是角色扮演两种不同的角色。这工作正常,除了我不能角色扮演年份或月份列的名称。我宁愿它们分别是Form Year和Finance Year列,或者能够设置属性描述,以便我的客户端应用程序可以使用该属性显示为工具提示/标题。在SSAS中使用友好的属性名称实现角色扮演维度?
的问题是,在一个单一的枢纽报告,用户将有两种不同的年,目前尚不清楚这是(他们详见2010年和2009年,不知道哪个是表年和这是财务年)没有我做一些黑客代码来看看维名称是什么。
换句话说,[表格日期]。[年]和[财经日期]。[年]都是一个“年”至于集将被关注的属性。在SSAS中更改该属性的描述或名称时,您正在更改角色扮演维度。您可以自定义角色扮演维度的名称,但不幸的是不是属性。
我的选择至今:
- 在数据仓库数据库,创建日期维度表的副本,为每个用例,这样我可以自定义列的属性名称/描述。这为我保持这些副本的一致性创造了更多的维护/工作。
- 在数据仓库数据库中,为每个用例在日期维度表顶部创建一个视图。这里的问题是我无法在维视图和事实表之间创建FK关系。恐怕这会让我更加头疼,而不是它的价值,因为SSAS/SSRS/Powerpivot和其他工具似乎很多都依赖于FK关系来帮助确定数据仓库的结构。
在同一个表Year列 - 创建副本,这样每个被物化为在SSAS自己的特性,因此可以有自己的名称和描述特性。没有玩过这个游戏,看看它是否会像我想象的那样工作,但我想我只是基于同一张表创建多个维度,并且每种情况下都只包含年份列之一,例如Form Year在表单日期维度中。 (也可以使用计算列而不是列的副本。)这一点的缺点是它使维度更加混乱。我已经有很多属性来支持不同的层次结构,这是正常的,但现在我为单个属性引入多个列,仅仅为了支持属性的头/描述不同,即使属性值都是相同。
在金博尔集团数据仓库工具包书,它说
这些日期维度副本被声明为语义不同 看法,比如“首次购买日期” [其中有像属性描述了这种非常情况“第一购买年的日期 ”而不仅仅是“年”]尺寸表,其中包含 唯一列标签。
这本书是相当概念化和技术不可知论,并没有进入实施细节。有些地方的措辞意味着使用意见,而在其他地方意味着使用物理表副本。如上所述,两者都具有足够大的缺点,因为我已经可以预见到头痛,所以我害怕冒险走上两条路。
您如何看待我应该实现日期维度的多个角色,以便我可以为维度参与的每个角色/用例自定义属性的描述/名称属性?
我也会有其他事实表引用相同的维度,因此会有类似的问题,所以它不只是一个事实表引用一个维度两次的问题。
显然我不是这个问题的唯一人https://connect.microsoft.com/SQLServer/feedback/details/144500/rename-attributes-for-each-instance-of-a-role-playing-维度 – AaronLS
**我最近发现了一篇很好的报道这篇文章的文章:https://www.mssqltips.com/sqlservertip/3058/custom-attribute-names-in-role-playing-dimensions-for-ssas / – AaronLS