Elasticsearch河流插件的替代品

时间:2015-04-16 12:39:02

标签: jdbc elasticsearch elasticsearch-jdbc-river

我想将Elasticsearch索引与SQL数据库的内容同步。 Elasticsearch JDBC河满足了我的所有要求,但在文档中,据说该插件已被弃用。

我不想使用在接下来的几年里不会支持的工具。有哪些替代方案?

在河流的文件中,据说:

  

注意,JDBC插件不仅是一个河流,也是一个独立的模块。由于不推荐使用Elasticsearch river API,因此这是一项重要功能。

为什么它是一个重要的功能?这是否意味着我仍然可以无限期地使用它,尽管有弃用,例如使用馈线而不是河流?

2 个答案:

答案 0 :(得分:14)

一些替代方案:

  • 仍然可以使用 rivers ,直到Elasticsearch的2.0版本。但这不是一个长期的解决方案。
  • 您可以编写自己的解决方案,正如所说的plmaheu。这是一些工作,但完全符合您的计划,建议Elasticsearch blog
  • 您可以将插入/更新/删除请求发送到Logstash ,而不是编写自定义代码的日志,这将使它们在Elasticsearch上生成。我喜欢这个解决方案,因为Logstash会为你制作大量的东西并处理你不想自己实现的其他东西。
  • 我听说您可以使用像 Talend 这样的ETl工具,但我没有调查该解决方案,因为它是付费解决方案。
  • 应该替换河流的 gatherer插件。然而,自去年以来它没有更新,所以很可能该项目已被放弃。

ES博客上推荐的两个解决方案是编写解决方案或使用Logstash。选择符合您要求的那个。

注意:目前正在开发许多优秀的解决方案来取代河流,logstash-jdbc input为例。河流的弃用是最近的,可以预期在未来几个月/几年内会出现许多替代品。

答案 1 :(得分:1)

你最好自己编写。 Rivers没有那么多的功能,你很可能需要对数据访问进行更细粒度的控制,而不是河流允许你。您需要2个高级组件:

  • 从SQL服务器获取数据并将其发送到ElasticSearch的可执行工具。
  • 一个调度程序,用于使工具以您需要的间隔运行。