更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【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. Java代码审计之目录穿越(任意文件下载/读取)

    一.目录穿越漏洞 1.什么是目录穿越 所谓的目录穿越指利用操作系统中的文件系统对目录的表示.在文件系统路径中,".."表示上一级目录,当你使用"../"时,你正 ...

  2. 22. 从零用Rust编写正反向代理,一个数据包的神奇HTTP历险记!

    wmproxy wmproxy已用Rust实现http/https代理, socks5代理, 反向代理, 静态文件服务器,四层TCP/UDP转发,内网穿透,后续将实现websocket代理等,会将实现 ...

  3. Velocity之Hello World(入门实例)

    参考:http://blog.csdn.net/mengxuwq/article/details/1871161 (非常感谢这篇文章,让我初步入门) 自己调试完全能运行后,写在此,供新人参考,供自己温 ...

  4. JavaScript 语法:运算符号

    作者:WangMin 格言:努力做好自己喜欢的每一件事 JavaScript要进行各种各样的运算,就要使用不同的运算符号. JavaScript 算数运算符 算数运算符用于对数字执行算数运算,分别有以 ...

  5. ORACLE 视图合并SQL优化案例

    朋友给了一条SQL说跑8个小时才出结果,结果集很小75条数据,给他安排一下. SQL如下: SELECT DISTINCT T.XLA_TYPE, T.XLA_CODE, T.VENDOR_CODE, ...

  6. 实例讲解SpringBoot集成Dubbo的步骤及过程

    首先,让我们先了解一下Spring Boot和Dubbo. Spring Boot 是一个开源的 Java Web 框架,它可以帮助开发者快速创建独立的.生产级别的 Spring 应用程序.Sprin ...

  7. 🔥🔥Java开发者的Python快速进修指南:自定义模块及常用模块

    好的,按照我们平常的惯例,我先来讲一下今天这节课的内容,以及Java和Python在某些方面的相似之处.Python使用import语句来导入包,而Java也是如此.然而,两者之间的区别在于Pytho ...

  8. 小米二面:Redis 如何保证数据不丢失?

    前段时间表妹收到了小米秋招补录的面试邀请,一面还算顺利,很快就通过了,但在看二面面试录屏的时候,我发现了一个问题,回答的不是很好,也就是我们今天要聊的这个问题:Redis 如何保证数据不丢失? 很多人 ...

  9. 手动部署Kraft模式Kafka集群

    手动部署Kraft模式kafka集群 基本信息 IP地址 Hostname Release Kafka-Version 172.29.145.157 iamdemo1 Centos7.9 kafka_ ...

  10. 解决IDEA加载maven工程缓慢

    如图,哪里没有加哪里 -DarchetypeCatalog=internal