竞速榜实时离线对数方案演进介绍

这篇具有很好参考价值的文章主要介绍了竞速榜实时离线对数方案演进介绍。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、背景

竞速榜是大促期间各采销群提供的基于京东实时销售数据的排行榜,同样应对大促流量洪峰场景,通过榜单撬动品牌在京东增加资源投入。竞速榜基于用户配置规则进行实时数据计算,榜单排名在大促期间实时变化,相关排名数据在微博、朋友圈广泛传播,相关计算以及排名的准确性至关重要。

竞速榜的每个榜单配置规则都会有差异,为保障榜单数据计算准确,需要在大促开始前对榜单实时排名数据进行核对,主要验证方案为在第二天取前一天的实时排名数据,另外根据榜单规则配置信息,计算相关的离线数据,进行实时离线数据对比,验证数据的一致性。

单个榜单规则有20+个不同配置项,每个配置都相互独立,需要针对每个规则分别进行数据验证

二、对数方案演进过程

2.1、纯人工 - 成本高且无法完整覆盖

最初阶段为纯人工对数,分别获取对应竞速榜的实时和离线数据,进行人工比对

1)实时数据:每天23:59 定时读取榜单数据接口,记录对应榜单数据

2)离线数据:根据榜单规则手动编写离线SQL脚本,通过数据查询执行SQL获取榜单排名数据

整个操作过程消耗时间较长,SQL编写需要1小时,单SQL执行0.5小时,为覆盖所有规则,一次需要完成100多个规则的配置和SQL编写以及数据验证,在规则不变情况下,预计需要消耗20人日才能完成一次完整测试, 且脚本编写需要对业务规则深入了解,对测试人员SQL水平要求也较高。

2.2、半自动化 - 持续消耗人力

竞速榜主要在大促期间使用,除功能测试覆盖规则外,在大促前还要对业务方配置的规则进行数据验证,确保用户配置规则的计算准确性,以23年618为例,共有5000+榜单规则,如果仍然使用纯人工验证数据的方案,需要900+天,完全不可行。因此实现了半自动化对数方案,和人工对数方案相比,解决了离线SQL的自动化生成,实时数据的自动获取等问题。

具体方案如下:

1、实时数据获取:基于榜单快照功能,自动记录榜单每日快照数据并写入数据库,

2、离线SQL生成和数据计算:

2.1、规则配置入库:通过系统自带的榜单规则导出功能,将榜单规则导出到excel,进而导入到hive表中;同时将榜单规则依赖的其他配置数据也导入到hive

2.2、规则化生成SQL:根据榜单规则配置信息,使用case when的方法,针对不同情况分别生成对应SQL片段,最后人工组合为上述SQL

2.3、合并SQL执行计算任务:将多个组合生成的SQL合并为1个,并配置离线调度任务,通过任务执行分别计算不同榜单的离线数据

2.4、数据推送到对数MySQL:将生成的离线榜单数据推送到实时数据存储的MySQL

3、实时离线数据对比:将实时和离线数据全部推送入数据库后,直接查询数据库,进行数据对比,并对超过阈值的数据进行高亮提示。

通过以上方法,完成了半自动化的实时离线对数,解决了人工对数中最消耗人力的SQL手动编写问题。但是,该方案仍然存在以下问题:

  1. SQL需要人工介入:SQL的生成还存在多次人工操作,中间需要人工对生成的SQL进行调整

  2. 规则变化引发SQL调整:在大促前,用户会持续调整规则,这样就导致之前配置好的SQL 和用户规则不一致,进而导致对应榜单对数失败,需要重新生成对应SQL,配置调度任务并重新执行对数操作。

在22年618和双11期间,主要是研发同学使用进行相关SQL调整和数据验证,需要3个开发人员持续3周,整体消耗人力45人日。

2.3、全自动化 - 解放人力

为了进一步解放人力消耗,将对数操作从半自动化升级到全自动化,需要实现以下内容

  1. 无需人工介入,自动生成SQL,自动执行SQL

  2. 执行用的SQL根据规则变化每日自动调整,保证SQL可以自动持续更新

完整的自动化对数方案如下图所示:

优化点细节:

1. 每天自动更新并存储SQL:榜单规则从手动页面导出变为每天自动抽取规则数据到HIVE中,进而每天自动更新目标SQL并将SQL存储到HIVE表中

2. 自动获取目标SQL并执行:将执行的目标SQL从HIVE中获取到后再执行SQL(使用了hive命令的一些特殊方法,预先获取到SQL再执行)

#HiveTask增加run_shell_cmd_out函数只返回标准流的内容在标准客户端执行如下python脚本
from HiveTask import HiveTask
ht = HiveTask()
ht.run_shell_cmd_out(shellcmd='hive -e "select *  from table;"')

该方案在23年618期间投入使用,恰逢研发团队交接,新团队毫无对数经验,且有其他业务同步进行,无法投入全量人力。通过全自动化对数,解放了研发人力投入,极大提高了大促备战效率。需要人力主要是测试同学对整个链路的调度任务进行维护性处理。

作者:京东零售 王恒蕾、戚琪

来源:京东云开发者社区文章来源地址https://www.toymoban.com/news/detail-617386.html

到了这里,关于竞速榜实时离线对数方案演进介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL高可用解决方案演进:从主从复制到InnoDB Cluster架构

    💂 个人网站:【 海拥】【神级代码资源网站】【办公神器】 🤟 基于Web端打造的:👉轻量化工具创作平台 💅 想寻找共同学习交流的小伙伴,请点击【全栈技术交流群】 当谈论MySQL高可用性解决方案时,从最初的主从复制到现代的InnoDB Cluster架构经历了长足的演进。这些解决

    2024年02月03日
    浏览(43)
  • 基于OpenCV+CUDA实时视频抠绿、背景合成以及抠绿算法小结

    百度百科上描述抠绿“抠绿是指在摄影或摄像时,以绿色为背景进行拍摄,在后期制作时使用特技机的“色键”将绿色背景抠去,改换其他更理想的背景的技术。”绿幕的使用已经非常普遍,大到好莱坞大片,小到自媒体的节目,一些商业娱乐场景,几乎都用使用。但是很多

    2023年04月09日
    浏览(61)
  • 东方树叶、元气森林竞速无糖茶饮

    近几年,随着气泡水、茶饮品的横空出世,零售饮料柜的全糖时代已经渐行渐远,无糖饮料开始占据着半壁江山。据统计,在2023年推出的41款茶饮料新品中,无糖茶的创新超过6成(总计有18个品牌推出25款无糖茶新品、36种口味)。 所谓无糖茶,也叫原味茶或者纯茶,是添加

    2024年02月08日
    浏览(22)
  • 618技术揭秘:探究竞速榜页面核心前端技术

    H5页面作为移动端Web应用的重要形式之一,已经成为了现代Web开发的热门话题。在H5页面的开发过程中,前端技术的应用至关重要。本文将探究京东竞速榜H5页面的核心前端技术,包括动画、样式配置化、皮肤切换、海报技术、调试技巧等方面,希望能够为广大前端开发者提供

    2024年02月11日
    浏览(41)
  • 简易版前端项目离线方案-接口及页面离线缓存

    为了避免后端流控、崩溃等异常而无法访问的情况,就需要将接口和页面的静态资源缓存在用户的浏览器本地,这样一来,就算后端服务不可达,前端依旧能有正常的页面显示操作反馈,大部分用户无法感知到系统出现了故障. 这个虽然听起来高大上,其实就是前端服务和后端服务分

    2024年02月03日
    浏览(42)
  • 618技术揭秘:探究竞速榜页面核心前端技术 | 京东云技术团队

    H5页面作为移动端Web应用的重要形式之一,已经成为了现代Web开发的热门话题。在H5页面的开发过程中,前端技术的应用至关重要。本文将探究京东竞速榜H5页面的核心前端技术,包括动画、样式配置化、皮肤切换、海报技术、调试技巧等方面,希望能够为广大前端开发者提供

    2024年02月12日
    浏览(40)
  • 基于 prefetch 的 H5 离线包方案

    对于电商 APP 来讲,使用 H5 技术开发的页面占比很高。由于 H5 加载速度非常依赖网络环境,所以为了提高用户体验,针对 H5 加载速度的优化非常重要。 离线包 是最常用的优化技术,通过提前下载 H5 渲染需要的 HTML/JS/CSS 资源,加载时直接使用本地缓存资源避免额外的网络请

    2024年02月08日
    浏览(51)
  • 如何选择离线数据集成方案 - 全量&增量

    1 前言 我在上一篇中介绍了实时集成与离线集成该怎么选择,接着介绍一下离线集成中的增量与全量的选择问题。 要设计方案,我们先分析一下数据产生的方式。我们把音视频流这种非结构化的数据集成从这里排除出去,因为这种音视频流一般都是专业的厂商和系统来处理。

    2024年02月02日
    浏览(47)
  • 仿VScode MDK背景配色方案

    效果如果所示 操作方法:备份后修改~/UV4文件夹下的global.prop,用以下的代码代替。 我之前发的一版配色方案,可以选一个用 http://t.csdn.cn/Bk1WC  

    2024年02月15日
    浏览(31)
  • 前端加载高德离线地图的解决方案

    核心是需要下载地图瓦片放在本地,脱离在线地图服务,实现离线加载地图。 使用BIGMap工具下载地图离线瓦片到本地 下载地址: http://www.bigemap.com/reader/download/detail201802015.html BIGEMAP GIS Office-全能版 需要注册试用版(免费) 试用版可以下载到16级别的瓦片,单次下载不能超过

    2023年04月08日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包