Sql server 2008 从sql server到另一个数据存储库的实时单向同步
在我关于此门户的文章中,我询问了有关在SQL Server和基于键值的数据存储库之间同步数据的一些见解 为了避免同样的问题(从SQL到HBase或任何其他数据库的单向实时同步),我需要考虑一些性能和延迟方面的因素,并且没有找到一种非常简单的方法Sql server 2008 从sql server到另一个数据存储库的实时单向同步,sql-server-2008,ssis,sqlbulkcopy,data-synchronization,Sql Server 2008,Ssis,Sqlbulkcopy,Data Synchronization,在我关于此门户的文章中,我询问了有关在SQL Server和基于键值的数据存储库之间同步数据的一些见解 为了避免同样的问题(从SQL到HBase或任何其他数据库的单向实时同步),我需要考虑一些性能和延迟方面的因素,并且没有找到一种非常简单的方法 我们有多个SQL 2008数据碎片,其中数据从不同来源更新,并由多个进程同时处理(UI从相同碎片读取) 目标是在任何时间点获取选定表中的所有更新,并以几乎实时的方式将它们传输到其他数据源 SQL碎片中的更改量将保持在100-500 MB的范围内(如果我们
这里我的问题不是将数据从关系型转换为键值型(这相当容易),而是如何在不影响用户体验的情况下实时获取SQL Server更新(可以承受1-2分钟的延迟) 您看过SQL Service Broker吗?这里有一个链接,其中包含一些信息:从下到上都有数据层:存储、文件系统、数据库和应用程序 最有效的方法是使用存储复制。它几乎对性能没有影响,可以配置为同步或异步,并且不是免费的。您可以在谷歌上搜索SRDF或MirrorView以了解其概念 然后,您可以查看文件系统复制。它类似于存储复制,但发生在操作系统/文件系统层,消耗主机系统的资源(CPU、IO、mem)。您可以在谷歌赛门铁克存储基金会获取更多信息。 在DB级别,您可以执行数据库复制/日志传送来复制数据。SQLServer有这样的功能
“最便宜”的解决方案是修改您的应用程序(如4),但我建议您使用消息队列来复制数据,以最大限度地减少对性能的影响。您可能希望研究的一个选项是(SQL2008或更高版本的一部分)。这是查找SQL Server数据库中发生的更改(包括删除)的一种非常有效的方法,对SQL DB的影响非常小,不需要触发器,并且提供了一种很好的方法,允许您将数据更改移动到Hadoop
充分披露,我在科特加工作,这是我们非常关注的事情。如果这是您感兴趣的方向,我很乐意提供更多帮助。更改跟踪似乎是一个很好的解决方案。但是,尚未找到高流量服务器上性能开销的任何统计信息。您可能需要查看的另一个统计信息是Sql Server更改数据捕获。