更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【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(全部任务的任务等级系数)} *治理项权重$$

  1. 例如:

    • 一共有1000个任务,$$\sum(全部任务的等级系数)=2500$$
    • 其中有100个任务命中了任务未配置报警,$$\sum(命中治理项的任务等级系数)=500$$
    • 未配置报警治理项(治理项权重:15)扣分为500 / 2500 * 15 = 3分
    • 质量分=100-3=97分
  • 成本分计算

口径:$$\frac {\sum(命中治理项的任务CPU分配数)}{\sum(全部任务的任务CPU分配数)} *治理项权重$$

  1. 例如

    • 一共有1000个任务,$$\sum(全部任务的任务CPU分配数)=25000$$
    • 其中有100个任务命中了CPU资源浪费,$$\sum(命中治理项的任务CPU分配数)=10000$$
    • CPU资源浪费治理项(治理项权重:40)扣分为10000 / 25000 * 40 = 16分
    • 成本分=100-16=84分

4. 平台治理

实时健康分依托平台提供高效的治理能力,其中包括治理全景、治理工作台以及治理辅助三个模块:

  1. 治理全景:提供健康分趋势、成本项治理趋势、待治理问题分布等看板,观察健康程度趋势。
  2. 治理工作台:提供治理项明细、推荐参数、一键治理、事后监控等工具,提高治理效率。
  3. 治理辅助:提供治理播报卡片、自定义场景治理辅助工具,完善治理场景。
一级项 二级项 描述
治理全景 健康分程度 展示各个业务线或个人当前健康分程度
健康分趋势 展示健康分变化趋势,其中也包括成本分和质量分的变化趋势。
成本项治理趋势 展示成本项已治理、待治理、已节约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了解更多

治理效率提升77%!揭秘基于DataLeap实时健康分的最佳实践的更多相关文章

  1. atitit.基于http json api 接口设计 最佳实践 总结o7

    atitit.基于http  json  api 接口设计 最佳实践 总结o7 1. 需求:::服务器and android 端接口通讯 2 2. 接口开发的要点 2 2.1. 普通参数 meth,p ...

  2. 基于AWS的云服务架构最佳实践

    ZZ from: http://blog.csdn.net/wireless_com/article/details/43305701 近年来,对于打造高度可扩展的应用程序,软件架构师们挖掘了若干相关 ...

  3. 基于AngularJS的前端云组件最佳实践

    AngularJS是google设计和开发的一套前端开发框架,他能帮助开发人员更便捷地进行前端开发.AngularJS是为了克服HTML在构建应用上的不足而设计的,它非常全面且简单易学习,因此Angu ...

  4. 基于kubernetes集群的Vitess最佳实践

    概要 本文主要说明基于kubernetes集群部署并使用Vitess; 本文假定用户已经具备了kubernetes集群使用环境,如果不具备请先参阅基于minikube的kubernetes集群搭建, ...

  5. 转发:基于Lerna打造多包管理最佳实践之道

    最近在看vue-cli的源码部分,注意到这一个仓库下维护了多个package,很好奇他是如何在一个repo中管理这些package的. 我们组现在也在使用组件库的方式维护项目间共用的业务代码.有两个组 ...

  6. 基于微服务的DevOps落地指南 交付效率提升40%

    基于微服务的DevOps落地指南 交付效率提升40% 2015-2016年,珍爱线下门店已新增覆盖城市9个,与此同时,CRM系统大小故障却发生了数十起... ... 珍爱网是以“网络征选+人工红娘”模 ...

  7. DevOps Workshop | 代码管理入门:基于代码扫描实现团队效率提升

    CODING「DevOps Workshop 学习营地」持续火热进行中! 在这里,你可以轻松实践 DevOps 全流程.体验高效的云端开发.赢取精美礼品--第二期大奖「戴尔 U2718Q 显示器」将于 ...

  8. jQuery效率提升建议

    jQuery简洁通用的方法集把编码者从繁重的工作中解脱出来,也拉低了进入javascript的门槛,初学者对浏览器兼容性一无所知的情况下,几行代码就可以写出超炫的特效.网上有一篇文章转载比较泛滥,已经 ...

  9. jQuery 效率提升建议

    jQuery简洁通用的方法集把编码者从繁重的工作中解脱出来,也拉低了进入javascript的门槛,初学者对浏览器兼容性一无所知的情况下,几行代码就可以写出超炫的特效.网上有一篇文章转载比较泛滥,已经 ...

  10. K8s 集群节点在线率达到 99.9% 以上,扩容效率提升 50%,我们做了这 3 个深度改造

    点击下载<不一样的 双11 技术:阿里巴巴经济体云原生实践> 本文节选自<不一样的 双11 技术:阿里巴巴经济体云原生实践>一书,点击上方图片即可下载! 作者 | 张振(守辰) ...

随机推荐

  1. umich cv-5-2 神经网络训练2

    这节课中介绍了训练神经网络的第二部分,包括学习率曲线,超参数优化,模型集成,迁移学习 训练神经网络2 学习率曲线 超参数优化 模型集成 迁移学习 学习率曲线 在训练神经网络时,一个常见的思路就是刚开始 ...

  2. Mysql [Show global status] 命令 参数详解(转)

    Aborted_clients:由于客户端没有正确关闭连接导致客户端终止而中断的连接数. Aborted_connects:试图连接到MySQL服务器而失败的连接数. Binlog_cache_dis ...

  3. mac端 安卓UI自动化安装环境配置

    安装JDK   官网下载安装包https://www.oracle.com/java/technologies/javase/javase8u211-later-archive-downloads.h ...

  4. 【Android】【外包杯】后台管理系统 | 进度day01

    外包杯官方提示:平台不要太大,只是一些小东西包括支付宝和微信小程序打开,无需安装口香糖,餐巾纸有一块屏幕,不需要很大,只需要满足顾客可以看到传播的内容打开橱窗不要有锋利边角,不要求一体,提高场景利用率 ...

  5. [AI]重新审视“幻肢”现象背后的意识机制

    "幻肢"实验 "幻肢"实验是研究幻肢现象的经典实验方法.实验对象通常选择已经失去一肢如手或脚的病人.实验主要步骤是:首先安装一台镜头对残肢部位进行实时视频监测. ...

  6. Java自定义ClassLoader实现插件类隔离加载

    为什么需要类隔离加载 项目开发过程中,需要依赖不同版本的中间件依赖包,以适配不同的中间件服务端 如果这些中间件依赖包版本之间不能向下兼容,高版本依赖无法连接低版本的服务端,相反低版本依赖也无法连接高版 ...

  7. SpringCore完整学习教程6,入门级别

    本章从第7章开始: 7. Task Execution and Scheduling 在上下文中没有Executor bean的情况下,Spring Boot会自动配置一个ThreadPoolTask ...

  8. vue-test --------模板引用

    <template> <input type="text" v-model.lazy="message"> <div>{{m ...

  9. CompletableFuture入门

    CompletableFuture入门 1.Future vs CompletableFuture 1.1 准备工作 先定义一个工具类 import java.nio.file.Files; impo ...

  10. 深入 K8s 网络原理(一)- Flannel VXLAN 模式分析

    目录 1. 概述 2. TL;DR 3. Pod 间通信问题的由来 4. 测试环境准备 5. 从 veth 设备聊起 6. 网桥 cni0 6.1 在 Pod 内看网卡信息 6.2 在 host 上看 ...