更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群
 
“幸福里”是抖音集团旗下集内容、社区、工具于一体的房产媒体综合信息平台,致力于提供多样化房产资讯、定制找房需求。随着幸福里业务发展,为了满足业务对于数据使用、指标观测等需求,团队快速落地了数仓建设。但由于早期“先建后治”,导致现阶段数据治理难题频发。
 
其中,异常突出的是离线数仓SLA延迟大,高达13天。对于需要实时看到数据情况的经纪人、用户等人来说,延时可能会影响到数据价值的产出。
 
在抖音集团内部广泛应用“0987”高质量服务评价体系,即从多个维度综合论证数据中台的价值,位列第一的“0”,指的是数据中台必须保障数据稳定,实现SLA故障清零。而对于幸福里团队来说,SLA高延时显然已经成为数据治理中未解决的核心问题。
 
基于此背景,幸福里团队通过引入火山引擎大数据研发治理套件DataLeap,综合推进离线数仓的SLA治理,将离线数仓SLA从13天降低为0天。本文将从策略制定、任务摸排收集、规范确定,宣贯推进等方向还原项目推进过程,期望为更多企业带来SLA治理思考和解决方案。
 

业务痛点

据相关业务同学介绍,幸福里团队与其他面临SLA治理难题大同小异,主要包含以下两个方面:
 
第一,随着楼盘、房源、经纪人、营销等数据不断增长,在数据任务开发场景中,业务多样化、数据量大、数据任务复杂等问题,导致数据任务链路依赖复杂、链路长、依赖多,具体体现在:
  • 幸福里离线数仓数据源包括中台型数据,这类数据没有SLA保障。
  • 幸福里离线数仓数据源还包括业务DA以及算法类数据。以算法类数据为例,数据本身在算法团队自身队列当中,由于无法分别出业务需要的重要数据,队列任务可能发生延迟、时效性不强,另外还存在任务交接或权限到期等问题,导致这些数据无法得到有效保障。
  • 幸福里离线数仓SLA链路长。相关业务人员提到,“内部最长的链路上游包括800多张表,这里的上游仅局限在幸福里业务内部,还不包括中台”。由此可见,上游任务数之多,且可能涉及跨越多个团队沟通,要最终达成约定SLA,成本将非常高。
 
第二,数据建设主导方变更,业务形态转变,导致历史包袱重、存量任务优化工作量大,这与幸福里离线数据建设历程强关联。 在幸福里数仓1.0阶段,数据仓库由业务方DA与RD自建,未有明确的数仓规范,数据模型较混乱。2021年3月份,幸福里业务过程及业务形态发生转变,业务主体由流量转为交易,为了满足业务高速发展需求,数据建设以快速落地、指标准确产出为主要目标,历史遗留问题治理较少。
随着业务发展逐渐稳定,数仓建设进入2.0阶段。由于数仓中大量线上数据和重要指标依然使用1.0阶段的老表,导致指标口径不统一,同时也存在历史表数据无人维护的问题,导致时效性差。另外,幸福里数仓也面临存量任务优化的问题。有些存量任务运行时间长、资源占用严重,团队亟需排查这部分问题。
 

解决方案

为了解决SLA延时问题,幸福里团队引入了火山引擎大数据研发治理套件DataLeap,通过DataLeap的三大能力,形成一套连贯、可复用的治理方案,最终形成SLA保障全链路高效管理。具体来看:
 
  • 通过数据治理能力,解决任务上游承诺并签署保障SLA的问题。数据治理平台支持任务负责人申报任务,并快速拉起上游完成SLA签署承诺,从而保障链路稳定性,这也是幸福里团队使用的核心功能。
  • 通过数据研发能力,解决SLA任务的基线监控问题。在任务多,依赖关系复杂的情况下,很难查找到重要任务的所有上游任务并进行监控。如果监控所有任务,又会产生很多无用报警,导致有用报警被忽略。因此,幸福里团队通过使用DataLeap的数据研发能力,将下游节点作为保障任务加入基线,形成需要监控的任务链路。
  • 通过数据质量监控能力解决Hive表监控问题。针对某些卡点任务进行表监控,一方面保障 SLA 及时性,另一方面保证整体任务准确性。
 
下文三个步骤,带你还原幸福里离线数仓治理项目全过程!
 

第一步:圈定SLA保障核心任务

幸福里团队首先根据业务需求,圈定出需要被SLA保障的核心任务,具体包括以下三类:
  • 线上核心任务,即直接展示给B端经纪人或C端用户的数据。
  • 管理驾驶舱数据,包括日报、周报、月报等。
  • 重点业务核心看板。例如,2022年幸福里重点业务在福州,因此对需要对福州数据提供优先保障,确保当地经纪人、店长等业务角色能准确、快速获取数据,以便制定相应推广策略。
 

第二步:制定全局保障方案

幸福里团队通过引入DataLeap数据治理平台,推进对核心任务的SLA治理工作。对于任务运行中的异常数据或突发事故,基于配置基线监控的运维能力,加强报警能力,另外通过数据质量监控平台完成核心维表及核心指标表监控,以提供更加稳定的数据服务。
 
在SLA治理环节,存在核心任务SLA保障不足,有发生线上业务事故的隐患问题。除此之外,SLA任务运维报警能力不足或者SLA签署时间不合理等,有SLA延迟隐患,造成破线事故。
 
对于新增SLA任务,数据治理平台【SLA保障】-> 【SLA管理】页面,点击【发起申报】,以申报单签署的形式达成SLA协议,在申报签署环节中,各个环节的变化将通过通知模块传递信息给相应负责人,实时通知降低信息交流成本,加速了SLA的达成。
 
火山引擎DataLeap数据治理平台SLA申报页面
 
幸福里团队任务签署SLA步骤
 
在基线报警环节,据相关业务人员介绍,只有34%的核心任务配置了基线监控,导致有发生线上业务事故的隐患,同时无效报警较多,造成无效起夜、运维压力较大。
 
火山引擎DataLeap支持圈选核心任务,并根据任务近30天产出表现,根据近30天75分位产出时间,产出时间波动方差、链路最长任务平均时长、下游任务总数、业务期望产出时间等作为输入数据,产出合理基线预期产出时间及预警buffer配置基线,还支持校准基线监控范围。
幸福里团队基线报警治理思路
 
幸福里平台有一个关系到经纪人核心利益的“幸福分”指标。当经纪人完成相应任务时,幸福分值增加。但当维表中数据缺失,在前台反映的结果则是“幸福分”不更新,对经纪人造成困扰。另外,据业务同学介绍,之前还出现过这样的案例:小李在数据库中的核心维度是“经纪人”,但在维表中,可能测试数据误导入或重复数据导入,导致小李对应到多个门店或对应到错误房源。
 
为了解决以上问题,幸福里团队在Hive表监控环节,引入了火山引擎DataLeap数据质量监控能力。对于业务核心关注的线上任务、管理驾驶舱数据以及重点业务核心看板等数据,通过数据质量监控平台完成数据波动监控、异常报警,避免因为数据质量导致的数据失信、决策失误等事故。
数据质量整体策略
 

第三步:量化SLA效果并复盘

在DataLeap数据治理平台中,SLA大盘展板支持提供当日SLA整体统计信息、SLA延迟趋势分析信息、SLA等级分布明细、任务健康度明细、团队SLA达成信息统计等丰富信息,是很多团队数据治理指标重要参照来源。
 
幸福里项目中的核心数据指标如SLA任务数量、报警数、起夜率等都体现在大盘展板中,量化项目推进效果,为风险判断、后续措施提供数据支持。
 

最终效果

自2022年6月-12月,幸福里离线SLA保障已经实现SLA事故天数0、SLA延迟天数为0,实现“0987”高质量服务评价体系目标。除此之外,线上核心任务基线覆盖率达到97.4%(较项目启动前提升63%)、电话报警量较项目启动前降低28.4%,大大降低运维成本,保证数据稳定性。
 
火山引擎DataLeap不仅解决了离线SLA保障的燃眉之急,更为幸福里团队形成了一套标准流程和规范。在事前,使用申报流程,规范SLA签署;在事中,完善报警及时性和准确性,降低误报率;在事后,及时跟踪报警情况,完善问题复盘及监控机制,沉淀公共解决方案,推动幸福里SLA治理健康、可持续发展。
数据质量实施过程
 
点击跳转大数据研发治理套件 DataLeap了解更多
 
 
 

从“13天”到“0天”延时,揭秘幸福里离线SLA保障最佳实践的更多相关文章

  1. 揭秘华为云GaussDB(for Influx)最佳实践:hint查询

    摘要:GaussDB(for Influx)通过提供hint功能,在单时间线的查询场景下,性能有大幅度的提升,能有效满足客户某些特定场景的查询需求. 本文分享自华为云社区<华为云GaussDB( ...

  2. setTimeout中0毫秒延时

    先来看段代码,思考一下执行的结果. alert(1); setTimeout(function(){alert(2);}, 0); alert(3); 估计很多人认为执行结果为1,2,3,原因就是认为 ...

  3. tensorflow报错:Attempting to fetch value instead of handling error Internal: failed to get device attribute 13 for device 0: CUDA_ERROR_UNKNOWN:

    就是在spyder跑上一篇文章的代码然后就报错: Attempting to fetch value instead of handling error Internal: failed to get ...

  4. Scala 深入浅出实战经典 第65讲:Scala中隐式转换内幕揭秘、最佳实践及其在Spark中的应用源码解析

    王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-87讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...

  5. Web前端开发最佳实践(13):前端页面卡顿?可能是DOM操作惹的祸,你需要优化代码

    文档对象模型(DOM)是一个独立于特定语言的应用程序接口.在浏览器中,DOM接口是以JavaScript语言实现的,通过JavaScript来操作浏览器页面中的元素,这使得DOM成为了JavaScri ...

  6. paip.提升性能--多核编程中的java .net php c++最佳实践 v2.0 cah

    paip.提升性能--多核编程中的java .net php c++最佳实践  v2.0 cah 作者Attilax  艾龙,  EMAIL:1466519819@qq.com  来源:attilax ...

  7. Android 6.0 权限管理最佳实践

    博客: Android 6.0 运行时权限管理最佳实践 github: https://github.com/yanzhenjie/AndPermission

  8. MySQL面试必考知识点:揭秘亿级高并发数据库调优与最佳实践法则

    做业务,要懂基本的SQL语句: 做性能优化,要懂索引,懂引擎: 做分库分表,要懂主从,懂读写分离... 数据库的使用,是开发人员的基本功,对它掌握越清晰越深入,你能做的事情就越多. 今天我们用10分钟 ...

  9. spring-boot-2.0.3之quartz集成,最佳实践

    前言 开心一刻 快过年了,大街上,爷爷在给孙子示范摔炮怎么放,嘴里还不停念叨:要像这样,用劲甩才能响.示范了一个,两个,三个... 孙子终于忍不住了,抱着爷爷的腿哭起来:爷呀,你给我剩个吧! 新的一年 ...

  10. [转]10分钟梳理MySQL知识点:揭秘亿级高并发数据库调优与最佳实践法则

    转:https://mp.weixin.qq.com/s/RYIiHAHHStIMftQT6lQSgA 做业务,要懂基本的SQL语句: 做性能优化,要懂索引,懂引擎: 做分库分表,要懂主从,懂读写分离 ...

随机推荐

  1. 2023云栖大会议程&体验攻略

    2023云栖大会倒计时1天 将围绕"计算,为了无法计算的价值" 为大家带来一场有用.有趣科技盛宴 City Walk 不如云栖Walk 今日,送上一份参会指南 给所有参会者& ...

  2. Java8新特性(Lambda表达式、Stream流、Optional类)等

    1. Lambda表达式由来 1 package java8; 2 3 public class EmployeeTest { 4 public static void main(String[] a ...

  3. Ansible自动化部署工具-role模式安装filebeat实际案例分析

    大家好,我是蓝胖子,前面一节我简单的讲了讲Ansible的架构和编排任务的语法,可以发现,通过playbook方式编排任务时,能够将任务文档化,但是在面对比较复杂且不同业务的任务编排时,维护playb ...

  4. 题解 CF1292A

    题目大意: 给你 \(2\times n\) 的迷宫,初始时没有任何障碍,给定 \(q\) 次询问,每次询问给予坐标 \((x,y)\),问将坐标 \((x,y)\) 反转状态(即无障碍变有障碍,有障 ...

  5. 我用 AI 写的《JavaScript 工程师的 Python 指南》电子书发布啦!

    关于本书 你好,我是 luckrnx09,一名靠 React 恰饭的前端工程师,很高兴向你介绍我的第一本开源电子书<JavaScript 工程师的 Python 指南>. 本书的内容完全免 ...

  6. Cocos Creator性能调优

    一. 为什么要做性能优化 性能:是程序的一种优秀的能力.唤醒快.运行持久.稳定 这种能力正在游戏上能让你的用户感觉很爽,特征表现为加载快.运行流畅.不卡顿. 所以,性能优化的终极目标是,让你的用户体验 ...

  7. .Net 8与硬件设备能碰撞出怎么样的火花(使用ImageSharp和Protobuf协议通过HidApi与设备通讯)

    前言 本人最近在社区里说想做稚晖君的那个瀚文键盘来着,结果遇到两个老哥一个老哥送了我电路板,一个送了我焊接好元件的电路板,既然大家这么舍得,那我也就真的投入制作了这把客制化键盘,当然我为了省钱也是特意 ...

  8. Celery架构和主要模块

    **任务模块 ** 包含异步任务和定时任务.其中,异步任务通常在业务逻辑中被触发并发往任务队列,而定时任务由 Celery Beat 进程周期性地将任务发往任务队列. **消息中间件 Broker * ...

  9. AntDesignBlazor示例——Modal表单

    本示例是AntDesign Blazor的入门示例,在学习的同时分享出来,以供新手参考. 示例代码仓库:https://gitee.com/known/BlazorDemo 1. 学习目标 创建Mod ...

  10. 文心一言 VS 讯飞星火 VS chatgpt (165)-- 算法导论13.1 5题

    五.用go语言,证明:在一棵红黑树中,从某结点 x 到其后代叶结点的所有简单路径中,最长的一条至多是最短一条的 2 倍. 文心一言: 首先,我们要理解红黑树的性质.红黑树是一种自平衡的二叉查找树,它满 ...