Elasticsearch增量是靠什么做判断?我做过实验,将目标库删除,或更改目标库,会覆盖。没用好,感觉太危险了,仅仅用过logstash,因为我就迁移一次,不做增量,阿里云版本低,你的版本高,有一个兼容属性可以设置。
Elasticsearch 的增量数据迁移通常是通过 Logstash 的 Elasticsearch 输出插件实现的。Logstash 会将增量数据从源数据源捕获并发送到目标 Elasticsearch 集群中。目标 Elasticsearch 集群会根据数据的状态来判断是否为增量数据。当目标 Elasticsearch 集群的状态比源数据源的状态新时,Logstash 会将源数据源中已经存在于目标 Elasticsearch 集群中的数据忽略掉,从而实现了增量数据迁移的功能。
如果您将目标库删除或更改目标库,则会覆盖原有数据。这是因为 Logstash 将数据发送到目标 Elasticsearch 集群中时,会根据数据的 ID 进行判断是否已经存在于目标集群中。如果数据的 ID 已经存在,则认为是增量数据,否则认为是全新数据。因此,如果您删除了目标库或更改了目标库,那么所有数据的 ID 都会被删除或更改,导致 Logstash 发送的数据都被认为是全新数据,从而覆盖了原有数据。
如果您想要实现增量数据迁移,建议使用 Elasticsearch 的 Reindex API 来进行数据迁移,而不是直接覆盖目标库。Reindex API 可以将源索引中的数据复制到目标索引中,并支持增量复制,即只复制源索引中在目标索引中不存在的数据。这样可以避免覆盖原有数据,实现增量数据迁移的功能。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。