如何在没有代码的情况下使ElasticSearch与SQLServer保持同步?

时间:2017-03-05 01:29:19

标签: sql-server elasticsearch indexing

我正在处理SQLServer中的一个表,我需要在近乎实时的ElasticSearch中编入索引。在此表中从各个点(遗留代码,存储过程等)添加/更新/删除记录,因此检测代码以查找与此表交互的所有区域是不可行的。什么技术和/或工具可以实现这个目标?

注意:SQLServer中的表包含大约10列,最多可包含一百万行。

1 个答案:

答案 0 :(得分:2)

如果你想用最少的代码来做,那么你可以使用Logstash jdbc插件进行设置(现在Elasticsearch不再支持河流概念)。在表中有一个上次更新的时间戳列。您可以将轮询查询配置为基于它,以便它可以拾取自上次运行以来的更改。确保在此时间戳列上定义了索引。由于这将是一个轮询过程,所以不要过度设置并设置非常低的轮询间隔,因为这可能最终会给SQL DB服务器带来不必要的工作量。

如果您准备以正确的方式执行并准备花时间编码,那么您可能应该考虑使用SQL Server服务代理选项。您可以在表上使用触发器在队列上写入消息和外部轮询/触发器进程以拾取消息/更改并将其推送到Elasticsearch。

相关问题