gpt4 book ai didi

ssas - 在 SSAS 中使用友好的属性名称实现角色扮演维度?

转载 作者:行者123 更新时间:2023-12-04 04:13:12 25 4
gpt4 key购买 nike

我有一个事实表,它引用我的日期维度作为表单日期和财务日期。因此,日期维度正在扮演两个不同的角色。这工作正常,除了我不能角色扮演 Year 或 Month 列的名称。我宁愿它分别是 Form Year 和 Finance Year 列,或者能够设置属性描述,以便我的客户端应用程序可以使用该属性显示为工具提示/标题。

问题是,在单个数据透视报告中,用户将有两个不同的年份,并且不清楚哪个年份(他们看到 2010 年和 2009 年,不知道哪个是表格年度,哪个是财务年度)而没有我做了一些骇人听闻的代码来查看维度名称是什么。

换句话说,就单元集而言,[Form Date].[Year] 和 [Finance Date].[Year] 都是“Year”属性。当您在 SSAS 中更改该属性的描述或名称时,您正在为两个角色扮演维度更改它。您可以自定义角色扮演维度的名称,但遗憾的是不能自定义属性。

到目前为止我的选择:

- 在数据仓库 DB 中,为每个用例创建日期维度表的副本,以便我可以自定义列的属性名称/描述。这为我保持这些副本的一致性创造了更多的维护/工作。

- 在数据仓库 DB 中,在每个用例的日期维度表之上创建一个 View 。这里的问题是我无法在维度 View 和事实表之间创建 FK 关系。恐怕这会让我更头疼,因为似乎很多 SSAS/SSRS/Powerpivot 和其他工具确实依赖于那些 FK 关系来帮助它确定数据仓库的结构。

- 在同一个表中创建 Year 列的副本,以便在 SSAS 中将每个列具体化为自己的属性,因此可以拥有自己的名称和描述属性。还没有玩过这个,看看它是否会像我想象的那样工作,但我想我只会基于同一个表创建多个维度,并且在每种情况下只包含一个 Year 列,例如 Form Year在表单日期维度中。 (也可以使用计算列而不是列的副本。)这样做的缺点是它使维度更加困惑。我已经有很多属性来支持各种层次结构,这是正常的,但是现在我将单个属性的多列混合在一起只是为了支持属性的标题/描述不同,即使属性值都是相同的。

在 Kimball Group Data Warehouse Toolkit 一书中,它通过说

These date dimension copies are declared as semantically distinct views, such as "First Purchase Date"[which has attributes like "Date of 1st Purchase Year" rather than just "Year"] dimension table with unique column labels.



这本书是非常概念化和技术不可知的,并且不涉及实现细节。在某些地方的措辞暗示使用 View ,而在其他地方则暗示使用物理表副本。如上所述,两者都有足够大的缺点,我不敢冒险走任何一条路,因为我已经可以预见到头痛。

您认为我应该如何实现一个日期维度的多个角色,以便我可以为维度参与的每个角色/用例自定义属性的描述/名称属性?

我还会有其他引用相同维度的事实表,因此也会有类似的问题,所以这不仅仅是让单个事实表两次引用一个维度的问题。

最佳答案

根据您非常详细且经过深思熟虑的帖子,我建议您在 Analysis Services 项目的 DSV 中创建一个额外的日期表。这将是针对数据仓库中日期维度的 named_query。在 DSV 中,您可以给它一个“逻辑主键”并将它与您喜欢的任何事实表相关联。这将允许您创建 2 个单独的“立方体”维度,并在两者之间以不同的方式命名属性。

关于ssas - 在 SSAS 中使用友好的属性名称实现角色扮演维度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7340330/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com