使用官方提供的sql案例,执行如下语句: delete from label; elasticsearch中label数据不会删除。 而执行: delete from user; elasticsearch中user数据可以删除成功。
这两个数据的区别为label在es中以数组形式存储,所以猜测是因为数组发生无法同步删除操作的bug。
原提问者GitHub用户1075482900
可以尝试设置 Canal 的 canal.instance.filter.black.regex 参数,将需要同步的表名和字段名都写上,以忽略不需要同步的操作。在设置过滤规则时,需要保证正则表达式能够准确匹配需要过滤的表和字段,避免出现误判,从而确保数据能够正确地同步到 Elasticsearch 中。
另外,如果在 Elasticsearch 中存储的是数组类型的数据,可以考虑使用 Elasticsearch 的 nested 数据类型,将数组中的元素作为子文档进行存储。这样可以更好地支持数组的操作,并且方便进行数据的查询和分析。需要注意的是,在使用 nested 数据类型时,需要对数据进行正确的建模和索引设计,避免出现数据不一致或性能问题。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。