直播实时数仓基于DataLeap开放平台在发布管控场景的业务实践

news2024/11/23 16:53:26

更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群

背景

业务背景

随着字节业务的高速增长,业务场景越来越丰富,业务基于数据做的决策也越来越多,对数据的时效性要求也越来越高。原有离线批处理的数据仓库已经无法满足诉求,因此需要打造一套同时具备高时效性和高稳定性的计算能力快速完成对数据的处理,即实时数仓。

团队介绍

直播实时数仓团队隶属于Data-数据平台部门,负责为直播中台业务建设实时数据仓库,为业务侧数据产品提供实时数据能力。

痛点

高收益意味着高风险也同时存在,例如数据时效性方面更新延迟超过15分钟,就会有高客诉、甚至资损风险。

2023年之前,各业务实时数仓(直播/电商等)因发布流程问题引发了多起稳定性事故,历史case:2022年上半年直播实时数仓为了修复某份核心分钟指标,选择回补明细层数据的方式做修复,修复任务上线过程中缺少方案评审、影响评估及下游周知等流程,最终因明细层数据回补量级过大导致核心分钟指标产出延迟带来大量客诉反馈。

发布流程常见问题有测试验证缺失、影响评估不准确、上线意识不严谨、上线review随意等。期望有一套流程化工具,自动约束人为不规范操作,降低流程原因导致的事故数、甚至完全规避。

方案

制定发布SOP

将发布划分为发布前、发布中、发布后三个阶段,对每个阶段的动作做细粒度拆分并分别制定规范流程,从而形成实时数仓任务发布SOP。

1.png

发布前-规范自查

  1. 发布前首先需要做测试验收,主要保证开发命名遵守实时数仓规范、数据产出质量(主要为正确性,与离线diff<0.1%)、任务运行稳定性(测试任务运行期间无延迟情况)。
  2. 测试验收完成后评估此次上线的影响,并判断是否需要提前周知下游。比如任务重启恢复一般需要3~5分钟、意味着数据更新会有短暂的更新延迟,需要评估是否要向下游依赖方周知。
  3. 最后整合发布内容、测试结果、影响评估结果等信息,在发布话题群中进行登记,如需周知下游的话手动艾特到下游POC同学。

在这里插入图片描述

发布中-复查管控

  1. 发布中首先会进行围绕代码参数和报警规则配置改动进行自动化巡检,辅助review同学进行code review。review同学分为业务review和技术review。

    1. 业务review关注业务逻辑,基于业务背景评估代码逻辑调整后的数据质量,并把控发布时间,核心任务发布时间为0~8点,非核心任务发布时间为0~19点(19~24点为业务高峰期)。
    2. 技术review关注任务稳定性,基于SQL语法、代码参数等评估任务自身性能、基于任务流量及依赖组件特性评估外部依赖环境稳定性等,保障逻辑变更后任务能够快速恢复并稳定运行。

3.png

发布后-恢复盯盘

  1. 发布后会需要从任务状态(Lag消除/Checkpoint状态等)、数据质量(流量波动/数据正确性等)、下游影响(组件稳定性等)三个方面做恢复盯盘,及时发现发布带来的异常影响。
  2. 如果有预期外的异常时,发布同学及时修复或回滚,并登记发布结果及失败原因(如有)。

4.png

发布SOP平台化

阶段一:自研发布流程工具(Hermes平台)

  1. 实现思路: 发布SOP本身就是一套串行实施的流程,可以将发布上线环境进行流程化拆解为一个个节点,通过编排节点流程及状态机控制流程正常流转运作,从而实现自动约束发布上线流程规范性。

在这里插入图片描述

  1. 使用痛点: 实质上只实现部分流程工具化约束,Hermes和DataLeap平台存在割裂,一次发布流程中用户需要在两个平台上跳转操作,存在用户体验及操作成本问题。

阶段二:基于DataLeap开放平台

  1. 实现思路: DataLeap开放平台支持业务自定义扩展程序能力,扩展程序可以订阅DataLeap侧OpenEvent监听用户操作、通过OpenAPI与DataLeap进行丰富的交互实现用户行为管控,除此之外开放平台还提供将N个扩展程序以流水线的形式编排的能力。因此将Hermes平台的发布流程工具能力以扩展程序的方式落地到DataLeap,并且通过流水线的能力编排成完整的发布流程流水线,从而实现发布SOP人工约束->平台化自动约束。

6.jpg

  1. 产品使用流程:

在这里插入图片描述

业务实践

业务背景: 以主播服务平台-直播大屏为例,为主播提供在线人数趋势、进房人数等互动指标和送礼人数、送礼金额等收入指标,主播在开播过程中会基于以上指标做直播策略的调整。

发布要求: 控制发布频率和发布时间降低业务影响,通过流程控制提升发布质量,保障数据时效性和正确性。

# 发布前-规范自查

  1. 测试验收:

    1. 模型和指标命名遵守实时数仓规范;
    2. 数据准确性验证:和离线数仓对应数据进行数据条数与字段值的验证,保障diff在预期内;
    3. 任务稳定性验证:测试任务运行期间消费无延迟、资源使用在合理范围内。
  2. 影响评估:任务重启恢复一般需要3~5分钟,直播大屏相关任务上线时就需要提前向下游依赖方周知:xx时间xxx需求上线改动可能会带来3~5分钟的数据更新延迟,请关注数据产品功能情况。

发布中-复查管控

  1. 发布监测:围绕代码参数和报警规则配置改动进行自动化巡检,辅助review同学进行code review(业务review和技术review)。
  2. 业务review:关注业务逻辑,基于业务背景评估代码逻辑调整后的数据质量,并把控发布时间。直播大屏相关任务属于核心任务,发布时间为0~8点,此时间段内为业务低峰期、发布影响用户侧感知较弱。
  3. 技术review:关注任务稳定性,基于SQL语法、代码参数等评估任务自身性能、基于任务流量及依赖组件特性评估外部依赖环境稳定性等,保障逻辑变更后任务能够快速恢复并稳定运行。

# 发布后-恢复盯盘

  1. 发布后会启动自动盯盘服务,针对任务状态、数据质量等方面做恢复及影响盯盘,及时发现发布带来的异常影响并告警通知发布同学,发布同学收到盯盘告警时,可通过修复或回滚进行恢复。 例如:任务新增维表关联逻辑时使用不当导致数据倾斜、从而数据产出延迟,在盯盘时就能及时发现任务发布后产生的延迟情况并告警,发布同学收到告警消息后快速调整逻辑或者回滚,就能及时避免发布异常导致的事故。
  2. 发布结束后会推动发布同学进行结果录入,方便后期做发布质量分析、发现不合规的点做定向提升。

收益统计

  • 自22年9月以来,直播实时数仓因发布规范导致的事故数一直保持为0,在数据稳定性方面完成了比较高的目标。除此之外沉淀了一套实时数仓通用发布流程和规范,并通过Hermes+DataLeap开放平台的能力完全实现平台化、自动化,极大的降低规范人工约束/任务恢复人工盯盘的人力成本和出错率,避免发布规范带来的质量问题。
  • 目前直播、短视频、电商及生活服务等头部业务的实时数仓团队都已完成接入实时发布流水线,通过实时发布流水线管控发布流程。

未来规划

一句话描述:提供实时发布复查流程精细化管控,定时发布、顺序发布、发布异常快速发现及发布自动化回滚和发布变更自动周知等能力。

功能点详细内容
精细化管控- 支持分支能力:自定义多场景下不同的流水线环节,降低发布成本
发布盯盘- 提升任务运行盯盘准确性,新增数据质量及下游影响盯盘能力,及时发现发布异常
发布回滚- 基于发布盯盘能力,支持异常时的快速修复和回滚能力 -支持发布盯盘规则模版,不同任务选择最佳规则实现精准盯盘
变更周知- 基于数据链路血缘自动识别链路核心下游,自动化周知变更
流水线模版- 发布流水线支持模版化配置,业务一键导入使用

点击跳转大数据研发治理套件 DataLeap了解更多

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1191757.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CSDN中调整图片和文本样式

1.调整图片比例 插入图片后&#xff0c;觉得图片比例不协调&#xff0c;想改小点。只需要在文件后缀加个参数即可&#xff1a;?pic_center 60x。 NOTE&#xff1a;等号左边一定要加个空格&#xff0c;否则格式不生效 2.修改字体颜色 如上 NOTE&#xff1a;等号左边一定要…

搭建完全分布式Hadoop

文章目录 一、Hadoop集群规划二、在主节点上配置Hadoop&#xff08;一&#xff09;登录虚拟机&#xff08;二&#xff09;设置主机名&#xff08;三&#xff09;主机名与IP地址映射&#xff08;四&#xff09;关闭与禁用防火墙&#xff08;五&#xff09;配置免密登录&#xff…

Linux Centos配置邮件发送

Linux Centos配置邮件发送 这里使用的是外部发送邮件方式&#xff0c;也就是使用自己的账号发送 第一步 首先要开启STMP授权码&#xff0c;以QQ邮箱为例 配置文件 vim /etc/mail.rc找到之后在最下面添加如下 #邮箱set from3324855376qq.com #默认smtp发送&#xff0c;stmp…

简单聊聊java中各种常量池

一 引子 小试身手 首先我们来看一道题 Integer i1 127; Integer i2 127;System.out.println(i1 i2); //这种调用底层实际是执行的Integer.valueOf(127)&#xff0c;里面用到了IntegerCache对象池//值大于127时&#xff0c;不会从对象池中取对象 Integer i3 128; Integ…

4S店汽车行业万能通用小程序源码系统 在线预约试驾+购车计算器 源码完全开源可二次开发

随着互联网技术的发展和普及&#xff0c;越来越多的消费者开始依赖于互联网进行消费。传统的汽车销售模式也正在经历着数字化转型&#xff0c;以适应消费者需求的变化。这款小程序源码系统就是为帮助汽车4S店等销售商实现数字化转型而开发的。 以下是部分核心功能的代码模块&a…

合成数据在医疗保健行业的案例研究

从机器人辅助手术到医学成像技术&#xff0c;人工智能在医疗保健领域的应用正在迅速改变医疗保健行业&#xff0c;并改善服务成本和服务质量。例如&#xff0c;埃森哲表示&#xff0c;到 150 年&#xff0c;人工智能临床健康应用每年可以为美国医疗保健行业节省 2026 亿美元。 …

C++中的函数重载:多功能而强大的特性

引言 函数重载是C编程语言中的一项强大特性&#xff0c;它允许在同一个作用域内定义多个同名函数&#xff0c;但这些函数在参数类型、个数或顺序上有所不同。本文将深入探讨函数重载的用法&#xff0c;以及它的优势和应用场景。 正文 在C中&#xff0c;函数重载是一项非常有…

Spring Security使用总结八,Security的第二个功能授权,不同的角色访问不同的资源

前面五章基本都是给认证做铺垫的,这一章是security的另一个硬菜:授权,你在我这里注册,成为唯爱痞,我给你个令牌,你可以访问我资源,但是不能所有资源都给你,于是就有了授权,你只能访问我让你访问的资源,我不让你访问的资源,你一点都别想看。这里就出现了角色,不同的…

一个不用充钱也能让你变强的 VSCode 插件!!!

今天给大家推荐一款不用充钱也能让你变强的 vscode 插件 通义灵码&#xff08;TONGYI Lingma&#xff09;&#xff0c;可以称之为 copilot 的替代甜品 &#x1f4aa; 前言 之前一直使用的 GitHub Copilot&#xff0c;虽然功能强大&#xff0c;但是收费相对来说有点贵&#xf…

C 语言 while 和 do...while 循环

在本教程中&#xff0c;您将在示例的帮助下学习在C语言编程中创建while和do ... while循环。 在编程中&#xff0c;循环用于重复代码块&#xff0c;直到满足指定条件为止。 C语言编程具有三种类型的循环。 for循环 while循环 do... while循环 在上一教程中&#xff0c;我…

解决:AttributeError: ‘WebDriver‘ object has no attribute ‘find_element_by_xpath‘

解决&#xff1a;AttributeError: ‘WebDriver’ object has no attribute ‘find_element_by_xpath’ 背景 在使用之前的代码通过selenium定位元素时&#xff0c;报错&#xff1a;selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to l…

vioovi的ECRS工时分析软件:食品加工行业的生产效率提升利器

在食品加工行业&#xff0c;提高生产效率、降低成本、优化资源配置是至关重要的。随着科技的不断发展&#xff0c;越来越多的企业开始借助先进的软件工具来助力生产管理。本文将介绍一款备受食品加工企业青睐的工业工程软件——vioovi的ECRS工时分析软件&#xff0c;并探讨其如…

dapp技术开发

随着区块链技术的普及和应用&#xff0c;DApp&#xff08;去中心化应用&#xff09;逐渐成为了区块链领域中备受关注的核心部分。DApp是一种运行在去中心化网络上的应用程序&#xff0c;其开发、部署和运行都不依赖于任何中心化的实体或中介机构。这种应用程序的兴起和发展&…

基于springboot 手工艺品在线展示系统-计算机毕设 附源码 42553

springboot 手工艺品在线展示系统 目 录 摘要 1 绪论 1.1本课题研究意义 1.2系统开发目的 2 1.3系统开发技术的特色 3 1.4 springboot框架介绍 3 1.5论文结构与章节安排 4 2 手工艺品在线展示系统系统分析 5 2.1 可行性分析 5 2.2 系统流程分析 5 2.2.1数据增加流程 5 2.2.…

【正点原子STM32连载】 第四十八章 内存管理实验 摘自【正点原子】APM32F407最小系统板使用指南

1&#xff09;实验平台&#xff1a;正点原子stm32f103战舰开发板V4 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id609294757420 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html## 第四…

如何用Java高效地存入一万条数据?这可能是你面试成功的关键!

大家好&#xff0c;我是你们的小米&#xff0c;一个热爱技术、喜欢分享的29岁程序猿。今天我要和大家聊一聊一个常见的面试题&#xff1a;在Java中&#xff0c;当我们需要将一万条数据存储到数据库时&#xff0c;如何能够提高存储效率呢&#xff1f; 在面试过程中&#xff0c;…

生活污水处理一体化处理设备有哪些

生活污水处理一体化处理设备有多种类型&#xff0c;包括但不限于以下几种&#xff1a; 鼓风机&#xff1a;提供曝气系统所需的气流。潜水污水提升泵&#xff1a;将污水从低处提升到高处。旋转式滚筒筛分机&#xff1a;对污水中的悬浮物进行分离和筛选。回旋式格栅&#xff1a;…

以技术创新引领行业发展,飞凌嵌入式获双项省级荣誉

近日&#xff0c;飞凌嵌入式荣获「2023年河北省专精特新示范企业」以及「第五批省级制造业单项冠军企业」两项殊荣。这两项荣誉的获得&#xff0c;是对飞凌嵌入式在专业技术领域与创新能力的高度认可&#xff0c;荣誉的背后&#xff0c;凝聚着飞凌嵌入式无数次的研发探索与对创…

Vite项目的初体验 - 非Vite脚手架版本

开箱即用 &#xff08;out of box&#xff09;: 无需做任何的配置&#xff0c;就可以用vite来帮助我们处理构建工作。 前提 &#xff1a;node 版本 > 12.0.0&#xff0c;使用 npm 进行依赖管理。 本文的案例&#xff0c;从0到1的&#xff0c;一步一步的体会vite的作用。 本文…

QQ恢复聊天记录,就用这3个方法!

无论是因为误操作、手机丢失、系统崩溃&#xff0c;还是因为更换了新手机&#xff0c;恢复重要的QQ聊天记录都是一件必做的事情。通过聊天记录&#xff0c;用户可以随时查看之前的信息&#xff0c;以便了解事情的经过。 那么&#xff0c;如何恢复丢失的QQ聊天记录呢&#xff1…