从MySQL抽取Hive表XXX ,MySQL中有128张分表
原抽数逻辑SQL为
SELECT
CONCAT(good_sn, “#”, wh_code) AS goodsId,
MAX(ship_price/exchange_rate) AS shipPrice,
MAX(ship_fee/exchange_rate) AS shipFee,
price_type AS shipType
pipeline_code
FROM
goods_price_factor_s_${order}
WHERE site_code=‘GB’
AND is_latest = 1
AND (price_type = 1 OR price_type = 4)
GROUP BY good_sn,wh_code,price_type,pipeline_code
这样GROUP BY+MAX操作就会在MySQL端进行
2019-01-06抽数结果值有347691263条
抽数任务执行了3.7H

将SQL修改为只根据where条件过滤并抽取所需要的字段
将需要的数据通过JDBC直接拉取过来后再进行逻辑操作
但需要注意的是,合并成大表时不能做GROUP BY 操作,否则会产生shuffle切割stage,导致每一张单表会串行执行,且每张MySQL的单表会生成一个stage
该表有128张分表,即会产生128个小的stage,产生大量IO,且在合并时会生成一个25600个task的stage(128个task*默认200并行度)
这个stage如果不做重分区处理还会写出25600个小文件会对服务器造成很大压力


修改:
① 抽数不做逻辑处理

② 将抽取过来的数据先注册成临时表

③ 处理逻辑,写入hive

修改后抽数任务从3.7H缩短为7min:

Spark抽取MySQL分表优化相关推荐

  1. 总结下Mysql分表分库的策略及应用

    上月前面试某公司,对于mysql分表的思路,当时简要的说了下hash算法分表,以及discuz分表的思路, 但是对于新增数据自增id存放的设计思想回答的不是很好(笔试+面试整个过程算是OK过了,因与个 ...

  2. 编写Scala代码,使用Spark讲Mysql数据表中的数据抽取到Hive的ODS层

    编写Scala代码,使用Spark讲Mysql数据表中的数据抽取到Hive的ODS层 抽取MySQL的metast库中Production表的全量数据进入Hive的ods库中表production,字 ...

  3. mysql分表规则(转)

    author:skate time:2013/05/14 Mysql分表准则 在大量使用mysql时,数据量大.高访问时,为了提高性能需要分表处理,简介下mysql分表的标准,后续会继续补充 环境: ...

  4. mysql分表那些事儿

    从前不太喜欢发博客,觉得太繁杂,感觉平时的工作开发就已经够忙的了,所以很多时候心里想写,但是行动不允许.最近因为工作也还轻松,因此有时间来整理一下自己之前用到过的和了解的一些东西.今天来说说mysql ...

  5. 史上最全MySQL 大表优化方案(长文)

    转载自  史上最全MySQL 大表优化方案(长文) 当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化: 一.单表优化 除非单表数据未来会一直不断上涨,否则不要一开始就考虑 ...

  6. mysql —— 分表分区

    面对当今大数据存储,设想当mysql中一个表的总记录超过1000W,会出现性能的大幅度下降吗? 答案是肯定的,一个表的总记录超过1000W,在操作系统层面检索也是效率非常低的 解决方案: 目前针对海量 ...

  7. mysql分表准则_Mysql分表准则_MySQL

    bitsCN.com Mysql分表准则 Mysql分表准则 在大量使用mysql时,数据量大.高访问时,为了提高性能需要分表处理,简介下mysql分表的标准,后续会继续补充 环境: 业务类型:OLT ...

  8. mysql分表的原则_mysql分表规则(转)

    author:skate time:2013/05/14 Mysql分表准则 在大量使用mysql时,数据量大.高访问时,为了提高性能需要分表处理,简介下mysql分表的标准,后续会继续补充 环境: ...

  9. MySQL分表后,如何做分页查询?

    MySQL分表方式分为垂直分表和水平分表,这两种分表形式都比较简单,简单理解垂直分表指的是:表的记录并不多,但是字段却很长,表占用空间很大,检索表的时候需要执行大量的IO,严重降低了性能.这时需要把大 ...

最新文章

  1. 北大数院校友最新成果登数学四大顶刊,偏微分方程突破,可用于W-GAN,现已回国任教中科大...
  2. uitableView 选择跳过后, 跳回 颜色变化 问题
  3. Java程序员总结分布式架构,你又了解多少呢?
  4. Outlook通过RPC或RPC over HTTPS访问Exchane邮箱:Exchange2003系列之四
  5. 一个BADI中实施多个Implementation
  6. 用Android访问本地站点---(localhost,10.0.2.2)要区别
  7. ROC与AUC的定义与使用详解
  8. Eclipse设置断点进行调试
  9. python归一化改变图像大小_基于Python+PIL-Speed问题的图像强度归一化
  10. asp空间和php空间_免费ASP空间与免费PHP空间
  11. NIKKEI Programming Contest 2019 翻车记
  12. 如何搭建百度网盘目录搜索网站
  13. C语言 从入门到放弃
  14. 手动删除win10恢复分区
  15. 怎样在服务器找回网站后台密码,宝塔面板忘记后台账号密码怎么找回 一条命令轻松搞定...
  16. PhpStorm更换主题
  17. linux openpty函数,pseudo-terminal 基础一
  18. qiime2 学习 测序公司返回合并后的数据后续处理
  19. Java实现图片水印文字换行、平铺、旋转效果
  20. [转贴] Crystal和Oscillator的区别

热门文章

  1. BGA焊接工艺及可靠性分析
  2. FFmpeg进行音频的解码和播放
  3. D3DXCreateTextureFromFileEx创建纹理的悲催
  4. 网易2018校招内推笔试-彩色砖块
  5. Visual Studio 2010各个版本比较
  6. java桌面端开发为什么没就行起来,大部分人选qt,winform,electron?
  7. 模拟cmos集成电路(9)
  8. 记一次 k8s 集群单点故障引发的血案
  9. Redis学习(二)之 Redis Cluster集群
  10. 罗彻斯特大学计算机科学系专业排名,2019上海软科世界一流学科排名计算机科学与工程专业排名罗切斯特大学排名第201-300...