什么是数据中台?
数据中台就是利用大数据技术对海量数据进行采集,计算,加工,存储并形成统一的标准和口径。
数据中台有什么用?
在业务快速发展的今天,利用数据中台技术可以快速组合式创新业务。
数据中台怎么用?
像阿里已经成型的产品dataworks,我们的离线开发平台,都包含了:1.数据开发 2.任务调度 3.数据质量 4.数据地图 5.数据生命周期
数据是数据中台的基础,调度是数据中台的灵魂!
怎样让数据中台快速可靠的运行变得尤为重要!那么从哪些部分做出针对性优化以提高数据中台的性能呢?本篇文章就我们的离线开发平台来讲述任务执行链路中的各个优化点!
任务执行链路:
任务调度发送到执行引擎-->执行引擎将任务发送到大数据集群-->数据质量任务发送到执行引擎-->执行引擎将数据质量任务发送到大数据集群-->实例任务和数据质量任务完成后插跑批控制表
首先说一下任务调度,目前调度采用多线程轮询机制,这种方案简单,代码易开发,但是调度会有空档期,会产生大量日志,且对数据库的压力比较大,时间复杂度为O(n),如果任务链路特别长,极端情况下,最下游任务任务空档时间为:单轮轮训时长*链路层数,针对这些痛点,触发机制可以有效的解决这些问题,但是,采用触发机制,难点在于需要我们对任务的所有触发条件的场景都充分考虑在内,且代码量会相应的增加,比如起批时间条件,可以采用redis的延迟队列机制触发,表级依赖,任务依赖可以采用kafka消息队列机制,消费端可以多节点,多线程消费,充分利用服务器资源,触发机制几乎就是实时的,时间复杂度为O(1),完美的解决这些痛点。
在一个就是大数据集群的算力,目前采用的Guass冷热温集群,算力方面还是可以的
最后就是插跑批控制表,目前采用quarz定时任务,这种方案还是有时间空档期,可以采用kafka消息队列机制解决。
把这些点优化之后,做一个关于时间在各个阶段等待时间的报表,针对报表结果再做相应的优化。
目前这些就是关于离线开发平台的一些优化思路。