中关村商情网

搜索
中关村商情网 首页 IT业界 云计算 查看内容

2万字揭秘阿里巴巴数据治理平台DataWorks建设实践

2023-2-20 11:24| 发布者: admin| 查看: 9288| 评论: 0

摘要: 简介:阿里巴巴一直将数据作为自己的核心资产与能力之一,从最早的淘宝、天猫等电商业务,到后续的优酷、高德、菜鸟等板块,DataWorks、MaxCompute、Hologres等产品用一套技术体系来支持不同业务的发展与创新,为企 ...


针对存量的历史模型,通过DataWorks逆向建模的能力,对存量模型进行了全面分析和盘点,下线了若干历史、低价值的模型,并完成存量模型100%的线上化管理。



以数据中台方法论为指导,DataWorks智能数据建模形成了数仓规划、数据标准、数据建模、数据指标四大产品模块,成为各部门统一使用的数据建模平台,累计形成数据模型表超过1万张,有效提升阿里巴巴集团整体数据的规范性。



▌小结

数据生产规范性是很多问题的源头,建议要最先考虑起来,往往能起到事半功倍的效果。数据模型是企业特别重要的数据知识,建模平台需要通过平台化的工具来做,而不是原先线下Excel之类的方式,一时方便,长期成本反而很高。这样不仅能提高对内交流、应用的效率,还能防止由于员工的变更,造成企业数据知识的流失。

二、数据生产稳定性治理

数据生产的稳定性是企业在建设大数据平台时会遇到的第一个问题,对于数仓同学来说,值班是工作的一部分,值班同学的一晚大概是这样的:

  • 凌晨1:30,收到电话告警,机器人自动播报“XX任务已延迟XX分钟,请尽快处理!”
  • 凌晨1:31,起床打开电脑,处理告警问题,1:40、1:50、2:00,电话告警不断轰炸,手机不断震动,前往客厅办公
  • 凌晨2:00,对于上下游任务逻辑不太清楚,拉起一批同学起夜
  • 凌晨3:00,老板被Call醒,打来电话询问情况,沟通后续处理方案
  • 凌晨5:00,所有任务处理完成,等待集群资源计算数据
  • 上午7:00,睡眼朦胧,起床前往公司上班
  • 上午9:00,刚出电梯口,被业务小二围住追问数据产出时间,并开启一天的工作

可以说,天下数仓同学苦值班久矣!在阿里巴巴内部,当我们在做数据稳定性治理的时候,往往会围绕两个核心指标进行优化,分别是起夜率与基线破线率。

  • 起夜率

指在日常工作中,数仓值班同学需要起来处理问题的天数占比全年天数,如果一个晚上无事发生,数仓同学不需要起夜,我们也引用了游戏中的一个概念,称为平安夜,起夜率相对越低越好。

  • 基线破线率

基线是DataWorks独创的理念,在基线上我们可以为任务设置最晚产出时间。例如当天营收数据,最晚产生时间设置为凌晨2:00,如果这个任务最终产出超过2:00,那么这条基线就破线了,基线破线率同样也是越低越好。

在治理实践中,通常是以下流程:

1. 基线配置

梳理团队核心数据产出任务与链路,确定基线任务分级,将不同的任务配置1/3/5/7不同的基线等级,同时配置基线产出时间与告警余量。告警余量是一个非常重要的概念,类似抢救时间。例如刚才我们提到的任务产出时间设置为凌晨2:00,如果告警余量设置成1小时,基线会预测任务产出时间,如果时间超过凌晨1:00便会进行告警,方便我们提前知晓核心任务的产出风险。

2. 基线治理

基于基线功能以及一些元数据,数仓团队针对基线告警进行治理,包括告警的认领、评估、处理等,同时会针对基线告警进行根因分析,看下是由于什么原因导致的数据稳定性问题,常见的有据质量报错、SQL语法报错、系统环境报错、权限报错、同步任务报错等,进行生产稳定性的根治治理

3. 稳定性评估

最终,团队产出稳定性周报,每周报告基线破线率及平安夜数,在值班手册中,也会形成常见问题排查宝典,治理问题清单,将稳定性治理的经验沉淀成团队共同的知识资产,并且进行责任公示,设计奖惩制度、达到稳定性治理正向循环。



智能基线可以说是DataWorks中守护数据安全生产的核心功能,里面结合了DataWorks多项运维诊断和MaxCompute引擎能力。

1. 智能分级调度与资源分配

当1个任务被设置1/3/5/7不同的基线等级后,整个平台运行的时候会按照优先级为核心数据产出进行重要性分级,高优先级任务及其上游,将获得更多的任务调度与MaxCompute的计算资源,以保障高优先级任务的运行资源。DataWorks也将其中涉及众多调度与资源分配的核心技术申请了国家专利。

2. 智能预测与告警

1个核心任务可能会前置依赖多个任务,当我们在最终产出的任务节点配置基线后,前置的依赖任务就不需要再逐个配置运维告警了,将会极大提升运维效率。任务开始运行时,DataWorks会回溯依赖链路上所有任务的历史运行记录,同时结合平台当前运行及集群资源情况,每30秒刷新智能预测数据产出时间。例如设置核心任务期望产出时间基线在2:00,在核心链路中间,有个平时20:00产出的任务20:30仍未产生,结合当前集群水位情况,判断将会导致希望在2:00产出的最终核心任务延时,那么数仓同学将会在20:30就收到告警,提前干预处理延迟任务,而不是等到最终2:00任务已经延时了,才开始处理。

3. 全链路智能诊断与排障

提前收到告警后,运维同学也会在DataWorks的运维中心处理告警任务, 在DAG图上查看上下游及每个周期实例的运行情况,通过运行诊断排查全链路上的告警问题,例如上游依赖告警、当前任务定时检查,调度资源检查、MaxCompute资源检查等等,可以快速定位并排障。



智能基线的配置及故障处理参考下方,针对任务责任人和值班人不同的情况,DataWorks还设置了值班表的功能,可以将不同责任人的告警消息统一推送给当前值班表对应人员。



以内部某个数仓团队为例,在稳定性治理之前,团队每周需要2.5人日进行值班,其中每年损失的不仅仅是135天的值班人日,凌晨起夜的同学135天日间的工作效率也会收到极大的影响,严重丧失工作的幸福感。稳定性治理之后,团队7级基线的破线率从每月的4次降低到了0次,值班同学起夜率从97%降低到了33%,同时极大地提升了员工的工作幸福感,这也是稳定性治理的重要意义。



▌小结

数据生产稳定性核心会用起夜率和基线破线率来衡量,通过围绕智能基线构建的全链路运维诊断能力来支持稳定性建设。智能基线可以基于集群当前水位,历史运行情况,智能分配计算与调度资源,让核心数据优先产出,并提供智能告警的能力方便提前干预处理。另外,稳定性的治理对于员工的工作幸福感也是非常大的提升。

三、数据生产质量治理

在我们针对数据生产稳定性进行保障过程后,往往同步会关注到的,就是数据生产的质量问题治理。数据质量的好坏,往往对业务侧所要执行的决策和流程有着直接关联,各种场景不但需要能“成功获取数据”,还需要能“成功获取正确的数据”,这样才能实现业务侧的成功。

以阿里集团最常见的电商包裹场景举例,我们能看到,当一件包裹上出现了数据质量问题后,能引发不同维度上的业务问题。

通常在实际生活中,我们针对包裹会有重点关注的基础数值属性,比如包裹的重量、体积,因为会和包裹的价格、包裹的运输安排都有关系。当出现这些属性不符合预期的情况时,就会出现针对这件包裹的各种业务问题的追查。

例如,当重量值为空值时,或者等于0的时候,按数据规则反应现实过程,则是出现了没有重量的空包裹,这是不符合对物流和计价的业务要求的。而当重量、体积值超过了正常定义的阈值时,例如1个小包重量很大,按实际情况也是不合理的情况。

所以,当出现这种数据质量问题时,我们就会关注,到底是业务上出现了真实问题,还是实际数据加工过程出现了污染。如果真实业务没问题,而是数据出现了问题,则会影响到后续针对包裹的结费计算、运输网络的规划、供应链优化等等。平台与消费者、平台与商家、平台与供应商之间的交互,都会被数据质量问题所影响。



而这些数据质量问题,如果没有治理管控,则会在数据生产过程非常普遍地出现,如数据残缺不全、数据不一致、数据重复等等,导致数据不能有效地被利用,影响数据可靠性保障和有效的业务产出。所以数据质量管理,需要如同产品质量管理一样,贯穿于数据生命周期的各个阶段。当生产环境中产生了与现有规则不符的持久化数据,或数据延迟的问题,则定义为「数据质量问题」。其中引发故障的,则定义为「数据质量故障」。而数据生产质量治理的过程,也就是我们为了避免「数据质量问题」所要建设的重要体系。

我们从业务出发,从对业务侧最核心关键的业务实体,进行数据质量需求的梳理,来明确数据质量问题。如针对电商交易,最关心的就是商品、用户、计费、营收方面数据的质量情况。那什么是影响这些业务实体生产稳定性的关键质量要求呢?在阿里巴巴内部,面向这类商业产品的数据服务支撑流程中,重点会关注以下两大方面:

(1)面向商业级服务的数据质量高保障要求:由于在阿里巴巴中台里,数据大量以服务的形态,提供给各个商业化的业务应用,因此,这意味着不只是数据本身产出的保障,也直接影响着最终业务侧承诺质量的保障。

比如,由于更多客户业务根据数据进行决策,数据高准确性要求也因此出现,对数据准确性的不再只是满足一定的数据分布即可,需要结合更多的业务知识对数据准确性进行更准确地评估。再如,由于部分TOB业务对数据产出的时效性有一定要求,单一架构的数据库可能不能完全满足业务的产出速度需要,需要异构数据库合作进行数据链路建设,因此如何保证异构数据的一致性也是需要解决的问题。

(2)对数据质量协作保证过程的高效率要求:多角色流水线作业下,如果要保证数据质量,除了需要制定数据质量规范外,还需要在各环节完成对应事宜,比如研发环节、测试环节、监控环节都有面向各环节要完成工作的人员,分别需要到各模块各自操作,往往还会出现重复性工作,比如质量测试的用例,和质量监控的设置逻辑,通常是类似的,需要能有平台工具,帮助多角色用户,针对数据链路中所产出的所有线上数据质量问题,进行汇总,分析;能帮助质量小组,把纸面要求、规章制度中定义的数据问题,能定期复盘,转化为数据度量落在系统中;能反推研发各阶段,共同高效地提升数据质量。



在这些关注点的牵引上,阿里巴巴数据质量的全流程体系,相应地在如下领域完成重点增强。



鲜花

握手

雷人

路过

鸡蛋

最新评论

关闭

站长推荐上一条 /1 下一条

返回顶部