【问题标题】:Reporting database synchronization报告数据库同步
【发布时间】:2011-07-01 18:42:48
【问题描述】:

我们正在构建一个应用程序。我们现在有一个 ms sql 数据库,我们可以在其中放置我们需要的所有数据。 我们希望使用另一个仅用于报告的数据库,该数据库将是主数据库的非规范化版本,针对快速数据检索进行了优化。 我们有几个问题:

  1. 哪种类型的数据库最适合报告作业(SQL、RavenDB)
  2. 如何同步这两个数据库?

作为数据访问,我们使用 NHibernate 3.2。

请帮忙。 谢谢

【问题讨论】:

    标签: sql nhibernate synchronization reporting ravendb


    【解决方案1】:

    您可以使用 SQL Server Analysis Services 来存放适当的数据仓库,从您的问题来看,这听起来像您要走的路。 SQL Server Integration Services 可用于执行 ETL(提取-转换-加载)过程,该过程将填充并保持仓库最新。

    已经有大量关于这个过程的优秀综合指南。

    【讨论】:

      【解决方案2】:

      首先选择能够满足您的报告需求的数据库(或搜索引擎)。然后构建一个 ETL 流程以将数据输入报告引擎并保持更新。 ETL 意味着 Extract-Transform-Load,有一些工具可以为您完成所有工作,或者您可以编写自己的专用工具。

      如果您的数据库架构在每条记录上提供“最后更新”时间戳,这样您就可以使用自己的 ETL 工具,这会有所帮助。你甚至不需要保持更新,因为如果你有类似的东西,SQL Server 会为你做:

      CREATE TABLE Orders
      (
      OrderId int NOT NULL PRIMARY KEY,
      ProductName varchar(50) NOT NULL,
      LastUpdated datetime NOT NULL DEFAULT GETDATE()
      )
      

      【讨论】:

        【解决方案3】:

        RavenDB 通常不用于报告,通常的做法是将 RavenDB 数据扁平化为表结构(使用索引)并将其导出到 SQL Server 并使用 Crystal 或 SQL Reporting Services。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-11-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-09-05
          • 1970-01-01
          相关资源
          最近更新 更多