2009-05-29 51 views
4

我最近继承了一个使用视图来汇总数据的仓库,我的问题是这样的: 视图是好的实践还是最好的方法? 我打算使用多维数据集来聚合多维查询。在数据仓库中使用视图

很抱歉,如果这是问一个基本的问题,我不跟仓库和analyis服务经历

感谢

回答

3

分析服务和视图具有根本区别,它们将被不同的报告或分析工具使用。

如果您有基于SQL的报告(例如通过Reporting Services或Crystal Reports),则这些视图可能对这些报告有用。视图也可以实现(这些在SQL Server上称为索引视图)。在这种情况下,它们被保存到磁盘,并可用于减少对视图执行查询所需的I/O。针对非实例化视图的查询仍然会触发基础表。

通常,视图用于安全性或简单性目的(即将业务逻辑或计算封装在易于查询的事情中)。为了安全起见,他们可以通过过滤(限制可用行)或屏蔽基础表中的敏感字段来限制对敏感数据的访问。

Analysis Services使用不同的查询和报告工具,并预先计算和存储聚合数据。与服务器的接口不同于SQL Server,因此用于多维数据集(例如ProClarity)的报告或查询工具与用于报告数据库的工具不同(尽管某些系统确实能够从两者中进行查询)。

+0

感谢您的回答,这是否意味着通过报告服务与立方体报告是可能的? – Stuart 2009-05-29 11:18:30

+0

以及您建议如何报告立方体? – Stuart 2009-05-29 11:19:16

+0

@stuart:是的,您可以在报告服务中使用Analysis Services数据源 – 2009-05-29 11:23:15

2

立方体是一个更好的方法来汇总数据并对其进行多维分析。

视图的问题有两方面:性能不佳(所有这些联接和分组),无法用户切分和分片数据。

在我的项目中,我使用“哑”视图作为数据仓库和多维数据集之间的另一层(即我的维度和度量组基于视图),因为它使我具有更大程度的灵活性。

2

视图可用于安全目的,例如限制/控制/标准化对数据的访问。

它们也可用于实现自定义表分区实施和联合数据库部署。

如果数据库中视图的功能是为了便于计算度量或统计数据,那么您肯定会从更合适的实现中受益,比如通过数据仓库解决方案提供的实现。

+0

多数民众赞成在我认为,意见只用于计算,即总和。奇怪的选择! – Stuart 2009-05-29 11:14:41

0

几年前我在同一条船上。在我的情况下,我有权访问另一个SQL服务器。在第二台服务器上,我创建了一个到仓库的链接服务器,然后在第二台服务器上创建了我的视图和物化视图。从某种意义上说,我有一个数据仓库和一个报告仓库。对于这个项目,这个方法的效果最好,因为我们需要将数据访问到其他部门和一些供应商。将服务器分成两个独立的实例,一个用于仓储,另一个用于报告也缓解安全访问涉及的一些风险。