一尘不染

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

elasticsearch

我想使用elasticsearch-river-mysql以便将数据从MySQL数据库连续传输到ElasticSearch。我是ES和Rivers的初学者,所以希望您能为我的问题提供帮助。

  1. 据我所知,数据将从MySQL数据库流式传输到ES集群,后者将自动对其进行索引。那是对的吗?我需要了解任何超时或限制吗?
  2. 关系数据库表之间的外键关系将如何转换为ES?包含外键的表行是否将成为ES文档的内部对象,或者将使用ES文档之间的其他关系?
  3. 将河流用于上述目的有什么不利条件吗?
  4. 实施此计划将给ES带来什么负担?我认为ES足够强大,但是我仍然想知道。在这种情况下,在ES群集上进行的搜索是否会受到影响?

阅读 384

收藏
2020-06-22

共1个答案

一尘不染

我的建议已经出于多种原因尝试使用elasticsearch-jdbc-
river

其中之一是,elasticsearch-jbdc-river如果您决定切换 RDBMS ,则它更为通用。

另一个是,jbdc-river当另一个已经不存在时,它仍然保持不变,并且Elasticsearch从那以后发展了很多。

1.据我所知,数据将从MySQL数据库流式传输到ES群集,后者将自动对其进行索引。 那是对的吗?我需要了解任何超时或限制吗?

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

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

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

3.将河流用于上述目的是否有任何不利条件?

这条河将被另一种更清洁的方式来流式传输这些数据取代,但这是您目前拥有的最佳解决方案。

2020-06-22