【问题标题】:Using views in a datawarehouse在数据仓库中使用视图
【发布时间】:2009-05-29 09:16:54
【问题描述】:

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

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

谢谢

【问题讨论】:

    标签: sql sql-server database database-design


    【解决方案1】:

    Analysis Services 和 Views 的根本区别在于它们将被不同的报告或分析工具使用。

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

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

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

    【讨论】:

    • 感谢您的回答,这是否意味着可以通过多维数据集的报告服务进行报告?
    • 您对多维数据集报告有何建议?
    • @stuart:是的,您可以在报告服务中使用 Analysis Services 数据源
    • 是的,您可以使用分析服务数据源报告多维数据集 - 并发出 MDX 查询。它在某些情况下很有用,也许当您可以利用多维数据集的聚合来提高性能时,或者当您想在多维数据集中使用计算成员(例如 YTD 计算)时。
    【解决方案2】:

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

    视图的问题是双重的:性能不佳(所有这些连接和分组),以及无法由用户对数据进行切分和切片。

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

    【讨论】:

      【解决方案3】:

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

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

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

      【讨论】:

      • 这就是我的想法,视图仅用于计算,即求和。奇怪的选择!
      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-10-11
        • 2015-11-11
        • 2022-12-03
        • 1970-01-01
        • 2012-05-23
        • 2022-11-02
        • 2012-05-16
        • 2010-11-05
        相关资源
        最近更新 更多