查看原文
其他

数仓面试还不懂什么是基线管理?

涤生- amber 涤生大数据
2024-12-05

作为数据开发人员,我们日常工作的一部分就是夜间值班。”夜间值班“对于没有实际工作经验的同学来说可能比较陌生。今天amber我就以阿里为例,跟小伙伴们聊聊这个问题。

所谓夜间值班,主要是为了保证数据可以在我们的对外承诺时间前产出。而由于日常生产任务依赖关系异常复杂,上游任务的任何延迟、失败都会影响到我们的数据能否在预期时间内产出,因此就有了基线监控。智能基线可以及时捕捉到任何影响基线任务按时产出的事件,并提前进行预警,保障复杂场景下重要数据也可以在预期时间内顺利产出。 

阿里在国内被称为互联网技术的半壁江山是有道理的,包括大数据数仓建设这块国内一线大厂几乎都是参考阿里构建的。校招同学面试的时候,尤其面大厂,尤其面我们阿里经常会被问一个问题,什么是基线,基线管理等。

一、什么是基线

“基线可以形象的理解为在高速公路上的应急车道。用户将重要的任务添加到基线上后,相对于普通的任务,在基线上的任务具备更高的运行优先级,并且可以预先设置保障产出时间,系统将根据任务运行情况计算基线任务的预计完成时间。当系统判断基线任务可能无法在承诺时间前完成,系统将发出告警。” 

二、基线告警规则

首先了解几个概念:

承诺时间:任务运行成功的最晚时间点。

预警时间:即承诺时间-预警余量。

基线任务:被添加到基线上的任务。

基线实例:系统使用基线实例计算任务每次运行的预计完成时间。基线实例的状态包括:安全、预警、破线。

  • 安全:预计完成时间<预警时间。

  • 预警:预警时间<预计完成时间<承诺时间。

  • 破线:预计完成时间>承诺时间。

关键路径:影响基线任务的多条路径中,运行耗时最长的路径。

事件:基线任务及其上游任务出错,或关键路径上的任务变慢时,会产生事件。事件会影响基线任务的按时完成。

以阿里巴巴dataworks为例。将重要任务添加到基线上后,DataWorks将根据基线的优先级保障基线任务的资源,并根据基线任务的上下游依赖关系确定监控范围,根据该监控范围内任务的运行情况触发基线报警或事件报警。

如图所示,任务G添加为基线保障对象,若上游任务E出错,则首先给E任务owner告警,只有当E任务所在链路成为当前基线最长路径,且预测的执行完成时间比预警时间晚时,才会给基线值班同学告警。而如果E任务及时被修复,那么就不会给基线值班人员告警。

三、基线告警如何处理

首先有一个大前提,如果有基线告警,我们首先要进行的是问题的解决,及时解决问题,不影响基线的正常产出,当前问题解决之后再去看后续的一些保障措施。关于基线告警的处理,这里可以简单分为几种类型:

上游任务引起:如果是上游任务引起的告警,那么需要联系上游任务Owner进行解决,如果对方不是数据开发同学,可能需要我们协助他进行问题的排查与处理。

个人任务引起:如果是我们自己的任务引起的告警,我们就需要查看具体引起告警任务的日志,排查定位解决问题。如果是任务执行变慢,可以优先进行参数优化,在线上执行一个相同的任务,让两个任务赛跑。这里一定要避免直接杀掉线上正在执行的任务。

夜间任何问题的处理,都需要在白天持续跟进,确保问题及时解决,避免第二天再次引起报警。

涤生大数据往期精彩推荐

1.企业数仓DQC数据质量管理实践篇

2.企业数据治理实战总结--数仓面试必备

3.OneData理论案例实战—企业级数仓业务过程

4.中大厂数仓模型规范与度量指标有哪些?

5.手把手教你搭建用户画像系统(入门篇上)

6.手把手教你搭建用户画像系统(入门篇下)

7.SQL优化之诊断篇:快速定位生产性能问题实践

8.SQL之优化篇:一文搞懂如何优化线上任务性能,增效降本!

9.新能源趋势下一个简单的数仓项目,助力理解数仓模型

10.基于FlinkSQL +Hbase在O2O场景营销域实时数仓的实践

11.开发实战角度:distinct实现原理及具体优化总结

12.涤生大数据实战:基于Flink+ODPS历史累计计算项目分析与优化(一)

13.涤生大数据实战:基于Flink+ODPS历史累计计算项目分析与优化(二)

14.5分钟了解实时车联网,车联网(IoV)OLAP 解决方案是怎样的?

15.企业级Apache Kafka集群策略:Kakfa最佳实践总结

16.玩转Spark小文件合并与文件读写提交机制

17.一文详解Spark内存模型原理,面试轻松搞定

18.大厂8年老司机漫谈数仓架构

19.一文带你深入吃透Spark的窗口函数

20.大数据实战:基于Flink+ODPS进行最近N天实时标签构建



个人观点,仅供参考
继续滑动看下一个
涤生大数据
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存