OneData体系架构详解

news2025/1/24 3:00:33

        阿里巴巴的 OneData 体系架构方法论,主要分为三个阶段:业务板块规范定义模型设计。每个阶段的核心目标是确保数据的高效管理、共享与分析能力。

一. 业务板块(Business Segment)

业务板块是OneData体系架构中的第一步,重点是将企业的各个业务领域进行划分,使得每个业务单元能够独立管理自己的数据,确保数据之间的独立性和一致性。业务重叠性较小的企业可以学习。

  • 目标:根据业务领域的不同需求,将企业的数据划分为几个相对独立的模块或板块,每个板块都有清晰的业务目标,且这些目标之间的重叠度较低。这样有助于简化复杂的业务需求和数据处理,减少数据交互中的复杂性。

  • 划分依据:业务板块的划分一般是根据 业务属性数据的业务重要性 来进行的。不同的业务板块会独立处理与之相关的数据,可以是基于产品、客户、财务等维度进行拆分。例如:

    • 用户板块:关注用户行为、用户画像、用户生命周期等。
    • 商品板块:处理商品分类、库存、定价等相关信息。
    • 交易板块:涉及订单、支付、退款等业务。

二. 规范定义(Standard Definition)

        规范定义阶段,以 维度建模理论 为基础,通过构建 总线矩阵,划分和定义 数据域业务过程维度度量/原子指标修饰类型修饰词时间周期派生指标 等。这些要素的定义和设计,确保数据能够被统一规范、标准化地存储和使用。

        具体来说,规范定义包含以下几个关键要素:

1、业务过程(Business Process)

业务过程是指企业中的某些关键业务活动或事件,它通常代表了一个数据生成的过程。例如:

  • 订单生成过程:表示一个订单从创建到支付完成的业务流程,涉及多个操作(如下单、支付、发货等)。
  • 用户行为分析过程:表示从用户登录到购买、浏览行为的全过程。

在维度建模中,业务过程通常对应于事实表,记录了与这些过程相关的所有度量和事件数据。

2.数据域(Data Domain)

数据域指的是数据的一个逻辑划分,它描述了不同业务模块中数据的范围。例如:

  • 销售数据域:涉及销售相关的所有数据,如订单、交易、付款等。
  • 用户数据域:涉及用户的基本信息、行为数据等。
  • 财务数据域:涉及公司财务状况的数据,如收入、支出、利润等。

数据域的划分帮助确保每个业务板块的数据具有独立性,同时在后续的数据处理和建模中具有清晰的边界。

3. 维度(Dimension)

维度是描述业务过程的多个方面的属性,通常用于对事实数据进行分组、筛选和排序。在OneData架构中,维度设计基于业务需求和分析场景,例如:

  • 时间维度:用于表示事件发生的时间,通常包括年、季度、月份、周、日等。
  • 产品维度:描述产品的各类属性,如品类、品牌、型号等。
  • 客户维度:描述客户的属性,如年龄、性别、地域、消费习惯等。

维度表提供了对事实数据的多角度分析支持。

4. 度量/原子指标(Metrics/Atomic Measures)

度量原子指标是用来衡量某个业务过程的具体数据点,它通常是数值型数据,如销售额、交易量、利润等。原子指标是最基本的、不可进一步拆解的数据度量。它们通常出现在事实表中。

例如:

  • 销售额:记录一笔交易的销售金额。
  • 交易量:记录某段时间内发生的订单数量。

这些度量值是数据仓库分析的基础。

5. 修饰类型和修饰词(Modifiers)

修饰类型修饰词指的是数据的描述和附加信息,用于对度量进行细化或限定。修饰类型通常用于进一步描述某个度量值的维度或范围,修饰词则用于细化这些描述。例如:

  • 修饰类型:客户类型(新客户、老客户)、时间类型(周、月、年)等。
  • 修饰词:例如“按地区分布”、“按时间范围”等,用于对度量进行更精确的筛选。

通过修饰,可以使分析更加细粒度,帮助用户对复杂数据进行深入的探讨和比较。

6. 时间周期(Time Period)

时间周期定义了业务分析中的时间范围,时间是维度建模中非常重要的一部分。时间周期用于定义数据的时间切片,例如:

  • 日周期:按天统计。
  • 月周期:按月进行数据汇总。
  • 年周期:按年进行数据统计。

时间周期的定义确保了数据可以在不同的时间维度上进行分析。

7. 派生指标(Derived Metrics)

派生指标 = 一个原子指标 + 多个修饰词(可选) + 时间周期

其中:

  • 原子指标:是最基本的度量单位,通常是对某个业务过程的数值衡量,如“支付金额”、“订单数量”。
  • 修饰词:用于限定或细化数据的范围,通常与维度相关,例如“海外买家”、“新客户”、“按地区分布”等。
  • 时间周期:限定数据的统计时间范围,如“最近1天”、“上个月”、“今年”等。

举例说明

  1. 原子指标:支付金额。表示交易过程中用户支付的金额。

  2. 修饰词:海外买家。这个修饰词限定了分析的业务对象,指的是来自海外的用户。

  3. 时间周期:最近1天。这个时间周期限定了数据的时间范围,指的是过去24小时内的数据。

派生指标的实例

  • 最近1天海外买家支付金额

    • 这里,“支付金额”是原子指标,“海外买家”是修饰词,用于限定买家的地区,“最近1天”是时间周期,用于限定数据的统计范围。
  • 上个月的产品A销售额

    • “销售额”是原子指标,“产品A”是修饰词,限定了分析的是某个特定产品的销售数据,“上个月”是时间周期,限定了统计的时间范围。
  • 去年全球用户订单数量

    • “订单数量”是原子指标,“全球用户”是修饰词,限定了分析对象是全球的所有用户,“去年”是时间周期,限定了数据统计的时间。

三、派生指标分类

派生指标可以分为以下三类:事务型指标存量型指标复合型指标

1. 事务型指标

定义:

事务型指标用于衡量业务活动的数量或金额。这类指标通常反映动态的业务行为,例如用户的操作、系统的交互。

特点:

  • 数据是随着时间发生变化的。
  • 需要维护原子指标修饰词,在此基础上构建派生指标。
  • 时间周期通常为明确的时间范围,如“今天”、“最近1周”。

例子:

  • 新发商品数:当天新增的商品数量。
  • 订单支付金额:某时间段内支付成功的订单金额。
  • 新增注册会员数:当天新注册的用户数量。

2. 存量型指标

定义:

存量型指标用于衡量实体对象(如商品、会员、账户等)某些状态的累计结果。这类指标反映的是一个时刻的统计值。

特点:

  • 数据通常是历史累计到某个时间点。
  • 需要维护原子指标修饰词
  • 时间周期一般是“历史至当前时间”。

例子:

  • 商品总数:当前系统中所有商品的总数量。
  • 注册会员总数:截止到某时间点注册的会员总数。

派生指标实例:

  • 截至2024年1月1日的注册会员总数
  • 当前有效商品总数

3. 复合型指标

定义:

复合型指标是基于事务型指标和存量型指标通过一定的计算复合而成。这类指标通常用于衡量转化率或综合性能。

特点:

  • 数据是由事务型和存量型指标组合而成。
  • 有些需要创建新的原子指标,有些可以直接在事务型或存量型指标的基础上加修饰词
  • 通常表现为比例、效率或转化类的指标。

例子:

  • 下单转化率:浏览UV到下单买家的转化率。
  • 库存周转率:存货的周转次数(公式:销售额 ÷ 平均库存金额)。
  • 订单支付成功率:支付成功的订单数占总订单数的比例。

派生指标实例:

  • 最近1个月某商品类目的下单转化率
  • 截止当前,商品库存周转率为3次/月

四、模型设计

 

基于阿里巴巴的数据分层架构,模型设计可以按照以下三个主要层次进行规划:操作数据层(ODS)、公共维度模型层(CDM,包括 DWD 和 DWS)、应用数据层(ADS)。以下是各层的详细说明及其在模型设计中的作用:

1. 操作数据层 (ODS)

定义:

ODS 是数据仓库的基础层,用于存储从业务系统直接同步的原始数据,目标是保证数据的完整性和原始性,为后续加工提供基础。

模型设计内容:

  1. 数据同步:

    • 结构化数据: 支持增量或全量数据同步,通常通过工具(如 MaxCompute、Flink 等)将业务数据导入。
    • 非结构化数据: 例如日志数据,通过结构化处理后存储到仓库中。
  2. 历史数据累积:

    • 保存全量或增量历史数据,满足数据稽核和审计需求。
  3. 初步清洗:

    • 对原始数据进行基础清洗(如去重、字段格式化),确保数据的质量。

举例:

  • 将电商系统中的订单、用户注册信息和商品信息以原始表的形式同步到仓库,如 ods_orderods_userods_product

2. 公共维度模型层 (CDM)

CDM 是数据仓库的核心层,基于维度建模理论细分为明细数据层(DWD)和汇总数据层(DWS)。这一层的重点是通过加工原始数据,生成高效的分析模型,建立一致性维度和公共指标。

2.1 明细数据层 (DWD)
  1. 定义:

    • 存放业务的明细事实数据和维度数据,保持数据的原始粒度。
  2. 模型设计内容:

    • 维度退化: 将一些维度信息直接存入事实表,减少事实表与维表的关联,提高查询性能。
    • 明细宽表: 通过多表关联,将相关数据整合为一张宽表,便于直接使用。
    • 一致性维度: 定义一致的维度表(如时间维度、用户维度),为多场景共享提供支持。
  3. 举例:

    • 构建商品交易事实表(dwd_order_detail),包含订单编号、商品 ID、下单时间、金额等原始粒度信息。
    • 定义时间维度表(dim_time),记录日期、周、季度等属性。
2.2 汇总数据层 (DWS)
  1. 定义:

    • 存放汇总后的公共指标数据,通过聚合计算生成统计结果,支持更高层次的应用需求。
  2. 模型设计内容:

    • 公共指标加工: 基于 OneData 体系,定义统一口径的统计指标(如 GMV、付费转化率)。
    • 宽表设计: 构建宽表存储多维度指标,减少重复计算。
    • 优化查询性能: 加强指标的维度退化,降低查询复杂度。
  3. 举例:

    • 汇总用户行为数据生成用户活跃指标表(dws_user_behavior_summary),包含日活跃用户数、付费用户数等。
    • 订单分析宽表(dws_order_summary),按时间、地区、商品分类汇总销售金额和订单量。

3. 应用数据层 (ADS)

定义:

ADS 是面向具体业务场景和数据产品的应用层,存放经过高度个性化处理的统计指标数据。

模型设计内容:

  1. 场景化数据:

    • 针对具体需求设计满足特定场景的表,如为报表系统、推荐系统提供个性化指标。
  2. 轻量化加工:

    • 在 CDM 层数据基础上,做进一步的细化和过滤,生成最终的输出数据。
  3. 实时数据支持:

    • 针对实时场景,设计数据流处理模型,满足秒级响应需求。

举例:

  • 针对电商运营团队构建活动效果分析表(ads_campaign_analysis),包含活动期间的订单量、销售额、优惠券使用率等。
  • 为客户生成会员积分管理表(ads_member_points),统计会员的积分变化和等级情况。

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

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

相关文章

【C++】哈希表的使用

unordered_map/unordered_set 这是C11才新增的两个容器 原本觉得avl树和红黑树效率已经够了。 后来探索和觉得哈希还是有必要加进来的。 JAVA里面是这样取名的: unordered_set unordered_map/set与map/set的功能基本一致,但细节上有所不同&#x…

微信小程序1.1 微信小程序介绍

1.1 微信小程序介绍 内容提要 什么是微信小程序 微信小程序的功能 微信小程序使用场景 微信小程序能取代App吗 微信小程序的发展历程 微信小程序带来的机会

前端Vue2项目使用md编辑器

项目中有一个需求,要在前端给用户展示内容,内容有 AI 生成的,返回来的是 md 格式,所以需要给用户展示 md 格式,并且管理端也可以编辑这个 md 格式的文档。 使用组件库 v-md-editor。 https://code-farmer-i.github.i…

26、正则表达式

目录 一. 匹配字符 .:匹配除换行符外的任意单个字符。 二. 位置锚点 ^:匹配输入字符串的开始位置。 $:匹配输入字符串的结束位置。 \b:匹配单词边界。 \B:匹配非单词边界。 三. 重复限定符 *:匹配…

K8S中Service详解(一)

Service介绍 在Kubernetes中,Service资源解决了Pod IP地址不固定的问题,提供了一种更稳定和可靠的服务访问方式。以下是Service的一些关键特性和工作原理: Service的稳定性:由于Pod可能会因为故障、重启或扩容而获得新的IP地址&a…

【真机调试】前端开发:移动端特殊手机型号有问题,如何在电脑上进行调试?

目录 前言一、怎么设置成开发者模式?二、真机调试基本步骤? 🚀写在最后 前言 edge浏览器 edge://inspect/#devices 谷歌浏览器(开tizi) chrome://inspect 一、怎么设置成开发者模式? Android 设备 打开设…

初探大数据流式处理

文章目录 初探大数据流式处理批式处理系统特点流式处理系统特点大批次计算微批次计算适用场景 流式计算的应用场景流式大数据的特征流式计算的关键技术流式处理框架的特征三大流式数据处理框架 初探大数据流式处理 大数据处理系统主要分为批式处理和流式处理两类。批式处理将大…

快速搭建深度学习环境(Linux:miniconda+pytorch+jupyter notebook)

本文基于服务器端环境展开,使用的虚拟终端为Xshell。 miniconda miniconda是Anaconda的轻量版,仅包含Conda和Python,如果只做深度学习,可使用miniconda。 [注]:Anaconda、Conda与Miniconda Conda:创建和管…

部门管理查询部门,nginx反向代理,前端如何访问到后端Tomcat 注解@RequestParam

接口开发 增删改通常是不用返回data数据,返回null 列表查询-结果封装,时间 前后端联调测试 nginx反向代理,前端如何访问到后端Tomcat服务器 删除部门

PID 控制算法(二):C 语言实现与应用

在本文中,我们将用 C 语言实现一个简单的 PID 控制器,并通过一个示例来演示如何使用 PID 控制算法来调整系统的状态(如温度、速度等)。同时,我们也会解释每个控制参数如何影响系统的表现。 什么是 PID 控制器&#xf…

AutoSar架构学习笔记

1.AUTOSAR(Automotive Open System Architecture,汽车开放系统架构)是一个针对汽车行业的软件架构标准,旨在提升汽车电子系统的模块化、可扩展性、可重用性和互操作性。AUTOSAR的目标是为汽车电子控制单元(ECU&#xf…

RTMP|RTSP播放器只解码视频关键帧功能探讨

技术背景 我们在做RTMP|RTSP直播播放器的时候,遇到过这样的技术诉求,在一些特定的应用场景中,可能只需要关键帧的信息,例如视频内容分析系统,可能只对关键帧进行分析,以提取特征、检测对象或场景变化。鉴于…

C#防止重复提交

C#防止重复提交 文章目录 C#防止重复提交前言防止重复提交的思路Web API 防止重复提交代码实现代码讲解使用方法 MVC防止重复提交总结 前言 当用户在前端进行提交数据时,如果网络出现卡顿和前端没有给出响应的话顾客通常都会狂点提交按钮,这样就很容易导…

基于深度学习的视觉检测小项目(十五) 用户的登录界面

用户管理离不开的是消息框(QMessageBox)和对话框(QDialog),比如对话框用于用户名和密码输入,消息框用于提示登录成功、密码错误。 • 基础知识:PySide6(PyQT5)的常用对话…

在 Kubernetes 上快速安装 KubeSphere v4.1.2

目录标题 安装文档配置repo安装使用插件 安装文档 在 Kubernetes 上快速安装 KubeSphere 配置repo export https_proxy10.10.x.x:7890 helm repo add stable https://charts.helm.sh/stable helm repo update安装 helm upgrade --install -n kubesphere-system --create-name…

CPU 缓存基础知识

并发编程首先需要简单了解下现代CPU相关知识。通过一些简单的图,简单的代码,来认识CPU以及一些常见的问题。 目录 CPU存储与缓存的引入常见的三级缓存结构缓存一致性协议MESI协议缓存行 cache line 通过代码实例认识缓存行的重要性 CPU指令的乱序执行通过…

江天科技主要产品销售单价下滑,应收账款、存货周转率大幅下降

《港湾商业观察》廖紫雯 日前,苏州江天包装科技股份有限公司(以下简称:江天科技)冲击北交所,保荐机构为国投证券。 江天科技主要从事标签印刷产品的研发、生产与销售,公司主要产品包括薄膜类和纸张类的不…

Unity中在UI上画线

在UI中画一条曲线 我封装了一个组件,可以实现基本的画线需求. 效果 按住鼠标左键随手一画. 用起来也很简单,将组件挂到空物体上就行了,红色的背景是Panel. 你可以将该组件理解为一个Image,只不过形状更灵活一些罢了,所以它要放在下面的层级(不然可能会被挡住). 代码 可以…

Cloud Foundry,K8S,Mesos Marathon弹性扩缩容特性对比

一、Cloud Foundry 使用Scaling an Application Using App Autoscaler插件,基于资源使用情况触发简单扩缩容 CPU、内存、Http带宽、延时等 监控这些资源的使用情况决定扩缩容策略:实例是增加还是减少 Instance Limits 限制实例数量范围,定义…

Qt —— 控件属性

一、概述 控件有很多属性,我们学习和整理常见和常用的几个属性,由于所有的控件基本都是继承Widget类的,所以前面会先拿Widget类和常见的控件进行示范。 Qt Designer左侧一长条就是Qt给我们内置好的控件: 二、enabled 状态属性 …