更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群
背景
某企业实时数仓团队通过数据收集、整合、计算和存储构建实时数据仓库,为企业提供快速、准确、可靠的实时数据分析和决策支持。目前该实时数仓团队已运行了上万的实时任务,依赖的组件繁多(例如:Flink、Yarn、Abase、Doris等)、开发人员众多 、开发习惯和经验程度参差不齐等各类主客观因素,导致任务稳定性、资源浪费等问题频出。因此,任务治理已是势在必行,但纵观整个治理过程,仍存在以下矛盾:
1. 业务阶段与数据治理的矛盾
业务阶段大致可以分为两个阶段:发展期,成熟期。发展期: 产品不断迭代,需求不断新增,实时任务持续增加。在此时期同时也是与业务建立信任的阶段,实时任务的质量会被重点关注,成本控制的优先级小于质量保障。成熟期: 资源预算增量越来越少,业务需求数量不降反升,在此成熟阶段实时团队不仅要做好数仓质量保障,也需关注资源成本的合理分配和利用。
2. 人力成本与数据治理的矛盾
实时任务的治理成本由于其技术复杂性和在线运行等属性导致治理要求一直较高,人力经常在数据治理和业务需求之间徘徊。由于实时任务治理必将占用业务支持精力,如何提高治理人效,降低治理成本,释放个人精力,也是大家特别关注的点。
3. 治理问题与可评价的矛盾
通常实时任务可以通过一定的规则筛选出存在问题的任务,并进行集中的运动式治理。这种方式虽然可以一定程度解决阶段性治理问题,但是无法量化任务的健康程度以及待治理的紧迫程度,使得治理无法持续开展。因此,需要有一个可评价的体系对数仓健康程度进行评价,并通过评价后的分数持续推动治理。
走进DataLeap实时健康分
DataLeap实时健康分是一套集治理评价、目标制定、治理驱动、治理提效、效果量化于一身的一站式实时数据治理解决方案,满足精准治理的诉求,降低治理成本,保障数据整体规范性、稳定性,逐步成为公司内评价团队实时数据治理水平和资源分配的风向标,让治理成为一件简单高效的事。
实时健康分方案大致可以分为四个模块:元数仓建设、治理项沉淀、分数计算、平台治理。
1. 元数仓建设
健康分元数仓指的是任务相关的元数据信息,它是健康分加工过程中依赖的底层数据,包括任务的稳定性、质量、规范性、成本以及SLA等。
元数据类型 | 描述 |
---|---|
稳定性元数据 | gc、failover、cp、state、反压、倾斜等 |
质量元数据 | 时效性、准确性、指标监控覆盖度等 |
规范性元数据 | 任务配置、组件配置、报警配置等 |
成本元数据 | 队列资源、计算资源、存储资源等 |
SLA 元数据 | 组件SLA、数据SLA、任务SLA 等 |
2. 治理项沉淀
治理项规则是Flink团队通过引擎视角和各个BP实时数仓团队通过业务视角积累沉淀出的一套通用规则,通过这套通用规则可达成快速复用的作用,可以快速发现实时任务中存在的成本浪费和质量隐患问题。现阶段,越来越多的团队加入实时治理,贡献更多的治理经验,总结出更通用的规则,吸引更多的团队,从而形成正向循环。目前质量项规则14项,成本项规则2项。
3. 分数计算
名词解释:
- 治理项权重: 根据治理项规则的重要性,治理项权重不同,例如:“CPU资源浪费”=40;“队列配置不规范”=15;
- 任务等级系数:每个任务等级会有不同系数,等级越高,系数越高,对分数的影响越大,例如:D1/D2=10;D3=5;D4=3;D5=1
目前实时健康分涵盖质量分和成本分两套评价体系,其结果等于质量分与成本分的均值。每套评价体系采用扣分制算法,计分逻辑简单、可解释性强,能够实现细到任务、个人粒度,粗到部门、公司粒度的分数计算结果。
- 质量分计算
口径: ∑ ( 命中治理项的任务等级系数 ) ∑ ( 全部任务的任务等级系数 ) ∗ 治理项权重 \frac {\sum(命中治理项的任务等级系数)}{\sum(全部任务的任务等级系数)} *治理项权重 ∑(全部任务的任务等级系数)∑(命中治理项的任务等级系数)∗治理项权重
例如:
- 一共有1000个任务, ∑ ( 全部任务的等级系数 ) = 2500 \sum(全部任务的等级系数)=2500 ∑(全部任务的等级系数)=2500
- 其中有100个任务命中了任务未配置报警, ∑ ( 命中治理项的任务等级系数 ) = 500 \sum(命中治理项的任务等级系数)=500 ∑(命中治理项的任务等级系数)=500
- 未配置报警治理项(治理项权重:15)扣分为500 / 2500 * 15 = 3分
- 质量分=100-3=97分
- 成本分计算
口径: ∑ ( 命中治理项的任务 C P U 分配数 ) ∑ ( 全部任务的任务 C P U 分配数 ) ∗ 治理项权重 \frac {\sum(命中治理项的任务CPU分配数)}{\sum(全部任务的任务CPU分配数)} *治理项权重 ∑(全部任务的任务CPU分配数)∑(命中治理项的任务CPU分配数)∗治理项权重
例如
- 一共有1000个任务, ∑ ( 全部任务的任务 C P U 分配数 ) = 25000 \sum(全部任务的任务CPU分配数)=25000 ∑(全部任务的任务CPU分配数)=25000
- 其中有100个任务命中了CPU资源浪费, ∑ ( 命中治理项的任务 C P U 分配数 ) = 10000 \sum(命中治理项的任务CPU分配数)=10000 ∑(命中治理项的任务CPU分配数)=10000
- CPU资源浪费治理项(治理项权重:40)扣分为10000 / 25000 * 40 = 16分
- 成本分=100-16=84分
4. 平台治理
实时健康分依托平台提供高效的治理能力,其中包括治理全景、治理工作台以及治理辅助三个模块:
- 治理全景:提供健康分趋势、成本项治理趋势、待治理问题分布等看板,观察健康程度趋势。
- 治理工作台:提供治理项明细、推荐参数、一键治理、事后监控等工具,提高治理效率。
- 治理辅助:提供治理播报卡片、自定义场景治理辅助工具,完善治理场景。
一级项 | 二级项 | 描述 |
---|---|---|
治理全景 | 健康分程度 | 展示各个业务线或个人当前健康分程度 |
健康分趋势 | 展示健康分变化趋势,其中也包括成本分和质量分的变化趋势。 | |
成本项治理趋势 | 展示成本项已治理、待治理、已节约CPU和待节约CPU趋势。 | |
质量项治理趋势 | 展示质量项规则命中待治理任务数和已治理任务数趋势。 | |
待治理问题分布 | 展示各个规则命中的待治理问题数、扣分情况。 | |
治理工作台 | 治理项明细 | 展示待治理任务列表明细,可通过规则项、任务等级、任务类型、任务owner等进行筛选展示 |
治理参数推荐 | 给每一个任务命中的治理项给出优化参数建议。 | |
批量一键治理 | 通过治理参数推荐批量完成多个任务的治理。单任务治理人效从15min提升到30s | |
事后监控大盘 | 治理完成之后通过推动治理任务的lag监控大盘来观察任务运行情况。 | |
治理辅助 | 治理播报卡片 | 每日给对应owner推送治理卡片,播报当前成本分、质量分、成本待治理项数、质量待治理项数和昨天已治理信息等。 |
自定义场景治理 | 给业务提供一个可自定义治理项的能力,满足业务个性化非通用的治理场景。 |
实时治理专项
某企业数据平台存在降本增效和稳定性保障诉求,日常任务存在CPU使用浪费、未配置报警、队列使用不规范、CPU使用率过高等问题。因此,该实时数仓团队联合DataLeap团队成立治理专项。专项设立虚拟小组与治理poc机制,自上而下拆分治理目标,快速响应治理阻塞问题,推动治理进度,协调治理资源,最终保障制定目标达成。
虚拟小组成员时刻关注业务线健康程度,评估目标完成风险,发现治理进度存在风险后及时与业务治理poc沟通治理过程中遇到的困难和阻塞,并由虚拟小组开发新的工具或制定新的治理方案,帮助业务治理poc克服治理困难,推动各业务方向达成既定季度目标。
1. 实时成本专项
该数据平台实时任务存在大量资源浪费问题,资源浪费任务数3.8k+,待治理CPU资源27.9w+core。基于资源浪费严重问题,成立实时成本专项,形成虚拟支持小组,深入业务,协助业务进行资源浪费治理,累计治理资源浪费任务1.15k,待治理CPU资源27.9w+core -> 17.7w+core。
2. 实时质量专项
同时,该数据平台实时任务存在多种质量稳定性隐患,例如:CPU使用过高、任务未配置报警、队列使用不规范、数据倾斜等问题。基于稳定性隐患问题,多方联合形成实时质量专项,沉淀出11个质量项规则,帮助企业数据平台发现3k+质量问题,推动数据平台进行质量治理,完成1.1k次质量治理。
3. 季度治理收益
指标解释:
- 一键治理时长提升率:一键治理将治理时长从15min降到0.5min,因此提升率96.5%
- 一键治理场景覆盖率: 一键治理问题数 所有治理问题数 \frac {一键治理问题数}{所有治理问题数} 所有治理问题数一键治理问题数
- 治理效率:一键治理时长提升率*一键治理场景覆盖率
收益如下:
- 该数据平台Q3季度健康分从80.57(新上9个治理项导致分数下降)-> 81.85分
- 质量项治理问题1.11k+(其中“任务未配置报警”问题清零、“CPU使用率过高”治理700+)
- 一键治理场景覆盖率80%,一键治理时长提升率96.5%,治理效率提升77%
点击跳转大数据研发治理套件 DataLeap了解更多