HiveSQL实战积累_HiveSQL通过横向拆分10份缓解数据倾斜实战
数据量较大的场景下,通过skuId等整数类型字段将全量数据横向拆分为多个任务执行相同的脚本,这样做主要有两个好处:
1.提高并行度,争取更多资源,减小倾斜概率;
2.提高任务失败容错,当任务由于倾斜过于严重或者节点异常原因失败时,只需要重跑一个任务,不必重跑全量数据。
不过注意这种优化操作执行过程中使用的到临时表、临时文件夹一定要做到有始有终,开始时创建,结束时删除,不然由于疏忽导致的日积月累的资源浪费会非常巨大。
拆分计算脚本
1 | #!/usr/bin/env python3 |
临时表合并
1 | #!/usr/bin/env python3 |