代码之家  ›  专栏  ›  技术社区  ›  Stuart

在数据仓库中使用视图

  •  5
  • Stuart  · 技术社区  · 15 年前

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

    抱歉,如果这是问一个基本问题,我对仓库和分析服务没有经验

    谢谢

    4 回复  |  直到 14 年前
        1
  •  4
  •   ConcernedOfTunbridgeWells    15 年前

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

    如果您有基于SQL的报表(例如通过ReportingServices或Crystal Reports),那么视图可能对这些报表很有用。视图也可以具体化(这些视图在SQL Server上称为索引视图)。在这种情况下,它们被持久化到磁盘上,可以用来减少对视图进行查询所需的I/O。对非物化视图的查询仍将命中基础表。

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

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

        2
  •  3
  •   Santiago Cepas    15 年前

    多维数据集是一种更好的汇总数据并对其进行多维分析的方法。

    视图的问题有两个方面:性能不好(所有的连接和分组方式),以及用户无法对数据进行骰子和切片。

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

        3
  •  2
  •   John Sansom    15 年前

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

    它们还可以用于实现自定义表分区实现和联邦数据库部署。

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

        4
  •  0
  •   Tom H zenazn    14 年前

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