你不会是程序猿吧?

elasticsearch6,bulk批量插入会有数据丢失

Elasticsearch | 作者 null | 发布于2022年12月17日 | 阅读数:1542

每次保存的时候比如5000条数据,最后只报错了4100条,丢失了900
BulkRequestBuilder requestBuilder =getClient().prepareBulk()
insertMapList.forEach(mapData -> {
IndexRequestBuilder indexRequestBuilder = getClient().prepareIndex("demo", "demo", String.valueOf(mapData.getId()));
indexRequestBuilder.setSource(JsonUtils.toJSONWithDateString(mapData.getData()), XContentType.JSON);
requestBuilder.add(indexRequestBuilder);
});
BulkResponse result = requestBuilder.execute().actionGet(20000, TimeUnit.MILLISECONDS);

getClient().admin().indices().refresh(refreshRequest(“demo”)).actionGet();
返回的 BulkResponse 没有异常,也没有对外抛出异常
 
同样的数据再次同步,就可以成功


 
 
已邀请:

陈水鱼 - 码农

赞同来自:

解决了吗?会不会中间的异常被吞掉了,可以把日志调整为debug试一下,以前用spark写bulk,碰到过监控不到异常。

要回复问题请先登录注册