2017-03-05 72 views
1

我正在处理一个SQLServer中的表,我需要在ElasticSearch中实时索引。记录在这个表格中从各个点(遗留代码,存储过程等)添加/更新/删除,因此通过检查代码来查找与该表格交互的所有区域是不可行的。什么技术和/或工具会允许这个?如何使Elasticsearch保持与SQLServer无代码的最新状态?

注意:SQLServer中的表包含大约10列,可能包含多达100万行。

回答

2

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

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

+0

感谢您的快速响应。当你说要保持低轮询间隔时,你只关心SQLServer而不是ElasticSearch? –

+0

没错。我正在讨论关于SQL Server数据库的负载。通过一些测试,您应该能够确定什么频率是可以接受的,而不会在SQL Server上不断增加负载。 – askids

相关问题