![使用 Integration Services 将更改推送到多维数据集](https://linux22.com/image/557488/%E4%BD%BF%E7%94%A8%20Integration%20Services%20%E5%B0%86%E6%9B%B4%E6%94%B9%E6%8E%A8%E9%80%81%E5%88%B0%E5%A4%9A%E7%BB%B4%E6%95%B0%E6%8D%AE%E9%9B%86.png)
由于我们的 SQL Server 是标准版,无法进行主动缓存,我想知道 Integration Services 是否可以检测数据库/表中的更改,然后自动处理多维数据集?还是这只是一厢情愿的想法?
答案1
我不相信它会原生支持这一点,但你可以做类似下面的事情
1)向表中添加一个触发器,该触发器将在每次插入或更新记录时设置最后修改日期值。
2)创建一个SSIS包来重新处理您的多维数据集。
3)让 ssis 包写入上次运行日期时间值来跟踪上次执行的时间
4) 让您的 SSIS 包将表的最后修改日期与包的最后运行时间进行比较。如果发生了修改,那么 SSIS 包就可以执行其处理。
5)安排该包每五分钟左右运行一次以捕获新数据。
需要注意的是,每次数据发生变化时,您实际上都会重新处理多维数据集。如果数据变化不频繁且多维数据集较小,那么这可能是可以接受的,但如果数据频繁更新,则可能会削弱多维数据集的性能。主动缓存的作用不只是自动更新多维数据集。它还管理 SSAS 缓存,以便新数据合并而不会导致性能下降。我在此处描述的模型无法实现这一点。
总的来说,我试图劝说我的客户不要使用实时立方体更新。问题是,如果数字每隔几分钟就变化一次,那么分析就会变得棘手。很多人曾要求这样做,但一旦我们讨论过其影响,他们就会改变主意。话虽如此,它还是有合法的用例的。