ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

es大量数据导入效率优化

2021-10-20 18:33:05  阅读:159  来源: 互联网

标签:threadExecutorService 10000 10 runSubmit page 导入 putEsUserInfo 效率 es


项目需求中,简历信息涉及10张表,需要联查获取组装数据,实测,查询一条数据需要5s,大概算了一下总时间的话需要60个小时左右导入完成。
优化方法:数据分段+多线程
1、10万条数据为例,数据分成10份,每一份10000条;
2、每一份数据起一个线程,10个线程,
代码大致如下:

public Result putAllJobUserInfo() throws ExecutionException, InterruptedException {
        long l = System.currentTimeMillis();
        threadExecutorService.runSubmit(() -> this.putEsUserInfo(1, 10000));
        threadExecutorService.runSubmit(() -> this.putEsUserInfo(2, 10000));
        threadExecutorService.runSubmit(() -> this.putEsUserInfo(3, 10000));
        threadExecutorService.runSubmit(() -> this.putEsUserInfo(4, 10000));
        threadExecutorService.runSubmit(() -> this.putEsUserInfo(5, 10000));
        threadExecutorService.runSubmit(() -> this.putEsUserInfo(6, 10000));
        threadExecutorService.runSubmit(() -> this.putEsUserInfo(7, 10000));
        threadExecutorService.runSubmit(() -> this.putEsUserInfo(8, 10000));
        threadExecutorService.runSubmit(() -> this.putEsUserInfo(9, 10000));
        threadExecutorService.runSubmit(() -> this.putEsUserInfo(10, 10000));
        threadExecutorService.runSubmit(() -> this.putEsUserInfo(11, 10000));
        threadExecutorService.runSubmit(() -> this.putEsUserInfo(12, 10000));
        long l1 = System.currentTimeMillis();
        System.out.println(l1 - l);
        return Result.ok();
    }


    private Result putEsUserInfo(Integer page, Integer limit) {
        int count = 0;
        PageHelper.startPage(page, limit);
        List<Long> ids = jobUserMapper.getUserIdList();
        for (Long id : ids) {
            saveEsJobUserInfo(id);
            count++;
            logger.info("线程#" + page + ":已导入:[" + count + "]条数据;用户id为{" + id + "}");
        }
        logger.info("{全部完成 ==>:}线程# " + page + " #全部完成,总数为" + count);
        return Result.ok("{全部完成 ==>:}线程# " + page + " #全部完成,总数为" + count);
    }

标签:threadExecutorService,10000,10,runSubmit,page,导入,putEsUserInfo,效率,es
来源: https://blog.csdn.net/M983373615/article/details/120872352

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有