我们运行工作跟踪服务作为公司软件的一部分。报告由 SQL Server(标准)报告服务生成,通常每天但经常在会议前需要时生成。
随着作业的进行,它们的状态会发生变化,报告的详细信息也会发生变化。由于前端应用程序和数据库的遗留问题,我们没有存储足够多的里程碑供管理人员回顾历史报告。
经理们经常问“我们能看到 XYZ 上周在哪里吗?” 或者诸如“让我们看看 Project1 去年六月的表现如何?” 但是在 Project1 数据库备份上运行报告都显示 100% 完成,因为它现在已经完成。
使用 SQL Server Standard 在每日级别启用历史报告的最佳方法是什么?
理想情况下,如果可能的话,我们希望每天存储 3 个月的 5 份不同报告?
如果您丢失了历史数据(即它被覆盖而不是存储为交易历史),那么您将无法重建历史状态 - 句号。但是,有几种方法可以解决这个问题。
构建一个自动化流程,通过 SSRS 或其他一些机制查询系统,并将历史报告保存到某个地方的存档中。SSRS 导出一个 Web 服务 API,可让您运行报告(必要时参数化),然后将输出保存到文件中。这可以由任何能够消耗它的东西来操作。
构建一个 ETL 过程,获取数据的快照并将其与之前的快照位置进行比较。在检测到更改的地方,它们可以写出到历史表中。如果您可以选择将触发器放在源数据库上,那么您可以创建写出审计日志信息的触发器。
如果您需要更详细的内容,那么您可以构建一个数据集市 - 在“类型 2 缓慢变化的维度”上进行谷歌搜索,了解有关如何实现这一点的一些想法。您可以根据需要使用如 (2) 中所述的变更捕获机制来获取数据。您可以存储交易历史记录并在报告中重建状态,或者您可以定期制作数据快照及其当时的状态。
请注意,标准版不支持更改的数据捕获。
归档时间: |
|
查看次数: |
5359 次 |
最近记录: |