elasticsearch进行批量插入的时候总是少数据

Viola ·
更新时间:2024-11-15
· 952 次阅读

一、问题

现有a表和b表,两张mysql数据库的表,需要把两张表的数据取共同字段,合并并导入es中,其中a表共有数据1000条,b表共有数据1200条,a表和b表的主键id都是从1开始递增的,结果导入的时候显示成功导入2200条数据,而实际查询的时候却只显示b表1200条数据。

二 、分析

现在导致数据被删除的情况应该是a表和b表的主键id重复,es默认mysql中的 id 为主键 并且document 的_id 和id保持一致, 导致a表中的数据被删除掉了(替换掉了)

三、解决方案 新建一个字段保存数据库的id 主键数据, 查询的时候使用uuid作为id的数据 注意

es2.0以后就不支持修改_id映射为其他字段了,es也不支持联合主键之类的

参考链接:
elasticsearch 文档唯一性由多个字段共同确定(类似联合主键),并发下如何确保唯一
elasticsearch 主键生成策略以及如何指定特定字段为id主键列


作者:ratelFu



批量插入 数据 elasticsearch

需要 登录 后方可回复, 如果你还没有账号请 注册新账号