我一直在关注ElasticSearch作为解决方案在我公司获得更好的搜索和分析功能。我们目前所有的数据都在SQL Server中,并且我已经成功安装了JDBC River并将一些测试数据输入ES。
Rivers似乎是can be deprecated in future releases而JDBC river由第三方维护。 Logstash似乎还不支持从SQL Server索引(不知道它是否是一个计划的功能)。因此,对于我想将数据从SQL Server移动到ElasticSearch的情况,当SQL使用新数据更新时,索引数据和维护索引的首选方法是什么?
来自链接的帖子:
我们建议您在ES外部拥有索引流程,并确保其符合您的需求。
我不太确定从哪里开始。是否使用ES提供的API之一?
答案 0 :(得分:4)
我们使用RabbitMQ将数据从SQL Server传输到ES。就这样,Rabbit负责排队和处理。
作为一个注释,我们每秒可以从SQL运行超过4000条记录到Rabbit。在将数据放入ES之前,我们会进行更多处理,但我们仍然以每秒超过1000条记录的形式插入ES。两端都非常令人印象深刻。兔子和ES都很棒!
答案 1 :(得分:2)
你可以做很多事情。您可以将数据放入rabbitmq或redis中,但您的主要问题是保持最新状态。我想你应该研究一个基于事件的应用程序。但是如果你真的只有sql server作为数据源,你可以使用时间戳和检查更新的查询。根据数据库的大小,您还可以重新索引整个数据集。
使用事件或基于查询的解决方案,您可以将这些更新推送到elasticsearch,可能使用批量API。
关于这样的自定义解决方案的好处是你可以考虑你的映射。如果您真的想要对数据做一些聪明的事情,这很重要。