当前位置: 首页 > news >正文

性能平台数据提速之路

作者 | 性能中台团队

导读

性能平台负责MEG所有研发数据的管理、接入、传输、应用等各个环节。数据的提速对于公司报表建设、决策分析、转化策略效果都有至关重要的影响。重点介绍数据生产端与消费端提速落地实践,如何高性价比满足大数据生产端提速?如何在数据合规基础上快速满足数据报表提速?本文从业务优化视角整体介绍提速思路,包含5类优化路径,涉及18种提速方法。

全文3689字,预计阅读时间10分钟。

01 概述

1.1 性能平台

性能平台是APP性能追踪的一站式解决方案平台,为APP提供全面、专业、实时的性能分析服务与工具链。基于先进的端异常采集能力、实时反混淆技术等,提供实时性强、定位速度快、场景丰富的应用监控分析能力,并构建异常解决的闭环,在厂内移动端产品得以大范围应用,保障移动端用户体验,有效地减少了用户流失。

1.2 接入情况

已覆盖了厂内大多数重点产品,其中包括:百度APP全打点、小程序、矩阵APP等,数据指标如下:

  • 接入情况:几乎覆盖了厂内已有APP,小程序,创新孵化APP,以及厂外收购APP。

  • 服务规模:处理数据千亿/日、端到端入库时间毫秒级别、覆盖用户数6亿+。

1.3 名词解释

图灵:新一代数仓平台,在实时计算、存储能力、查询引擎、资源调度等均有提升。

UDW:Universal Data Warehouse,百度通用数据仓库,UDW用平台化的存储管理、数据管理、数据建设过程管理和元数据管理技术,提供全面、一致、高质量、面向分析的用户行为基础数据,百度早期数据仓库。

TM:是一个面向工作流的分布式计算系统,具有简洁、高可靠性和高吞吐量的特性,且易被方便地管理和监控。能够满足准实时(秒到分钟级)的流式计算需求,故障时可以做到数据不丢不重。

一脉:整合多种数据源的全业务自助分析工具,为分析师、PM、运营、RD各角色提供服务。一脉打破了原有报表、工具的定制限制,支持零SQL基础的同学可视化拼接查询条件、或直接SQL查询,同时提供多种通用分析模板供大家使用。

AFS:百度自研的Append-Only分布式文件系统产品,覆盖百度所有业务线,为开发者提供高性能、高可用、高可扩展的存储能力,广泛应用于离线计算、AI训练、数据备份等场景。

1.4 业务介绍

  • 覆盖范围:涵盖崩溃、卡顿、Flutter、端异常、日志回捞、网络库、磁盘等大部分性能场景,覆盖了公司多条产品线

  • 数据加工:提供实时、可靠准确的实时用户监测,秒级精确加工10万QPS吞吐数据。

  • 异常感知方面:事前线下检测,事中平台上线check机制、事后分钟级告警、感知并分析异常,快速止损;

  • 问题分析阶段:多维聚类、多维探测、全网热力图、日志调用链分析、日志回捞等工具,协助快速定位问题;
    图片

02 面临的问题

2.1 数据生产阶段

  • 数据技术基建落后;存储系统(厂版化无法迭代)、查询引擎(厂内引擎下线、查询速度较慢)、实时计算(不支持实时引擎)、资源调度(资源弹性弱)等能力不足;

  • 数据缺少服务分级;核心数据与非核心区分,服务级别保障机制不明确;离线数据流架构不合理、大量使用公共队列数据SLA无法保障。预期:实时流数据分钟级别SLA、准实时数据30分钟级别SLA、离线流数据小时级别SLA;

  • 数据无效/重复上报;部分点位下线、点位之间功能重合度高仍在上报导致数据总量存在虚高;数据报表冗余,无人访问或者业务重复;有限计算/存储资源供给到无效数据上。

2.2 数据消费阶段

  • 数据合规性难保障;数据缺少统一出口,数据消费同时存在接口、结果层数据库、中间层数据等系统中进行数据报表呈现,用于数据分析、报警监控。

  • 数据需求满足度低;报表类需求占我们需求整体接近50%, 数据需求需要点对点单独排期与开发,此研发流程投入大,需求交付速度慢。

  • 用户整体满意度低;数据实时性差:从数据产生到数据可被查询,中间存在较高时延(从数十分钟到天级别不等)查询较慢,SLA保障机制弱;数据需求交付慢:用户数据需求完全依赖数据团队产出,当有人力补充时数据维护/学习成本高,容易出现Delay,增加字段/修改数据源等会覆盖整个流程。

03 优化路径

3.1 新老基建对比

思路:基于流批一体的思路,通过TM引擎的实时解析平铺 + Spark动态索引导入图灵的方式代替QE引擎静态导入UDW,从而进行ETL阶段的提速,在该阶段提前将嵌套字段进行铺平形成图灵研发大表去除旧数据流中的中间表产出环节。

3.1.1 新老基建对比

图片

3.1.2 新老数据流

图片

3.2 数据服务分级

3.2.1 服务分级理论支持

  1. 提高服务效率:更好地了解用户的需求,提供更加精准、专业的服务,从而提高服务效率。

  2. 改善服务质量:服务分级可以让用户享受到更加贴近需求的服务,提高服务的质量和满意度。

  3. 优化资源配置:更好地根据不同的服务需求和服务对象,优化资源配置,提高资源利用率。

3.2.2 数据流/报表SLA

图片

3.3 数据点位/指标/报表治理

3.3.1 治理思路

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ezx2sPvX-1678155747102)(https://mmbiz.qpic.cn/mmbiz_png/5p8giadRibbO9765J2SfqzcZFneaEYktrhGsuY2DPzAUO42UkeViblKmWILWHbAzch1Hibk1w6dibcGZyHWD202KHWA/640?wx_fmt=png)]

3.4 数据合规性治理

3.4.1 背景介绍

2021年9月1日正式实施《中华人民共和国数据安全法》,涉及数据的出口管制、数据分类分级、数据合规性等一系列数据方面法律法规要求。数据消费流程增加势必会影响用户使用体验,如何在数据满足合规的基础上快速助力业务发展是我们的努力的方向。

数据BI平台/ 性能平台/其他数据分析平台数据接入方案大致分为如下几种:

1、直连存储引擎;

2、数据抽象API ;

3、数据自产自销;我们的业务特点连接双端研发、多方数据、QA等多方面角色对接,初中期适合API方式,慢慢收敛到数据自产自销。

图片

补充说明:

市面上的BI分析均支持API方式连接,基本已实现协议标准化。BI连接数据库查询方式,主要优点在于快速实现报表,但是在数据合规、数据缓存、负载均衡、多引擎数据聚合等能力上明显弱于API方式。

3.4.2 API优化点举例说明

图片

3.4.3 元数据查询协议说明

// Schema 数据获取能力描述
// 协议能力描述:
// 1. 数据查询能力,多引擎/标准SQL查询能力封装「如:palo/mysql/clickhouse/es-sql等」Query结构。
// 2. 数据聚合能力,具备单关键字数据组合&Merge能力,如果Len(Schema.Query)>1:具备数据聚合能力. 
// 3. 数据缓存能力,两层级缓存能力封装,Cache结构。
type Schema struct {// 元数据查询能力描述Query []Query `json:"query"`// 元数据整体缓存能力描述Cache Cache `json:"cache"`
}// Query 数据查询能力描述
type Query struct {// 结构化查询描述SQL string `json:"sql"`// 产品线信息, rpc_name = meta_{engine}_{prod}.toml, rpc通信具备超时控制、服务发现、高级负载均衡策略等稳定性提升能力Prod string `json:"prod"`// 存储引擎描述, 调用不同引擎能力Engine string `json:"engine"`// 单次查询缓存能力描述Cache Cache `json:"cache"`
}

3.5 数据自助化建设

3.5.1 背景介绍

通过近一年需求数据分析,报表类需求占整体数据需求的50%,如果实现数据报表自助化,需要按照数仓分层,可达成数据消费侧的需求快速交付与报表时效性提升。

自助化方式与数据流有关,针对实时数据流采用内存方式构建宽表,准实时/离线采用磁盘宽表构建。

图片

3.5.2 实时化自助化(内存)

内存自助化核心逻辑包含:

  • 日志协议Schema的解析;性能平台在业务方配置自助化任务之前,会采用离线任务天级别的将性能平台涉及到的UBC点位进行Schema的解析,即将UBC协议的Schema进行按层级全局展开,供业务方在界面上进行勾选。

  • 内存宽表的建立; 业务方在性能平台上完成自助配置化任务时,勾选自身需要清洗的UBC点位日志经过平铺后的协议字段,通过性能平台提供的通用函数解析(透传、时间函数、网络函数等)以及性能平台提供的自定义函数QLExpress进行原始协议的清洗,然后平铺成一张内存宽表。

  • 宽表数据聚合;业务方自身的需求往往有PV聚合、UV聚合、分位数聚合等一些常用指标的聚合计算,此时利用性能平台提供的聚合模板选择相应维度指标进行计算,形成最终的聚合结果指标。

  • UI配置、告警配置;业务方得到最终的聚合结果指标后,可以选择聚合后的维度和指标构建UI,例如折线图,表格等。同时,也可以根据聚合后的指标配置阈值告警。最终,通过上述的流程,业务方自助化的完成了数据流的建立、UI报表的生成,告警的配置。

3.5.3 准实时&离线数据自助化(磁盘)

以Feed研发宽表举例说明,通过数据分层强化数据层职责范围,每一层级数据量级明显减少,对用户侧结果数据报表提速明显。数据研发同学关注各层之间数据SLA与需求功能的满足;用户通过业务宽表、宽表说明文档、报表自助化平台实现报表自助化,来达成需求快速实现。

图片

04 未来展望

前文介绍了性能平台在数据生产与数据消费端的提速手段与具体案例,所做的一些努力。后面我们还会继续优化系统,如:

  • 数据时效性可说明,报表承诺时间与报表实际产出时间,各个阶段数据漏斗,达到时效性数据的沉淀与可分析。

  • 数据准确性可证明,在APP接入层与数据报表之间,通过构造预期Case与实际数据做对比,来判别系统数据准确性;

希望,性能平台在数据安全合规的基础上快速赋能支撑业务发展。

——END——

推荐阅读:

采编式AIGC视频生产流程编排实践

百度工程师漫谈视频理解

百度工程师带你了解Module Federation

巧用Golang泛型,简化代码编写

Go语言DDD实战初级篇

Diffie-Hellman密钥协商算法探究

相关文章:

性能平台数据提速之路

作者 | 性能中台团队 导读 性能平台负责MEG所有研发数据的管理、接入、传输、应用等各个环节。数据的提速对于公司报表建设、决策分析、转化策略效果都有至关重要的影响。重点介绍数据生产端与消费端提速落地实践,如何高性价比满足大数据生产端提速?如何…...

Dns域名解析服务器

前言 域名解析服务器的介绍 域名服务器的类型划分 DNS域名解析的过程 为什么需要DNS解析域名为IP地址? 通俗理解Dns DNS劫持 DNS污染 Dns面试经验 前言 DNS是一个应用层协议,用来获取域名对应的IP地址 域名解析服务器的介绍 DNS(Dom…...

关于 JavaScript 中的 Promises

在 JavaScript 中,Promise 是一个对象,它表示一个可能还不可用,但会在未来解决的值。Promises 用于处理异步操作,例如发出网络请求或访问数据库,其中结果不是立即可用的。如果你准备好了,我想开始我们的冒险…...

PMP考前冲刺题——错题集

3、 [多选] 采购部门需要向全球不同的供应商采购项目所需的各种商品,所有采购订单均己发送给供应商并已按要求处理。项目经理后来收到客户提出的变更请求。由于项目经理未及时通知采购部门,运抵的所有物品都是按原来的需求所提供。 项目经理本应做什么来…...

【C++】30h速成C++从入门到精通(多态)

多态的概念多态:通俗来说就是多种心态,具体点就是去完成某个行为,当不同的对象去完成时会产生出不同的状态。多态的定义及实现多态的构成条件多态是在不同继承关系的类对象,去调用同意函数,产生了不同的行为&#xff0…...

从proc文件系统中获取gateway的IP地址

在linux的命令行下获取当前网络环境的gateway的IP并不是一件难事,常用的命令有ip route或者route -n,其实route -n也是通过读取proc文件系统下的文件来从内核获取路由表的,但ip route是通过netlink来获取的路由表;本文将讨论如何编写程序从proc文件系统中获取路由表,并从路…...

【LeetCode】剑指 Offer(17)

目录 题目:剑指 Offer 34. 二叉树中和为某一值的路径 - 力扣(Leetcode) 题目的接口: 解题思路: 代码: 过啦!!! 写在最后: 题目:剑指 Offer …...

MySQL索引类型

MySQL 是最流行的关系型数据库管理系统,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。 索…...

你了解HashMap吗?

一、前言:面试过的人都知道,HashMap是Java程序员在面试中最最最经常被问到的一个点,可以说,不了解HashMap都不好意思说自己是做Java开发的。基本上你去面试十家公司,有七八家都会问到你HashMap。那么今天,就…...

我一个女孩子居然做了十年硬件……

2011年,一个三本大学的电子信息专业的大三女学生跟2个通信专业的大二男生组成了一组代表学校参加2011年“瑞萨杯”全国大学生电子设计大赛,很意外的获得了湖北赛区省三等奖,虽然很意外,但还是挺高兴的,毕竟第一次为喜欢…...

【Linux】编译器gcc g++和调试器gdb的使用

文章目录1.编译器gcc/g1.1C语言程序的翻译过程1.预处理2.编译3.汇编4. 链接1.2 链接方式与函数库1.动态链接与静态链接2.动态库与静态库1.3 gcc与g的使用2.调试器gdb2.1debug和release2.2gdb的安装2.3gdb的使用2.4gdb的常用指令3.总结1.编译器gcc/g 1.1C语言程序的翻译过程 1…...

高效能自动化港口数字化码头智慧港航,中国人工智能企业CIMCAI世界港航人工智能领军者,成熟港口码头人工智能产品中国人工智能企业

打造高效能自动化港口数字化码头智慧港航,中国人工智能企业CIMCAI中集飞瞳世界港航人工智能领军者,成熟港口码头人工智能产品全球顶尖AI科技CIMCAI成熟AI产品全球前三船公司及港口落地,包括全球港口/堆场智能闸口验箱,全球港口岸边…...

HTTP协议(一)

HTTP协议(一) 什么是HTTP协议 客户端连上web服务器后,如果想要获得web服务器中的某个web资源,需要遵守一定的通讯格式,HTTP协议用于定义客户端与web服务器之间通讯的格式;基于TCP连接的传输协议&#xff…...

计算神经网络参数量Params、计算量FLOPs(亲测有效的3种方法)

1.stat(cpu统计) pip install torchstat from torchstat import statstat(model, (3, 32, 32)) #统计模型的参数量和FLOPs,(3,32,32)是输入图像的size 结果: 问题:当网络中有自定义参数时&am…...

sizeof与一维数组和二维数组

🍕博客主页:️自信不孤单 🍬文章专栏:C语言 🍚代码仓库:破浪晓梦 🍭欢迎关注:欢迎大家点赞收藏关注 sizeof与一维数组和二维数组 文章目录sizeof与一维数组和二维数组前言1. sizeof与…...

Spark UI

Spark UIExecutorsEnvironmentStorageSQLExchangeSortAggregateJobsStagesStage DAGEvent TimelineTask MetricsSummary MetricsTasks展示 Spark UI ,需要设置配置项并启动 History Server # SPARK_HOME表示Spark安装目录 ${SPAK_HOME}/sbin/start-history-server…...

windows应用(vc++2022)MFC基础到实战(2)

目录向导和资源编辑器使用 MFC 应用程序向导创建 MFC 应用程序使用类视图管理类和 Windows 消息使用资源编辑器创建和编辑资源生成 MFC 应用程序的操作1.创建一个主干应用程序。2.了解即使在不添加你自己的任何一行代码的情况下,框架和 MFC 应用程序向导也能提供的内…...

记一次反射型XSS

记一次反射型XSS1.反射型XSS1.1.前言1.2.测试过程1.3.实战演示1.3.1.输入框1.3.2.插入代码1.3.3.跳转链接2.总结1.反射型XSS 1.1.前言 关于这个反射型XSS,利用的方式除了钓鱼,可能更多的就是自娱自乐,那都说是自娱自乐了,并且对系…...

BUUCTF-[羊城杯 2020]Bytecode

题目下载:下载 这道题是一个关于python字节码的。 补充一下相关知识:https://shliang.blog.csdn.net/article/details/119676978dis --- Python 字节码反汇编器 — Python 3.7.13 文档 手工还原参考:[原创]死磕python字节码-手工还原python源码-软件逆…...

《Uniapp入门指南:从安装到打包的全流程》

Uniapp是一款基于Vue.js的跨平台开发框架,可以快速构建出同时支持多个移动端平台和Web端的应用程序。本文将介绍Uniapp的基础知识和开发流程,帮助读者快速入门Uniapp开发。一、Uniapp的基础知识1.Uniapp的优势Uniapp的最大优势是可以快速开发同时支持多个…...

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...

国防科技大学计算机基础课程笔记02信息编码

1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...

R语言AI模型部署方案:精准离线运行详解

R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...

sqlserver 根据指定字符 解析拼接字符串

DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...

C++.OpenGL (14/64)多光源(Multiple Lights)

多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...

【从零学习JVM|第三篇】类的生命周期(高频面试题)

前言&#xff1a; 在Java编程中&#xff0c;类的生命周期是指类从被加载到内存中开始&#xff0c;到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期&#xff0c;让读者对此有深刻印象。 目录 ​…...

2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)

安全领域各种资源&#xff0c;学习文档&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具&#xff0c;欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...

LangFlow技术架构分析

&#x1f527; LangFlow 的可视化技术栈 前端节点编辑器 底层框架&#xff1a;基于 &#xff08;一个现代化的 React 节点绘图库&#xff09; 功能&#xff1a; 拖拽式构建 LangGraph 状态机 实时连线定义节点依赖关系 可视化调试循环和分支逻辑 与 LangGraph 的深…...

深度剖析 DeepSeek 开源模型部署与应用:策略、权衡与未来走向

在人工智能技术呈指数级发展的当下&#xff0c;大模型已然成为推动各行业变革的核心驱动力。DeepSeek 开源模型以其卓越的性能和灵活的开源特性&#xff0c;吸引了众多企业与开发者的目光。如何高效且合理地部署与运用 DeepSeek 模型&#xff0c;成为释放其巨大潜力的关键所在&…...