背景:

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

初步解决方案:

  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

多线程处理海量数据的解决方案相关推荐

  1. 上云迁移-海量数据迁移解决方案

    摘要:传统数据存储在线下数据中心,存在成本高.运维难.性能难保障等等多方面的问题.阿里云提供闪电立方.OSS/NASImport.混合云存储阵列.镜像回源.302跳转.伪源站等六大解决方案为企业提供不 ...

  2. mysql 冷数据存储_数据冷存储系统:更加高效的海量数据存储解决方案

    数据冷存储管理系统是以BD光盘和HDD硬盘作为数据的存储载体,集数据迁移.数据安全.长期存储.查询应用策略.软硬件系统为一体,为用户提供多功能.低能耗.易使用的数据长期保存.冷存储的有效途径与方法,是 ...

  3. 大型网站应用之海量数据和高并发解决方案

    一.网站应用背景 开发一个网站的应用程序,当用户规模比较小的时候,使用简单的:一台应用服务器+一台数据库服务器+一台文件服务器,这样的话完全可以解决一部分问题,也可以通过堆硬件的方式来提高网站应用的访 ...

  4. 大数据时代的海量数据存储、和高并发解决方案总结

    一.结构化数据的存储 随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题.对于一个大型的互联网应用,每天几十亿的PV无疑对数据库造成了相当高的负载.对于系统的稳定性和扩展性造成了极 ...

  5. 数据拆分缺点和解决方案

    MySQL垂直拆分和水平拆分的优缺点和共同点总结 数据的拆分(Sharding)根据其拆分分规则的类型,可以分为两种拆分模式.一种是按照不同的表(或者Schema)来切分到不同的数据库(主机)之上,这 ...

  6. 海量数据搜索算法优化-存储/查询/排序算法

    海量数据库的应用,如国家的人口管理系统,户籍档案管理系统,在这样的海量数据库应用中,数据库的存储设计和结构优化(如索引优化).数据库的查询优化及分页算法尤为重要! 随着互联网的日益普及,海量信息的增长 ...

  7. 大数据和高并发解决方案

    一.网站应用背景 开发一个网站的应用程序,当用户规模比较小的时候,使用简单的:一台应用服务器+一台数据库服务器+一台文件服务器,这样的话完全可以解决一部分问题,也可以通过堆硬件的方式来提高网站应用的访 ...

  8. 联想凌拓教育行业解决方案

    联想凌拓教育行业解决方案 教育部等六部门<关于推进教育新型基础设施建设构建高质量教育支撑体系的指导意见>,指出:信息网络.平台体系.数字资源.智慧校园.创新应用.可信安全的新型基础设施为六 ...

  9. TensorFlow:实战Google深度学习框架(六)图像数据处理

    第七章 图像数据处理 7.1 TFRecord输入数据格式 TensorFlow提供了一种统一的格式来存储数据--TFRecord格式 7.1.1 TFRecord格式介绍 7.1.2 TFRecor ...

最新文章

  1. 深度学习很难?一文读懂深度学习!
  2. Exchange 2007 内存使用问题
  3. python爬虫详细步骤-Python爬虫入门,详细讲解爬虫过程
  4. extmail集群的邮件负载均衡方案 [lvs dns postfix]
  5. PHP下的浮点运算不准的解决办法
  6. centos6创建用户,设置ssh登录
  7. 【Linux系统编程】进程概述和进程号
  8. access找不到输入表或者dual_在Access窗体中显示指定路径的图片
  9. RuntimeError: [enforce fail at inline_container.cc:145] . PytorchStreamReader failed reading zip arc
  10. Android接口一般定义格式,Android开发规范
  11. 程序员的算法课(5)-动态规划算法
  12. 曾经辉煌无限,如今员工持续大量流失,集团目前仅剩10余人
  13. myeclipse 2017 CI 中如何修改Servlet模板
  14. 线程java作用_java线程介绍(原创)
  15. copyWebpackPlugin的使用及常见问题(glob及Path ............... is not in cwd)
  16. Grasshopper and Rhino: Python Scripting Grasshopper和Rhino:Python脚本 Lynda课程中文字幕
  17. matlab进行动力吸振器设计,动力吸振器详解.doc
  18. 理科生学酒店管理好一点还是计算机,酒店管理专业是文科还是理科
  19. 设置图片格式为php,php实现图片格式转换
  20. 【12.9~12.13周报】风雨十年成长之路

热门文章

  1. windos命令行设置网络
  2. java 创建string对象机制 字符串缓冲池 字符串拼接机制 字符串中intern()方法...
  3. NET快速信息化系统开发框架 V3.2 - “用户管理”主界面使用多表头展示、增加打印功能...
  4. 转:JAVA线程池ThreadPoolExecutor与阻塞队列BlockingQueue
  5. [JSOI 2011]分特产
  6. HTML-通知公告Tips
  7. 开源PCRF、PCRF体验与PCRF实现
  8. 深入浅出学习Struts框架(九):分析Struts框架实例4
  9. 树(1)------实现和遍历
  10. BZOJ1911:[Apio2010]特别行动队——题解