【发布时间】:2018-02-16 03:28:48
【问题描述】:
我有一个带有 ~1 亿行的没有连接的表的 MySQL 数据库。这些项目可以更新或删除,并且新记录也会定期保存到 MySQL DB 中,例如每一分钟。如何在 Elasticsearch 中更新索引
when data is updated/changed/deleted in MySQL DB?
实现数据对我来说是必须的,与 MySQL 保持同步非常重要。可能吗?谢谢。
我也尝试了schedule => "* * * * *" and updated_at > :sql_last_value 的解决方案,但速度很慢。
【问题讨论】:
-
这个答案可能会有所帮助:stackoverflow.com/questions/34477095/…
-
对于您提到的大小的表格,将时间框架放在您的“最新”规范周围会很有帮助。例如,你能指定这个吗? ElasticSearch 必须很少落后 MySQL 超过 60 秒,并且永远不会落后超过 300 秒?如果您有这样的规范,您可以实施和测试它。
-
@O.Jones 在“最新”下我的意思是尽可能快,趋向于零。一次可以更新大约 50k 行。我想要理想的实时,但我知道这是不可能的。我希望尽可能将我的数据保存在 Elastic 中。我尝试了
updated_at > :sql_last_value的解决方案,但即使在 MySQL 中通过 updated_at 建立索引,它也很慢。 -
@Val 感谢您的回复,我会检查 Logstash JDBC 输入
标签: mysql elasticsearch indexing logstash