【发布时间】:2021-11-26 12:34:49
【问题描述】:
我是 Amazon OpenSearch 服务的新手,我想知道是否有任何方法可以将 MySQL db 与 Opensearch 实时同步。我想到了 Logstash,但它似乎不支持 delete , update 操作可能不会更新我的 OpenSearch 集群
【问题讨论】:
标签: mysql elasticsearch amazon-elasticsearch
我是 Amazon OpenSearch 服务的新手,我想知道是否有任何方法可以将 MySQL db 与 Opensearch 实时同步。我想到了 Logstash,但它似乎不支持 delete , update 操作可能不会更新我的 OpenSearch 集群
【问题讨论】:
标签: mysql elasticsearch amazon-elasticsearch
我将为 Elasticsearch 发表评论,因为这是用于此问题的标签。
你可以:
SELECT * from TABLE)_bulk API。Logstash 可以为此提供帮助。但我建议尽可能修改应用程序层,并在将数据发送到数据库的同一“事务”中将数据发送到 elasticsearch。
我在那里分享了我的大部分想法:http://david.pilato.fr/blog/2015/05/09/advanced-search-for-your-legacy-application/
也看看这个"live coding" recording。
旁注:如果您想运行 Elasticsearch,请查看 Cloud by Elastic,如果需要,也可以从 AWS Marketplace、Azure Marketplace 和 Google Cloud Marketplace 获得。
Cloud by elastic 是访问所有功能的一种方式,所有功能均由我们管理。想想还有什么,比如安全、监控、报告、SQL、Canvas、地图 UI、警报和名为 Observability、Security、Security、Enterprise Search 的内置解决方案以及接下来会发生什么 :) ...
免责声明:我目前在 Elastic 工作。
【讨论】:
保留一列指示该行的最后修改时间,然后您就可以对 OpenSearch 进行更新。类似的删除,只要有一列表明它是否被删除(软删除),以及它被删除的日期。
使用此数据库设计,您可以向 OpenSearch/ElasticSearch 发送“删除”或“更新”操作,以根据上次修改/删除日期更新/删除索引。您可以稍后安排一个定期维护作业,从数据库表中永久删除这些行。
最后,这篇文章可能对你有所帮助How to keep Elasticsearch synchronized with a relational database using Logstash and JDBC
【讨论】: