使用CQRS或SSIS OLTP到OLAP

时间:2012-02-20 09:46:59

标签: sql-server-2008 ssis nservicebus olap cqrs

背景资料

我们的应用程序从3个组件读取/写入:

  1. ASP.NET MVC 3客户前端网站(编写动作)
  2. 商店中的Winform验证工具(写入操作)
  3. 租户的Silverlight仪表板(95%聚合读取5%写入操作)
  4. (3)是唯一可以使用某些性能改进的部分。

    我们的存储是Sql Server标准OLTP数据库,它具有存储过程,用于聚合silverlight应用程序消耗的数据。

    使用数据库调优顾问程序或执行计划时,我们看不到任何关键索引丢失,我们使用sql代理程序作业重建索引。

    大多数小部件都是迷你图

    • x =按时间间隔(日,周,月,年)选择的时间
    • y =聚合(sum,avg,ect)

    目前我们每个小部件返回大约14 - 20点。我们的仪表板最初打开了10个小部件。

    我们的维度将是:租户,商店,(日,周,月,年)

    我们的事实:完成,不完整,赎回,得分......

    我知道非规范化表将删除需要sql server重新计算 商店经理,特许经营业主,企业查看数据〜50(同时用户) 每次

    如果我们使用OLAP,我会说实话,这将是我第一次亲身体验它。

    问题

    丰富的报告信息中心的长期解决方案是什么?

    我会假设OLAP。如果是这样,您如何保持最新状态,使其接近我们今天的实时仪表板? 在OLAP重建自身时放置维护页面不是一种选择。 理想情况下,我们希望以递增方式执行此操作,并将Nservicebus(我们今天已经使用)视为更新这些更好的桥梁 非规范化的观点。我们将这些非规范化视图作为另一个表放在oltp中,还是有办法逐步更新OLAP数据源?

    参考

    http://www.udidahan.com/2009/12/09/clarified-cqrs/

    http://www.udidahan.com/2011/10/02/why-you-should-be-using-cqrs-almost-everywhere%E2%80%A6/

1 个答案:

答案 0 :(得分:1)

“Putting a maintenance page while OLAP rebuilds itself is not an option.“

你为什么这么说? OLAP多维数据集在重建时可用。 有几种方法可以配置刷新的工作方式,ROLAP,HOLAP和MOLAP。您可以在X小时自动刷新,甚至可以实时提供数据。尝试阅读关于SSAS的主动缓存,它可能会给你一些想法。