Elasticsearch river 插件的替代品

Alternatives to Elasticsearch river plugins

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

我不想使用未来几年将不再受支持的工具。有哪些替代方案?

河流的文档中说:

Note, JDBC plugin is not only a river, but also a standalone module. Because Elasticsearch river API is deprecated, this is an important feature.

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

您最好自己编写。 Rivers 没有那么多功能,您很可能需要比 River 允许的更细粒度的数据访问控制。您需要 2 个高级组件:

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

一些备选方案:

  • rivers仍然可以使用,直到Elasticsearch 2.0版本。但这不是长久之计。
  • 您可以编写自己的解决方案,如 plmaheu 所说。这是一些工作,但会完美地适合您的程序,并在 Elasticsearch blog.
  • 上推荐
  • 您可以 将 insert/update/delete 请求发送到 Logstash,而不是编写自定义代码日志,这将在 Elasticsearch 上生成它们。我喜欢这个解决方案,因为 Logstash 会为您批量处理并处理您不想自己实现的其他事情。
  • 我听说您可以使用 Talend 等 ETl 工具,但我没有研究该解决方案,因为它是付费解决方案。
  • 有一个 gatherer 插件 本来应该取代河流。但是自去年以来一直没有更新,所以很可能该项目已被放弃。

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

注意:目前有很多优秀的解决方案正在开发中以替代河流,以logstash-jdbc input为例。 rivers 的弃用是最近才发生的,预计接下来 months/years.

会出现许多替代品