我是分析服务的新手
我的第一个多维数据集已经部署,它似乎可以工作。维度表没问题,事实表也没问题。
我的问题很简单:如果我在相关数据源表中添加新记录,浏览多维数据集,直到再次处理多维数据集,我才能看到新记录。在我看来,我认为如果添加了新记录,那么多维数据集必须反映这些更改。
如何解决这个问题?每次添加新记录时是否需要重新处理多维数据集?这当然是不可能的。
我是分析服务的新手
我的第一个多维数据集已经部署,它似乎可以工作。维度表没问题,事实表也没问题。
我的问题很简单:如果我在相关数据源表中添加新记录,浏览多维数据集,直到再次处理多维数据集,我才能看到新记录。在我看来,我认为如果添加了新记录,那么多维数据集必须反映这些更改。
如何解决这个问题?每次添加新记录时是否需要重新处理多维数据集?这当然是不可能的。
您了解您的多维数据集本质上代表一堆聚合度量吗?这意味着在处理多维数据集时,它会查看事实表中的所有数据并处理度量(根据维度)。
这样做的结果是您能够快速有效地访问多维数据集中的数据。正如您所提到的,缺点是当新数据添加到事实表时,多维数据集不会更新。
通常会有一个每日批处理作业,它将使用最新的事实数据更新多维数据集,具体取决于您拥有的数据量和“实时”要求,这可以每天执行多次。很多人在下班后这样做。
如果您仔细查看 BIDS,您会在“分区”选项卡上注意到每个分区都有一个您可以定义的存储模式。
我建议您阅读这篇文章http://sqlblog.com/blogs/jorg_klein/archive/2008/03/27/ssas-molap-rolap-and-holap-storage-types.aspx
基本上,您可以使用几种不同的模式:
MOLAP(多维在线分析处理) MOLAP 是最常用的存储类型。它旨在为用户提供最大的查询性能。数据和聚合以优化的格式存储在多维数据集中。Cube里面的数据只有在处理Cube的时候才会刷新,所以延迟比较高。
ROLAP(关系在线分析处理) ROLAP 没有 MOLAP 的高延迟缺点。使用 ROLAP,数据和聚合以关系格式存储。这意味着关系源数据库和多维数据集之间的延迟为零。这种模式的缺点是性能,这种类型的查询性能最差,因为没有对象从多维存储中受益。
HOLAP(混合在线分析处理) HOLAP 是介于 MOLAP 和 ROLAP 之间的一种存储类型。数据将以关系格式 (ROLAP) 存储,因此这种存储类型也将具有零延迟。另一方面,聚合以多维格式 (MOLAP) 存储在多维数据集中,以提供更好的查询性能。SSAS 将侦听来自源关系数据库的通知,当发生更改时,SSAS 将收到通知并再次处理聚合。使用这种模式,可以为用户提供零延迟,但与 MOLAP 和 ROLAP 相比,查询性能中等。
要在无需重新处理多维数据集的情况下获得实时报告,您需要尝试 ROLAP,但请注意,性能会受到影响(取决于多维数据集和服务器的大小!)。