我想使用elasticsearch-river-mysql来连续地将数据从MySQL数据库传输到ElasticSearch.我是ES和河流的初学者,所以我希望你能帮助我解决我的问题.
据我所知,数据将从MySQL数据库流式传输到ES集群,ES集群将自动对其进行索引.那是对的吗?我必须注意任何超时或限制吗?
关系数据库表之间的外键关系如何转换为ES?包含外键的表行是否将成为ES文档的内部对象,或者将使用ES文档之间的某些其他关系?
为上述目的使用这条河有什么不利之处吗?
通过实现这一点,ES的负担是什么?我认为ES足够强大,但我仍然在想.在这种情况下,无论如何都会在ES群集上进行搜索?
eliasah.. 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是无模式的,因此您需要管理内部Elasticsearch.河流只是将数据流入您的群集.您可以在创建索引时定义映射,然后使用河流将其流式传输到ES群集中.
3.为上述目的使用这条河有什么不利之处吗?
这条河将被另一种清洁方式取代,以流式传输这些数据,但这是您现在拥有的最佳解决方案.