Bulkprocessor写入ES时数据重复两三倍。
创始人
2024-12-26 15:30:08
0

可能是Bulkprocessor在处理数据时出现了重复数据。可以通过以下方法解决:

  1. 判断Bulkprocessor是否重复写入数据。

    调试时可以打开ES监视器(如Elasrticsearch-Head)观察数据写入情况。另外可以在代码中添加日志输出,查看Bulkprocessor每次写入的数据量。

  2. 使用Bulkprocessor的新版API。

    在Elasticsearch 7.x中,Bulkprocessor的API已升级。可以使用新的BulkRequestBuilder和BulkProcessor.Builder方法创建Bulkprocessor,可以有效避免数据重复问题。

    示例代码如下:

    BulkRequest request = new BulkRequest();
    request.add(new IndexRequest("index1", "doc", "1").source(XContentFactory.jsonBuilder()
            .startObject()
            .field("name", "Joe Smith")
            .field("age", 25)
            .endObject()));
    request.add(new DeleteRequest("index2", "doc", "2"));
    request.add(new UpdateRequest("index3", "doc", "3")
            .doc(XContentFactory.jsonBuilder()
                    .startObject()
                    .field("gender", "male")
                    .endObject()));
    BulkProcessor.Listener listener = new BulkProcessor.Listener() {
        @Override
        public void beforeBulk(long executionId, BulkRequest request) {
            logger.debug("Executing bulk [{}] with {} requests", executionId, request.numberOfActions());
        }
    
        @Override
        public void afterBulk(long executionId, BulkRequest request, BulkResponse response) {
            logger.debug("Executed bulk [{}] with {} requests", executionId, request.numberOfActions());
        }
    
        @Override
        public void afterBulk(long executionId, BulkRequest request, Throwable failure) {
            logger.warn("Error executing bulk [{}]", executionId, failure);
        }
    };
    BulkProcessor bulkProcessor = BulkProcessor.builder(client::bulkAsync, listener).build();
    bulkProcessor.add(request);
    

    在使用Bulkprocessor的同时,还可以使用BulkProcessor的Listener接口,监听Bulkprocessor的执行情况,便于调试。

相关内容

热门资讯

wepoke计算辅助!impo... 【福星临门,好运相随】;wepoke计算辅助!impoker有挂吗,(wPK)都是真的有挂(详细透视...
透视ai(德州ai辅助软件)w... 透视ai(德州ai辅助软件)wpk微扑克辅助是真的吗(详细辅助高科技教程)原本是有挂;小薇(透视辅助...
辅助透视(wpk德州透视辅助)... 1、辅助透视(wpk德州透视辅助)wpk被系统针对(详细辅助高科技教程)果然真的是有挂;代表性(透视...
wpk透明挂!微扑克有挂,(w... 这是一款非常优秀的wpk透明挂 ia辅助检测软件,能够让你了解到wpk透明挂中牌率当中全部隐藏参数,...
透视有挂(微扑克辅助器ios)... 透视有挂(微扑克辅助器ios)cloud辅助(详细辅助透视教程)往昔存在有挂1、打开德州poker外...
aapoker猫腻!wpk外挂... aapoker猫腻!wpk外挂是真的还是,(WePoke)真是真的是有挂(详细辅助高科技教程);aa...
透视智能ai(aapoker辅... 透视智能ai(aapoker辅助工具)wepoke有机器人吗(详细辅助曝光教程)总是真的是有挂;小薇...
德扑之星ai代打!德扑之星真的... WePoker透视辅助版本解析‌,德扑之星ai代打!德扑之星真的有辅吗,(wePOke)一贯是有挂(...
透视讲解(德扑之星辅助器购买)... 透视讲解(德扑之星辅助器购买)aapoker安卓怎么下载(详细辅助透明挂教程)原先真的是有挂是一款可...
aapoker发牌机制!aap... aapoker发牌机制!aapoker钻石代理有挂的,(德州之星)确实是真的有挂(详细透视技巧教程)...