在 SQL Server 商业智能中,为啥要从 OLAP 多维数据集创建报表模型?
Posted
技术标签:
【中文标题】在 SQL Server 商业智能中,为啥要从 OLAP 多维数据集创建报表模型?【英文标题】:In SQL Server Business Intelligence, why would I create a report model from an OLAP cube?在 SQL Server 商业智能中,为什么要从 OLAP 多维数据集创建报表模型? 【发布时间】:2010-04-01 15:10:31 【问题描述】:在 Business Intelligence Developer Studio 中,我想知道为什么要从 OLAP 多维数据集创建报表模型。
据我了解,OLAP 多维数据集和报表模型都是面向业务的底层结构(通常是关系数据库)视图,对业务用户而言可能意义不大。就维度和度量而言,多维数据集是一个多维视图,而报表模型是……嗯,我不太确定——它是一个更面向业务但本质上仍然是关系视图吗?
无论如何,在报表生成器中,我可以直接连接到 OLAP 多维数据集或报表模型。所以我不明白为什么,如果我有一个 OLAP 多维数据集,它已经提供了适合最终用户的面向业务的数据视图,为什么我会将其转换为报表模型并在 Report Builder 中使用它。
我认为我显然遗漏了报表模型和多维数据集之间的一些根本区别——感谢任何帮助!
【问题讨论】:
维度数据库(用作多维数据集等的源的关系数据库)的全部意义在于它应该被业务用户理解。然后可以使用 DSV 进一步细化,以控制安全性并在必要时以更“友好”的方式重命名事物。 [维度 DB 是指星型模式 RDBMS。] 【参考方案1】:在 SQL Server 2005 中,您仍然必须在多维数据集上创建报表模型才能使用报表生成器。 RB 2.0 将直接打开一个多维数据集,尽管 RB 不一定支持 SSAS 的所有可用功能。 Teo Lachev 的This blog entry 对此进行了更详细的讨论。
【讨论】:
提供的链接已损坏。【参考方案2】:一般来说,我同意创建基于多维数据集的模型没有多大意义。我想您可以使用它来隐藏多维数据集的某些方面,然后您可以使用基于角色的安全性向用户公开不同的模型。不过,我通常不会让 BI 之外的用户在 s-s-rS 中构建报告,所以这对我来说不是一个令人信服的理由。
如果您没有 OLAP 多维数据集,报表模型会很好。这是隐藏表连接和字段的复杂性同时为用户提供获取数据的方法的好方法。这也是一个为业务用户提供比列在数据库中的存储方式更友好的字段名称的机会。
【讨论】:
【参考方案3】:OLAP 多维数据集的另一个优点是计算引擎。
您可以在多维数据集中拥有复杂的计算度量,这些度量很难在关系数据库中创建和/或耗时,但非常适合 Analysis Services。
然后,您可以使用 Report Builder 向业务用户公开这些计算,从而隐藏固有的复杂性。
【讨论】:
【参考方案4】:安全性和简单性。
您可以针对关系数据库或维度数据库使用报表模型,从而为用户提供更易于使用的数据视图。
您可能还希望通过仅公开可用列的子集来保护您的数据库。
您可以更改模型的底层数据源/架构,但保持模型不变,从而确保最终用户的无缝体验。
【讨论】:
以上是关于在 SQL Server 商业智能中,为啥要从 OLAP 多维数据集创建报表模型?的主要内容,如果未能解决你的问题,请参考以下文章
为啥我不能在我的 SQL Server 上查询 OFFSET/FETCH 查询?
为啥SQL Server 2008 R2在Win7系统上安装后不能运行!求解答。