客户案例:大淘系模型建设实践(二)| 学习笔记

简介: 快速学习客户案例:大淘系模型建设实践。

开发者学堂课程【智能数据建模训课程 :客户案例:大淘系模型建设实践(二)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/1223/detail/18315


客户案例:大淘系模型建设实践


三、治理规范

针对原因会有架构规范和流程机制。架构规范和流程机制要背靠产品工具、工具平台做,用数字化驱动治理。既然有生命周期,那么核心是进行存量盘点,对于新增采取管控的方式,对于核心问题进行长期、日常的数字化驱动治理,以解决三个模型问题。

图片17.png

下面是规范和产品工具相关的问题。首先是规范问题。去年核心强调了数据视角,今年则是业务视角。业务对于数据核心有四个要求:一是对研发有交付效率,二是要有产出时效,三是质量要可靠,四是成本要可控,对于小业务成本可控,但对于淘气来说成本要求较高。在 onedata 存在的问题是虽然定了每个层次的作用,但是每个层次的分工和定位不清晰。因此针对这部分问题做了一个清晰的分工。第一是应用层,其核心在于专注于支撑业务,关注效率、交付时满足口径一致性要求、机器资源和产出时效要求需要的稳定性保障。核心的三个策略分别为用集市规范控制复杂度、构建一个轻度的中间层确保单集市口径统一、扁平化设计确保稳定。

图片18.png

在公共层部分,其核心是在其中产生数据效率。由于公共层有复用性,主要关注应用性和稳定性两部分。在应用性层面首先要规范  因为以活动建模为主,活动建模中核心应用的逻辑是宽表式的设计;另外是工程要有一定通用性的逻辑,核心要有适当节偶以确保核心内容的稳定。 ODS 是所有的入口,核心是保证整个数据的合规高效。这部分有两个核心,一是效率和稳定的问题,主要是工具化;另一个是性能稳定,主要是达到一定程度后,戳水性能要转化成提地莫卷的方式。右侧是架构的标准和规范。

下面是应用层的划分原则,着重讲解一个。整个集市的核心是满足特定部门或特定用户的需求,这部分需求有特征性,组织协同分工有对应的协同抓手,看到对应的平台侧,其核心是控商、控品和用户运营。对于行业、商家、消费者的核心内容进行调控。供应端是商家、品牌及品牌方对应的集团,做分析和控制,且也会往核心的抓口机型相应的组织分工,在主视角的逻辑下对集市进行构建。整个集市的划分原则核心是以业务场景或者服务对象作为划分原则,需要统一标准,最好符合 MECE 原则。

图片19.png

下面是机制流程,核心是公共层和应用层之间的共建机制。应用层研发的痛点在于公共层响应效率低;公共层研发痛点在于如果统一承接开发工作,研发资源不足。核心原则是公共层开放共建,事后审计治理;应用需求驱动,设计开发共建,公共层研发统一运维保障。左侧整个流程有需求驱动,判断哪些进入公共层研发主导,核心应用和核心工程是由公共层研发主导。临时增加字段或非核心工程的建设由应用层研发和主导。建设后当有复用性的情况下再交还给公共层研发进行统一用维,因为用应用层研发进行统一运维时对于其他场景无感,从而影响应用层的研发效率。

图片20.png

已有流程规范机制后,下面研究怎样保证工程规范。首先 onedata 部分公共层已有数据规范,应用层去年做了集市主题域的规范,因此已有数据体系的结构。核心有两部分,核心是和 dataworse 做工件,首先要对表命名管控以确保规范性,其次淘系是多空间数据体系的构建,因此需要统一的设计空间。  

图片21.png

第二明细表有中英文的命名规范,左侧是建模空间,

图片22.png

在有目录和建模空间情况下,

图片23.png

下图左侧圈起来的部分还有目录结构和数据域的规范,有利于数据体系的规范管理和后续找数,这部分核心是提升规范性要求。

图片24.png

下面讲解设计方面。设计流程的研发核心是首先有一个研发 ODS 表,这部分表到公共层后做冗余。因此公共层首先要将 ODS 表导入,再将需要冗余的属性冗余进来,基于核心流程来看,首先去做表定义,接着对针对性场景做对应的冗余。例如下图中有对应的表,需对其做对应的冗余。对于 ODS 字段做标准化命名可得出对应的表结构。原本设计纯手工效率低,需在线下 Excel 表格中设计,经过大量手工操作,建表还需人工编写 DDL ;但现在已使用线上化工具,可以自动导入字段,一键自动建表,也可自动生成质量规则。之前有直接引用的 ODS 表,因此可直接找到对应字段的来源,从而生成对应的代码,可使整个流程十分流畅,将和 dataworse 合作在规范架构中与设计开发及后续用维保障流程打通,这样可提升公共层的研发效率。整个过程效率较高,可直接引用。上面提到核心工程怎样被用户感知,我们已有归还的目录结构,将目录结构的信息在数据地图中传给消费者,这是生产者与消费者双向的第二层联通。联通相当于将目录结构拓传出去,使消费者快速找到自己所需表,方便用户使用大淘系。

图片25.png

下面分析治理方面。治理必须数字化量化,否则会出现问题。基于此部分评分标准,构建出表集合模型,分为整体评分、各个团队的评分及对应数据域的评分。

图片26.png

跨团队协作后每个域都有核心负责人,这些负责人看待问题并对问题分类并标签,由此标签可以集成到各个环节,下面是整个核心的机制图。首先是评估,再用数据看板评估问题,这些问题会形成标签,标签会在第一个环节,例如是一个核心的公共层模型,会在搜索里加权,若专家经验判断节点或表要下线,会在搜索里降权,同时对于权限会管控,将数据透传到专辑中去,在搜索中减少推荐。在事前是将核心模型被快速感知,有问题的模型要提醒消费者不要引用。过程部分目前还未开始,但会持续构建,此部分核心是开发互层,由于 IOS 效率较低,在下一次应用节点会提醒不要引用 ODS ,切换层对应 DWD ;如果是更理想的状态会自断血缘,提醒此串代码如何修改,即在下一次迭代时做开发助手推荐。另一方面是做规范和治理项管控,在命名规范和治理项中对其进行改造,对于核心应用会做针对性的推动治理。

图片27.png 

四、未来规划

未来规划分为三部分,首先是应用层效率。从数据体系来看应用层体量最大,大部分研发工作都投到应用层。问题以是应用层缺少指导规范, onedata 核心侧重于公共层,包括事实表的构建;二是运维效率;三是因为要以效率为主,应用层在内部都没有很强的应用规范,今年要争取效率和规范的平衡。另一部分是架构规范。分成标准已定,但对于研发流程来说没有明细的规范,这部分会继续向下拆解和细化。基于此部分设计、运用、开发、运维、变更和治理,这部分细化后会产生规范管控能力。最后一部分是产品工具提效,这部分要与 dataworse 共建。虽然应用层有一定的自动建模能力,但相比传统的应用层设计开发效率有所降低,因此今年会尽量将此功能抹平;测试是在线下测试,如有缺失会补齐;因为企业有运维能力,会将智能化运维能力提高;事中数据治理能力构建,即开发助手能力;再次是事后治理能力, dataworse 在团队中只是其中一个平台,还有其他的售后治理平台;最后是数据地图,会把血缘的数据贯穿到研发流程的工具平台中以提升整体效率。

图片28.png

问题回答:

1、核心公共层建设应该是从上到下还是从下到上?

答:这是一个相结合的问题,从上到下和从下到上的逻辑,应从需求出发,避免对工程过度设计。首先从应用层出发,有复用性后再做公共层,但公共层的设计面向业务过程,从而是从下到上的过程。因此需求是从上到下的过程,设计是从下到上的过程,两者相结合。

2、数据标准到数据模型的过程中如何管理数据约束?

答:数据标准在传统企业中有强诉求,但阿里内部相对较弱一些。因为阿里2014做了双中台,在业务中台部分已做了很好的集成,传统产业在原系统没有很好集成的情况下才会有很强的数据标准要求,这种情况下要基于内容层面的管控。 DQC 是一个简单的功能,但要集成数据标准的要求、做一层集成幻化才能提升此功能。

3、多 BU 公共层模型建设规范是否需要统一的组织审核及如何量化评估其价值?

答:要有规范统一的大前提,因为数据规范是为了易于流通,进而产生价值,这种情况下必然要做统一规范,但并不意味着全部要做统一规范,不同行业例如电商、出行及本地生活目标业务过程、目标体系都不相同,因此在这种情况下统一规范会影响效率,所以应分开分析。

4、怎样判断应用层的数据要做到公共层?

答:这里会有一个 DWS 标准,从专家经验来看,电商业务交易环节可能会有,在下游直接构建一个场景;但如果是新建玩法类,业务连线不强的情况下构建工程会导致过度设计。因此有些需要事后下沉,有些是由专家经验判断进行下沉,核心基础标准在于复用性,若无复用性下沉都属于过度设计,因为公共层的设计成本寓于其中。

5、命名规范具体怎样实施?数据开发在建模前要先定义词根和字段名吗?

答:需要拆开分析。 DWD 层面向业务过程,在数仓规范内有统一的模型设计,因为每个业务过程的新增都是有限性的,因此这部分会先定义,定义后直接引用。自定义的词根千变万化,便于开放。 DWS 层分为两个逻辑,首先是维度,维度建模时一个整线架构的逻辑,具有一定相对确定性,一个业务新增实体十分有限,此部分业务可被枚举,但其中的派生指标在设计过程中让 dataworse 自动定义,因为派生指标变化量很大,因此不能全部枚举做先定义后开发,会区分开原子指标修饰词、业务过程,核心维度会先定义后开发,对于派生修饰词会在设计过程中自动定义。

6、在应用层如何保障字段同名但口径不一致或口径一致但字段不一致的问题?

答:应用层实际很难管控,命名和定义不可能全部统一,除非所有指标都是先定义后开发的。应用层有80%指标是个性化的,20%是共性的。这种情况下如果全是先定义后开发,没有复用性的场景,会导致整体效率下降。另一个逻辑是既然整个过程是演变过程,模型首次产生的标准命名不规范,下沉到公共层才会形成标准,因此只能保证核心指标90%规范和定义是统一的,但另一部分无法全部管控。

7、跨集市依赖下沉到公共层的必要性如何?

答:跨集市依赖有业务效率,短期内没问题;但从长期来看,当集市内部已不再使用应用,但下游集市仍有人使用时,应用无法下架,这会导致成本浪费,变更过程中产生关联影响,下游出现的故障需要自己负责,下次迭代时又会考虑下游。在新增环节效率高,但后期变更、运维和治理效率低,因此从长远来看应规避跨集市依赖。

相关文章
|
NoSQL Linux
gdb调试产生code文件以及遇到的“file format not recognized”问题解决
gdb调试产生code文件以及遇到的“file format not recognized”问题解决
2170 0
|
9月前
|
消息中间件 NoSQL Java
拒绝频繁写库!SpringBoot 整合 BufferTrigger 实现高性能“流量聚合”
本文介绍如何用SpringBoot整合BufferTrigger实现高性能流量聚合,解决高并发下频繁写库的痛点。通过快手开源的BufferTrigger组件,可将大量数据库操作合并为批量执行,显著提升I/O效率,适用于计数、埋点、状态同步等场景,兼具高性能与低延迟。
773 145
|
5月前
|
人工智能 Ubuntu JavaScript
2026年4月阿里云无影云电脑+本地全平台部署OpenClaw(Clawdbot) 集成Skills保姆级教程
2026年4月,OpenClaw(Clawdbot)凭借“云端+本地双部署、Skills生态无限扩展”的优势,成为AI智能体领域的热门选择。阿里云无影云电脑提供预装OpenClaw的专属镜像,无需复杂环境配置,新手也能一键启动;本地部署则支持MacOS、Linux、Windows11全平台,满足隐私与离线需求。本文将完整拆解**阿里云无影云电脑部署**、**本地多系统部署**、**Skills集成**全流程,同步补充**新手零基础阿里云轻量服务器部署OpenClaw(Clawdbot)简单步骤及避坑指南**,所有代码可直接复制执行,全程不含营销词汇,帮助新手快速搭建全能AI助手。
443 0
|
8月前
|
机器学习/深度学习 JSON 算法
大模型对齐实战:从原理到代码,透彻理解PPO微调全流程
* **PPO是什么**:一种稳定、高效的强化学习算法,通过“近端”优化和“优势”估计,在追求高奖励的同时,用KL散度约束策略不偏离太远。 * **PPO微调做什么**:利用奖励模型(代表人类偏好)作为引导,优化语言模型的生成策略,使其输出更对齐人类价值观。 * **四大核心**:**Actor**(被优化者)、**Critic**(价值评估者)、**Reward Model**(评分官)、**Reference Model**(守门员/底线)四者协同工作。 * **核心价值**:解决了SFT难以处理的复杂、动态、多目标权衡的对齐问题,是打造如ChatGPT般“好用”模型的关键
|
安全 Java API
【性能与安全的双重飞跃】JDK 22外部函数与内存API:JNI的继任者,引领Java新潮流!
【9月更文挑战第7天】JDK 22外部函数与内存API的发布,标志着Java在性能与安全性方面实现了双重飞跃。作为JNI的继任者,这一新特性不仅简化了Java与本地代码的交互过程,还提升了程序的性能和安全性。我们有理由相信,在外部函数与内存API的引领下,Java将开启一个全新的编程时代,为开发者们带来更加高效、更加安全的编程体验。让我们共同期待Java在未来的辉煌成就!
492 11
|
缓存 API 开发工具
有关Unity使用Rider编辑器无法弹出代码提示的有效解决方法
【11月更文挑战第13天】在 Unity 中使用 Rider 编辑器时,若遇到代码提示无法弹出的问题,可以通过检查 Rider 设置(如自动补全选项、Unity 插件安装、索引设置)、Unity 项目设置(如解决方案正确关联、脚本导入设置)以及环境和依赖关系(如 .NET SDK 版本兼容性、Unity 和 Rider 版本兼容性)等方面进行排查和解决。
2783 5
|
安全 NoSQL Java
10万条记录生成兑换码的实战方案
【5月更文挑战第27天】项目实战,介绍一次生成10万条记录兑换码的功能,由于公司需要生成大批量的兑换码,单次生成的兑换码超过10条记录。本文用于介绍相关设计方案:
1437 2
|
缓存 安全 应用服务中间件
Nginx 反向代理
Nginx反向代理概述 关于正向代理和反向代理,我们在前面的章节已经通过一张图给大家详细的介绍过了,简而言之就是正向代理代理的对象是客户端,反向代理代理的是服务端,这是两者之间最大的区别。 Nginx既可以实现正向代理,也可以实现反向代理。 我们先来通过一个小案例演示下Nginx正向代理的简单应用。 先提需求: (1)服务端的设置: http { log_format main 'client send request=>clientIp=$remote_addr serverIp=>$host'; server{ listen 80; server_name lo
501 1
|
Java API 开发者
Java中的并发编程:解锁多线程的潜力
在数字化时代的浪潮中,并发编程已成为软件开发的核心技能之一。本文将深入探讨Java中的并发编程概念,通过实例分析与原理解释,揭示如何利用多线程提升应用性能和响应性。我们将从基础的线程创建开始,逐步过渡到高级的同步机制,并探讨如何避免常见的并发陷阱。读者将获得构建高效、稳定并发应用所需的知识,同时激发对Java并发更深层次探索的兴趣。
216 2
Linux 命令 `chown`:改变文件或目录的所有者
`chown` 是 Linux 中用于改变文件或目录所有者的命令。基本语法是 `chown [选项] 新所有者 文件或目录...`。常用选项包括 `-R` 递归更改、`-c` 显示详细信息和 `-v` 显示详细处理。示例:将 `example.txt` 所有者改为 `user2` 使用 `chown user2 example.txt`;更改目录 `mydir` 及其内容所有者为 `user2` 使用 `chown -R user2 mydir`。注意,通常只有 root 或当前所有者能更改所有者,且需谨慎操作以避免影响权限。