使用 Integration Services 将更改推送到多维数据集

使用 Integration Services 将更改推送到多维数据集

由于我们的 SQL Server 是标准版,无法进行主动缓存,我想知道 Integration Services 是否可以检测数据库/表中的更改,然后自动处理多维数据集?还是这只是一厢情愿的想法?

答案1

我不相信它会原生支持这一点,但你可以做类似下面的事情

1)向表中添加一个触发器,该触发器将在每次插入或更新记录时设置最后修改日期值。

2)创建一个SSIS包来重新处理您的多维数据集。

3)让 ssis 包写入上次运行日期时间值来跟踪上次执行的时间

4) 让您的 SSIS 包将表的最后修改日期与包的最后运行时间进行比较。如果发生了修改,那么 SSIS 包就可以执行其处理。

5)安排该包每五分钟左右运行一次以捕获新数据。

需要注意的是,每次数据发生变化时,您实际上都会重新处理多维数据集。如果数据变化不频繁且多维数据集较小,那么这可能是可以接受的,但如果数据频繁更新,则可能会削弱多维数据集的性能。主动缓存的作用不只是自动更新多维数据集。它还管理 SSAS 缓存,以便新数据合并而不会导致性能下降。我在此处描述的模型无法实现这一点。

总的来说,我试图劝说我的客户不要使用实时立方体更新。问题是,如果数字每隔几分钟就变化一次,那么分析就会变得棘手。很多人曾要求这样做,但一旦我们讨论过其影响,他们就会改变主意。话虽如此,它还是有合法的用例的。

相关内容