博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
多线程处理海量数据的解决方案
阅读量:5068 次
发布时间:2019-06-12

本文共 605 字,大约阅读时间需要 2 分钟。

背景:

  近期发现系统数据有不准确的现象发生,究其原因是因为上有数据导致的,而由于上游有多个渠道组成,所以无法要求上游统一修复数据。所以只能自己想办法每天修复错误数据。

初步解决方案:

  1,从商城库存那边拿到所有SKU+库存的信息。

  2,通过拿到的SKU+库存信息,修复现有的数据。

遇到的问题:

  1,库存那边的数据是以SKU+仓库id+配送中心id为维度,但是我们这边需要的是SKU+ORG维度。

  2,全量库存数据有1.2个亿。

解决办法:

  1,先把库存的原始数据(SKU+仓库ID+配送中心id)数据落地。

  2,将原始数据清洗为SKU+ORG维度。

  3,将清洗好的数据中过滤掉,不需要的库存信息。

  4,开启多个多线程同时修复数据。

 

多线程部分:

  共同时开启4个线程(0、1、2、3),用SKU_ID对4取模

  也就是说:

  线程0处理的数据范围为:SKU_ID%4=0 的数据。

  线程1处理的数据范围为:SKU_ID%4=1 的数据。

  线程2处理的数据范围为:SKU_ID%4=2 的数据。

  线程3处理的数据范围为:SKU_ID%4=3 的数据。

 

每个线程,每次再分页处理数据,即可。经过尝试,1.2个亿的数据分4个线程大概半个小时,即可处理完。

转载于:https://www.cnblogs.com/FranklinD/p/7266362.html

你可能感兴趣的文章
dwz ie10一直提示数据加载中
查看>>
Windows Phone开发(4):框架和页 转:http://blog.csdn.net/tcjiaan/article/details/7263146
查看>>
Windows Phone Marketplace 发布软件全攻略
查看>>
Unity3D研究院之打开Activity与调用JAVA代码传递参数(十八)【转】
查看>>
语义web基础知识学习
查看>>
hexo个人博客添加宠物/鼠标点击效果/博客管理
查看>>
python asyncio 异步实现mongodb数据转xls文件
查看>>
单元测试、、、
查看>>
SVN使用教程总结
查看>>
JS 浏览器对象
查看>>
TestNG入门
查看>>
【ul开发攻略】HTML5/CSS3菜单代码 阴影+发光+圆角
查看>>
虚拟中没有eth0
查看>>
Unity 3D游戏开发学习路线(方法篇)
查看>>
BZOJ2049[Sdoi2008]Cave 洞穴勘测(LCT模板)
查看>>
vuex插件
查看>>
2011年12月09日
查看>>
[ZJOI2007]棋盘制作 【最大同色矩形】
查看>>
IOS-图片操作集合
查看>>
模板统计LA 4670 Dominating Patterns
查看>>