dataworks如何基于基线进行运维管理,保证数据及时性
文章摘要
qwen-turbo
此内容根据文章生成,并经过人工审核,仅用于文章内容的解释与总结
背景
随着公司数仓的建设,数仓所产出的数据越来越多,也越来越重要,如何在任务上线后,持续的对任务进行监控,达到异常预警和延迟提前预警,是我们要考虑的。经过综合考虑,结合阿里云dataworks的基线管理功能, 来完善这一体系。
那基线是什么呢?(简单说明一下,具体可以查看文档)
直白来讲,是阿里云提供的一个对于任务进行监控管理的运维工具,用户通过将重要任务加到基线上并设置承诺时间后,系统将根据任务运行情况计算基线任务的预计完成时间。当系统判断基线任务可能无法在承诺时间前完成,系统将发出告警。
应用场景又有那些呢?
- 管理任务优先级
在任务数量越来越多,而资源有限的情况下,当发生资源抢占时,您可以将重要任务添加至基线上,并为基线设置较高的优先级,以保证重要的任务可以优先分配到资源。 - 计算任务预计完成时间
任务的运行受到资源和上游任务运行情况的影响,您可以将任务添加至基线上,DataWorks将计算出该任务每天或每小时的预计完成时间,便于您查看任务的预计完成时间。 - 保障任务在承诺时间前运行完成
您可以将任务添加至基线上,并设置基线承诺时间,当系统预测到基线上任务无法在承诺时间前完成,或上游任务有出错或变慢的情况,将发送报警信息,您可以根据报警信息及时处理问题,保障任务在承诺时间前运行完
我们怎么用和解决什么问题?
基于此,我们希望在运维告警方向,解决遇到的一些问题:
- 对不同任务级级别,采取不同的运维策略,比如优先级高的任务高优队级、告警方式、核心任务单独管控等。
- 提前预警,例如在晚上1点,可以预测早上8点任务的完成情况,并给出预警提示
- 作为okr的核量指标,延迟告警5次,异常告警五次等
基于以上的一些问题,基于阿里云datawork运维中心的基线进行方案建设,通过不同基线对任务级别进行划分,从而针对不同基线任务采取不同的策略,下面就任务运维中心一些比较核心的点进行讲解。
基线划分的原则
基线划分原则主要是作为指导那些任务要划分,怎么划分的一些参考,从任务配置的必要性、重要性、需提前预警几个方面考虑的,目前基线划分的原则如下:
- 基线上的任务主要针对天调度任务,小时级别只管控核心
- 产出任务必须配置告警,针对产出任务的基线对应taqu_main_high_baseline`、taqu_main_low_baseline,两者区别主要在告警方式、优先级、产出时间,重要的任务配置在taqu_main_high_baseline
- 针对模型层的基线任务告警,暂不做要求,后期陆续完善
具体基线的设置
基于基线配置的两个参数,承诺时间和预警余量,可以产出基线预警时间(基线预警时间= 承诺时间 - 预警余量),如果实际完成时间晚于基线预警时间,则会触发报警。例如,设置承诺时间为3:30,预警余量为10分钟,如果系统预测任务无法在3:20分完成,则会触发基线报警。
现在有哪些基线,分别是什么情况,应该涵盖那些内容?
基线名称 | 描述 | 基线类型 | 优先级(值越大优先级越高,影响配置任务及上游依赖任务) | 承诺产出时间 | 延迟告警时间 | 告警方式 | 备注 |
---|---|---|---|---|---|---|---|
tq_main_high_day_baseline | 重要产出任务基线,主要针对核心的报表产出,比如约定时间必须产出,用户活跃、核心报表、商业化等等,以及其他需求方描述的较为重要的部分 | 天级别 | 8 | 每天 06:00 | 每天 05:30 | 短信、邮件、钉钉、电话 | |
tq_main_low_day_baseline | 一般产出任务基线,所有产出任务的默认基线,未加入taqu_main_high_baseline的部分 | 天级别 | 1 | 每天 07:30 | 每天 07:00 | 短信、邮件、钉钉 | |
tq_main_high_hour_baseline | 重要产出任务基线,主要针对小时级别任务 | 小时级别 | 3 | 每小时的20分 | 短信、邮件、钉钉 | ||
tq_main_dataworks_default_baseline | 默认基线,不重要的任务可以挂在默认基线上 | 天级别 | 1 | 短信、钉钉,只发出异常告警 |
基线使用实践(如何配置和使用dataworks的基线)
单个任务添加基线
批量添加基线
本文是原创文章,采用CC BY-NC-SA 4.0协议,完整转载请注明来自白贺BAIHE - 分享大数据知识及生活感悟
评论 ()