使用elasticsearch-river-mysql将数据从MySQL数据库传输到Elasticsearch

时间:2014-05-14 15:07:19

标签: mysql elasticsearch

我想使用elasticsearch-river-mysql来连续地将数据从MySQL数据库传输到ElasticSearch。我是ES和河流的初学者,所以我希望你能帮助我解决我的问题。

  1. 据我所知,数据将从MySQL数据库流式传输到ES集群,ES集群将自动对其进行索引。那是对的吗?我必须注意任何超时或限制吗?
  2. 如何将关系数据库表之间的外键关系转换为ES?包含外键的表行是否会成为ES文档的内部对象,或者将使用ES文档之间的某些其他关系?
  3. 在上述用途中使用这条河有什么不利之处吗?
  4. 通过实施此操作会对ES产生什么负担?我认为ES足够强大,但我仍然在想。在这种情况下,ES集群上的搜索是否会受到影响?

1 个答案:

答案 0 :(得分:6)

我的建议是尝试使用elasticsearch-jdbc-river有很多原因。

其中之一是elasticsearch-jbdc-river在您决定切换 RDBMS 时更通用。

另一个原因是jbdc-river仍然维持,而另一个人自2年以来还没有维持,而Elasticsearch从此进化了很多。

<强> 1。据我所知,数据将从MySQL数据库流式传输到ES集群,ES集群将自动对其进行索引。那是对的吗?是否有任何超时或限制我必须注意?

来自MySQL的数据应自动从MySQL流式传输到Elasticsearch集群,没有超时限制,但瓶颈将是您的JVM堆大小。我不确定您需要处理多少数据。你需要测试它。

<强> 2。关系数据库表之间的外键关系如何转换为ES?包含外键的表行是否将成为ES文档的内部对象,或者将使用ES文档之间的某些其他关系?

Elasticsearch是无模式的,因此您需要manage to the inside Elasticsearch。河流只是将数据流入您的群集。您可以在创建索引时定义映射,然后使用河流将其流式传输到ES群集中​​。

第3。在上述目的中使用这条河有什么不利之处吗?

河流将被另一种清洁方式取代,以便传输这些数据,但这是您现在拥有的最佳解决方案。