从sql-server到另一个数据存储库的实时单向同步

data-synchronization sqlbulkcopy sql-server-2008 ssis

在我之前关于此门户网站的问题中 ,我曾询问过有关在SQL Server和基于键值的数据存储库之间同步数据的一些见解。

代替同样的问题(从SQL到HBase或任何其他数据库的单向实时同步),我需要考虑一些性能和延迟考虑因素,并没有找到一种非常简单的方法。

  1. 我们有多个SQL 2008数据分片,其中数据从各种源更新并由多个进程同时处理(并且UI从相同的分片读取)。

  2. 目标是在任何时间点获取所选表中的所有更新,并以几乎实时的方式将它们传输到其他数据源。

  3. SQL分片的更改量将保持在100-500 MB范围内(如果我们保持1分钟的频率)。我们不希望在SQL服务器上进行重大更改,因为我们会在迁移完整系统后将其丢弃。

  4. 不幸的是,我们的数据访问层在各个层中混乱。否则,它将是在两个方向上分叉更新的最佳方式。

  5. 触发器将减慢分片并使它们处于无响应状态。

  6. 不确定SQL Server 2008是否具有类似于SQL Server 2005 Notification服务的功能以及它的有效性。

任何其他创新解决方案都会非常有用

在这里,我的问题不是将数据从关系转换为键值形式(这相当简单),而是如何实时获取SQL Server更新(可承受1-2分钟的延迟)而不影响用户体验。


热门答案

您可能需要考虑的一个选项是SQL Server集成更改跟踪 (SQL2008或更高版本的一部分)。这是一种非常有效的方法来查找SQL Server数据库中发生的更改(包括删除),对SQLDB的影响非常小,不需要触发器,并提供了一种允许您将数据更改移动到Hadoop的。

完全披露,我在Cotega上工作,这个数据同步是我们非常关注的事情。如果这是您有兴趣参加的方向,我很乐意提供更多帮助。




许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因