0

我正在构建一个需要使用源数据库中的数据的应用程序。源数据库有几个问题,包括:

  • 性能问题
  • 带有糟糕的键、命名约定等的遗留结构。
  • 我的应用程序不关心的大量数据

我想设置一个特定于应用程序的 SQL Server 数据库。新数据库将填充来自源数据库(以及来自一些其他源系统)的数据子集。数据将始终以一种方式从源数据库移动到特定于应用程序的数据库(即,数据不会同步回源)。它将具有与源数据库不同的 DDL 模型。数据不需要绝对实时同步,但超过几分钟的延迟可能会导致问题。我应该如何将数据从源数据库移动到应用程序数据库?我应该使用

  • 复制
  • 编写自定义 SSIS 包
  • 抽象到更高级别的 SOA 解决方案,如 nServiceBus、AppFabric 等?
  • 其他一些想法?

每个人的优点/缺点?

4

1 回答 1

0

在我看来,您不需要像 NServiceBus 这样的消息传递服务 - 这将涉及修改遗留系统以在数据更改时发布事件,我希望您不想进入。因为在您的情况下,您的本地数据存储稍微过时是可以接受的,所以 SSIS 包可能是可以接受的。

但是,如果源数据库非常大,这可能是个问题,因为您每隔几分钟就会这样做。此外,如果旧系统的用户已经遇到性能问题,那么每隔几分钟运行一次 SSIS 包也无济于事。也许您可以引入源数据的时间戳,以便它只复制新的/修改的数据?

如果源数据非常大并且性能是一个严重的问题,那么 NServiceBus 可能是一个好主意。您还可以考虑 Mass Transit 或您自己基于 MSMQ 构建的简单解决方案。但这将意味着让您对遗留代码感到厌烦。

于 2012-09-15T13:36:14.030 回答