聊聊我们在业务链路升级中做的数据洞察

简介: 关于数据相关的词条很多,虽然有不同的定义,但是本质上是相辅相成,通常结合使用才能拿到结果。类比词条诸如 数据分析,数据挖掘, 数据洞察。本文将聊聊我们在业务链路升级中做的数据洞察。

image.png

作者 | 金铎
来源 | 阿里技术公众号

一 概述

关于数据相关的词条很多,虽然有不同的定义,但是本质上是相辅相成,通常结合使用才能拿到结果。

类比词条诸如 数据分析,数据挖掘, 数据洞察。

以下为wiki上的定义

  • 数据分析:是一种统计学常用方法,其主要特点是多维性和描述性。有些几何方法有助于揭示不同的数据之间存在的关系,并绘制出统计信息图,以更简洁的解释这些数据中包含的主要信息;
  • 数据挖掘:是一个跨学科的计算机科学分支。它是用人工智能、机器学习、统计学和数据库的交叉方法在相对较大型的数据集中发现模式的计算过程;
  • 数据洞察:这一项目前没有wiki词条,基于普遍认知,是基于数据分析和数据挖掘,结合业务场景后,围绕业务链路定义统一口径,进而更好的分析问题,并且能够进一步做策略改进。

三者分析手段本质上都是对数据进行加工获取信息,但是目标不尽相同,以下是我个人的理解。

  • 数据分析更侧重,基于人的理解动线,结合人对业务和数据的理解,产出分析结果。这里更加强调人的分析;
  • 数据挖掘同理数据分析,只不过角色从人变为了机器;
  • 数据洞察是在数据分析和挖掘的基础上,引入了业务场景的概念,梳理出围绕业务场景结果的影响因素和链路,目标是对抽象问题进行归因、拆分以及更好更快的形成改进方向。这个也是我们业务开发同学最有优势的地方。

二 核心要素

我们发现,数据洞察的理解,实际上是可以分为几个核心要素。

image.png

这里我们逐一来简要说明。

1 数据

干净有效的数据才是我们要的数据,否则会误导后续的结论。e.g. 登录链路因为是业务安全水位保证的第一环节,经常有来刷的流量,如何避免因为灰黑产的流量,影响后续的判断,这个也是重中之重;

2 业务场景

业务场景是区分数据洞察和其他数据分析方式的核心区别,也可能是业务同学区分bi分析的最大的价值点。任何分析策略都脱离不开对业务场景的理解,而不是单纯的理解数据。

定义“一次完整业务链路行为”是核心,围绕着一次行为链路,才能就链路分析有用的策略。

3 口径

口径是什么?我理解口径是在合理的数据维度和好的目标的基础上对业务场景的理解,口径上也会结合对业务场景的理解和对业务目标的理解。数据维度可能是多种多种的。

还是以登录举例,正常的理解,一个用户在一个设备上登录是正常情况,但是手淘会出现多账号登录同设备,这个也是常态数据特征,那究竟在定义登录成功率的时候,是使用设备维度(认为同一个设备只要有一个用户登录成功即算设备成功)还是使用用户维度(只看用户维度数据,不结合设备定义指标),也是需要考量的。

三 数据建设

1 数据的清洗是保证数据有效的手段

我们获得的各种打点框架和不同的数据源,可能维度和信息量都是不统一的,比如有的数据源有设备信息但是没有用户信息,有的数据源有用户信息,但是设备信息不完整;甚至同一个时间字段,格式也是不统一的。

这个时候就需要先对数据进行加工了,剔除脏数据,补充遗漏点位,加工出干净的单维度信息,并且保证各数据源数据加工出的数据维度和格式统一,比如标准的设备id或者用户id及时间等。

2 数据建设是补充也是演进

数据质量问题,不止要从数据的清晰看,也数据产生的点来看。如果数据有缺失或者不统一,数据清洗又搞不定,就需要进行开发了,比如数据库增加字段,打点框架增加打点逻辑。

数据建设是一个长期的过程,不止是为了补充现在要分析的内容,也是要形成一套标准的交付产物。更进一步,日常做需求和项目的时候,打点数据质量也是要考虑的,毕竟做需求上线不是结果,拿到业务目标才是结果。

四 业务场景

1 业务场景的定义

业务场景是在整个业务洞察中最特殊的一个环节。这个环节定义的好坏,直接影响了问题拆分结果的有效性。

不同的业务场景具备各自的特殊性,需要结合业务特性来分析。

按照目前我的经验来看,业务场景的定义也是有一些核心方法的。

  • 业务场景中,最终产物是谁?

还是以登录举例,登录的最终目标肯定是为了下发登录态,否则也没有人回来“玩一玩”登录,那围绕下发登录态的链路,就是我们想要的业务链路;

其他的业务也同理,比如订单的话,是围绕库存来跑;

  • 业务场景中,你需要分析的维度是多深;

这个也比较好理解,以上诉例子继续说,要看登录的业务链路的话,需要拆分多种登录方式不同的链路来看?还是说看一个总的登录链路就够了。

这个维度就只能看分析问题的层次了,一般在洞察初期,当然是维度越细越好,但是越分析往后,维度会逐渐上升,因为随着对业务的洞察,会发现有些维度虽然深了更完整,但是是分析不出问题的,也就是“过度分析”了。

  • 业务场景中,你要定义“一次完整业务行为”。

数据洞察区分于其他分析方式,最大的优势是在于结合了业务来分析业务本身,那直击业务结果的,一定是完整的业务链路。

这个点不举例不太好说明,举个例子,登录过程。

大家有想过打点会是什么样么,和一次完整业务行为会有啥差异么。

正常打点是下面这种样子的。

image.png

表1

这两条离散的打点就是一次完整登录行为,但是是基于rpc请求维度的表达。

2 结合业务场景定义的数据结构演进

打点数据描述了一个阶段性的结果。上面例子描述的,就是用户在2021-12-1 11:20:54发起了一次账密登录请求,但是因为环境不安全,安全挑战要求核实身份(比如发短信核实),用户操作了核身操作,在2021-12-1 11:21:20发起了免登,下发了登录态。

这个就是一次登录行为。业务洞察的核心也是围绕这个点进行。

假如我们的分析维度,是总的登录维度或者分登录方式的登录维度分析,这个两条数据的打点其实就不适合我们,我们仅需要登录方式,最终结果,时间以及设备id就够了。

image.png

表2

或核身没有通过

image.png

表3

但是我们也会发现,这个数据描述的行为并不完整,比如表2并不能描述登录过程经过了核身这个特性。

这个时候,我们就需要数据结构进行下一个阶段的演进。

我们引入了statustag来描述路径。

statustag格式:0^0^12|0^1^abcde.

前后经过|分割为两种格式,第一个格式为bitmap,表示0版本;第二个格式为字符串,表示1版本格式,字符串为经过的未加到bitmap的节点(埋点毕竟不是强要求,总有需求上线后,没有加bitmap)。

这个tag描述经过的路径为,经过bx1100结果,经过了一版本的4和8的节点,和二版本的abcde节点。

有了这个tag,就可以描述更多的信息。

3 业务场景数据的可视化表达

单纯的数据并不容易洞察,也不是长期运营治理的合理方式。这个时候我们就需要可视化来搞事情。

可视化的内容包含我们想要表达的内容,比如漏斗,比如曲线。

目前可视化表达常见的是漏斗和报表。

  • 漏斗举例

image.png

图1

做漏斗很麻烦,需要一个点一个点手动定义。但是漏斗对初期理解链路,分析问题益处非常大。

这个时候我们需要的,是可以通过结构化的数据源,来快速生成可视化漏斗。

我们可以通过生成数据的时候就指定约定来快速生成结构化数据。

  • 基于状态机+约定打点
  1. 引入状态机变化记录打点日志;
  2. 结合结构化的画图能力,定向输出约定日志,动态画图
  • 状态机的核心要素

1.statusTag记录路径信息;
2.status和old_status记录节点上下游信息;
3.depth记录节点深度;

最终产出的一次登录行为登录数据”->"最终可以产出如下的一次登录行为样例数据(数据非真实用户数据)

image.png

五 口径

口径是基于数据和业务场景的产出结果。口径也是最重要的点,口径代表了我们基于数据和业务场景对业务结果的理解,比如登录的口径,在财年初定义,登录成功率从9x%提升到9y%,这个提升空间,也是根据数据来计算的。

1 口径不要经常变动

口径一旦定义下来,就不要经常变动。因为一般定义口径是最难也是最耗时的,定义口径的时候,一般我们已经完成了对目标的拆解,机会的洞察和最终的测算。

2 口径并不一定是单一口径

除了上诉特性外,口径也会有单口径和多口径,一般都会同时存在,比如登录过程,在一个总的口径基础上,哪怕是一次登录行为,我们也会拆分多个业务阶段。

还是以登录举例,我们把用户从进入页面开始,到发起登录行为,定义为意愿口径,从登录行为开始到登录结果,定义为成功率口径。这两块要解决的问题是不同的,揉到一起,会导致问题变得复杂,不利于分析。

多口径也有一个好处,我们可以做阶段性的工作,在不同的阶段,处理多口径中其中一部分的链路升级。

3 口径维度定义

口径维度定义需要结合场和业务的特性,哪怕是同一个业务链路,可能在不同场中,不同人群定义,也是不同的。

这块不好说明,举个例子。

我们C端口径定义上,是设备维度,因为C端用户,天然存在薅羊毛行为,我们会认为一个设备的登录成功,对于C端就是有益处的。

但是同样是登录链路,B端定义上,就是用户维度的,因为B端商家的个体价值都很大,而且不太存在类似C端薅羊毛的行为,用户维度能让我们更好的看到用户行为,以便做体验上的优化。

六 小结

在数据洞察方面,我们也还在学习和实践的路上,并在这条路上已经取到了一定的结果,但是未来空间还是很大。这条路对于业务开发是一个有优势的路,而且业务平台作为业务场景的丰富度上,也是独具优势,我们可以在数据洞察做的事情上,更加自由。欢迎大家来一起讨论,也欢迎大家来一起探索。

数据洞察是业务中台赋能业务的有力工具,对业务产出数据洞察能力,也是我们一个非常大的命题。

商业跑得快,业务中台可信赖。


弹性计算基础知识

弹性计算是把计算力变成普惠的公共资源,让不同体量的用户任何时候都能用亲民的价格享受到高可用、高性能、高效率的基础IT计算服务,所以可以说弹性是云计算的核心能力。本课程对弹性的重要性、弹性的定义、阿里云如何做弹性等。

点击这里,查看详情。

相关文章
|
4月前
|
数据采集 人工智能 监控
61_自定义基准:构建专属评测体系
在大型语言模型(LLM)快速发展的今天,通用基准测试如MMLU、C-Eval等已成为评估模型能力的重要工具。然而,随着LLM在各个行业的深度应用,通用基准往往无法准确反映模型在特定领域、特定任务上的真实表现。2025年,构建企业或组织专属的自定义评测基准已成为大模型落地应用的关键环节。
|
Web App开发 编解码 监控
防御性设计和开发
“防御性编程(Defensive programming)是防御式设计的一种具体体现,它是为了保证,对程序的不可预见的使用,不会造成程序功能上的损坏。它可以被看作是为了减少或消除墨菲定律效力的想法。”
1351 0
防御性设计和开发
|
6月前
|
人工智能 JSON 监控
从零开始构建AI Agent评估体系:12种LangSmith评估方法详解
AI Agent的评估需覆盖其整个生命周期,从开发到部署,综合考量事实准确性、推理路径、工具选择、结构化输出、多轮对话及实时性能等维度。LangSmith作为主流评估平台,提供了一套全面的评估框架,支持12种评估技术,包括基于标准答案、程序性分析及观察性评估。这些技术可有效监控Agent各组件表现,确保其在真实场景中的稳定性和可靠性。
2907 0
从零开始构建AI Agent评估体系:12种LangSmith评估方法详解
|
架构师 C++ 开发者
团队管理|如何提高技术Leader的思考技巧?
技术Leader是一个对综合素质要求非常高的岗位,不仅要有解具体技术问题的架构能力,还要具备团队管理的能力,更需要引领方向带领团队/平台穿越迷茫进阶到下一个境界的能力。所以通常来说技术Leader的技能是虚实结合的居多,繁杂的工作偏多。为此我把自己在工作中经常用到的思考技巧也做了一个整理,算是对《关于技术能力的思考和总结》中提及第三阶段的补充。
1703 1144
团队管理|如何提高技术Leader的思考技巧?
|
存储 程序员 项目管理
六年团队Leader实战秘诀|程序员最重要的八种软技能
笔者在带团队的六年中发现,程序员们在职场都有一个共同的困扰:“好像写代码都没什么问题了,日常工作基本上都是应付业务需求的开发,好像找不到其他的更大的附加价值了,我应该找一些什么样的发力点才能让我的价值更突出呢?” 。本文将和大家聊聊程序员的软技能。
六年团队Leader实战秘诀|程序员最重要的八种软技能
|
设计模式 IDE Java
谈谈过度设计:因噎废食的陷阱
写软件和造楼房一样需要设计,但是和建筑行业严谨客观的设计规范不同,软件设计常常很主观,且容易引发争论。
3215 4
谈谈过度设计:因噎废食的陷阱
|
设计模式 Java 数据安全/隐私保护
理论与实践:如何写好一个方法
个人认为一个好的方法主要表现在可读性、可维护性、可复用性上,本文通过设计原则和代码规范两章来讲解如何提高方法的可读性、可维护性、可复用性。这些设计原则和代码规范更多的是表现一种思想,不仅仅可以用在方法上,也可以用在类上、模块上。下面通过具体的例子来讲解。
理论与实践:如何写好一个方法
|
存储 前端开发 关系型数据库
浅谈DDD中的聚合
在我看来并不是MVC的基础上增加领域层,使用充血模型,解耦基础服务,我的代码就符合DDD了。
浅谈DDD中的聚合
|
JavaScript Serverless 定位技术
从业务开发中学习和理解架构设计
在设计代码目录划分方案的过程中,看了一些工程结构设计的资料,读了一些关于架构设计的书,对于架构有了一些理解。本文是对这段学习和任务完成过程的思考和沉淀。希望能够解答“架构到底是什么?架构和业务之间的关系?”,“好的架构的设计出发点是什么?好的架构应该是什么样的?”这几个问题。
从业务开发中学习和理解架构设计
|
运维 监控 容灾
安全生产-系统稳定性建设
安全是产品的底座,是体验的基础,也是企业的一项核心竞争力。安全生产是一项系统性的工作,同时也是一件比较琐碎的事,需要做方方面面的考虑尽一切可能保障系统安全稳定运行。
安全生产-系统稳定性建设

热门文章

最新文章