系统介绍
整个系统可以从功能上分为3块:
- 业务系统:在上游有很多的业务系统,业务系统的运行产生很多的数据,这些数据分散在很多的数据库中,大部分是MySQL数据库
- 数据智能平台:数据智能平台属于中台系统,主要为业务系统提供强大的数据支撑服务,下层连接数仓。
- 数据仓库: 数据仓库统一集中的管理所有的数据,数仓会将业务系统产生的数据按天进行加工、抽取、转换到数据仓库存储。
当一天结束后,各个业务系统产生了大量的数据,这些数据由定时任务进行加工、抽取到数据仓库存储,当半夜你还在睡觉的时候,这些定时任务就在默默的运行着。
而每天加工的数据通常要求在上班工作时间之前加工完成,然后通过数据智能平台的查询系统供业务系统查询调用,这一次数据没有查询到是因为在第二天早上10点,数据还没有加工完成。下面就是找问题优化了,因为正常来讲,即使定时任务链再长,也不会慢到第二天10点钟数据还没有出来。下面就是找问题,然后进行优化了。
任务优化
通过任务日志发现有一个上游系统的数据抽取执行时间有3个小时,而数据量仅100万。当然,光凭这样还无法确定这个任务是否是可以被优化的。
查看任务代码,逻辑还比较简单:有一张原始数据表,记录商品信息以及定义的分类(这一点是虚构的,实际情况要复杂一些,我这里精简然后转换了一下,便于理解),而数仓的目标表是