OneData体系架构详解

        阿里巴巴的 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.rhkb.cn/news/5678.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[Computer Vision]实验三:图像拼接

目录 一、实验内容 二、实验过程及结果 2.1 单应性变换 2.2 RANSAC算法 三、实验小结 一、实验内容 理解单应性变换中各种变换的原理(自由度),并实现图像平移、旋转、仿射变换等操作,输出对应的单应性矩阵。利用RANSAC算法优…

在 vscode + cmake + GNU 工具链的基础上配置 JLINK

安装 JLINK JLINK 官网链接 下载安装后找到安装路径下的可执行文件 将此路径添加到环境变量的 Path 中。 创建 JFlash 项目 打开 JFlash,选择新建项目 选择单片机型号 在弹出的窗口中搜索单片机 其他参数根据实际情况填写 新建完成: 接下来设置…

ue5 GAS制作一个技能

新建文件夹 ability 取名BP_BaseAbility 新建一个技能GAB_Melee 上面技能GAB_Melee和技能基类BP_BaseAbility 进入技能GAB_Melee,添加打印火云掌 给这个技能添加标签 点这个号 这样命名,小心这个点(.)作为分割 ability.ha…

小米Vela操作系统开源:AIoT时代的全新引擎

小米近日正式开源了其物联网嵌入式软件平台——Vela操作系统,并将其命名为OpenVela。这一举动在AIoT(人工智能物联网)领域掀起了不小的波澜,也为开发者们提供了一个强大的AI代码生成器和开发平台。OpenVela项目源代码已托管至GitH…

opentelemetry-collector docker安装

一、编写配置 nano /root/otelcol-config.yamlreceivers:otlp:protocols:grpc:endpoint: 0.0.0.0:4317http:endpoint: 0.0.0.0:4318 exporters:debug:verbosity: detailed service:pipelines:traces:receivers: [otlp]exporters: [debug]metrics:receivers: [otlp]exporters: …

Arweave的出块原理

一、Arweave 关键技术 1.1数据结构:Blockweave 区块纺 区块坊中包括区块哈希列表和钱包列表。拥有区块哈希列表使旧区块可以被请求/验证,拥有钱包列表可以验证新交易,而无需处理钱包上一次交易所在的区块。区块哈希列表和钱包列表由矿工保持…

寒假刷题记录

4968. 互质数的个数 - AcWing题库 涉及&#xff1a;快速幂&#xff0c;欧拉函数&#xff0c;分解质因数 #include <bits/stdc.h> #define fi first #define se second #define endl \n #define pb push_backusing namespace std; using LL long long;const int mod 9…

免费下载 | 2024中国智算中心产业发展白皮书

以下是《2024中国智算中心产业发展白皮书》的核心内容整理&#xff1a; 一、智算中心产业发展背景及内涵 背景&#xff1a;智算中心作为新型基础设施&#xff0c;是数字经济的重要支撑&#xff0c;随着人工智能技术的快速发展&#xff0c;智算中心的需求日益增长。 内涵&#…

爬虫基础之爬取某站视频

目标网址:为了1/4螺口买小米SU7&#xff0c;开了一个月&#xff0c;它值吗&#xff1f;_哔哩哔哩_bilibili 本案例所使用到的模块 requests (发送HTTP请求)subprocess(执行系统命令)re (正则表达式操作)json (处理JSON数据) 需求分析: 视频的名称 F12 打开开发者工具 or 右击…

软件测试入门—用例设计中的场景图和状态迁移图

在软件测试领域&#xff0c;用例设计是一项至关重要的工作&#xff0c;它直接关系到软件质量的高低。而场景图和状态迁移图作为用例设计中的两种有效工具&#xff0c;能够帮助测试人员更全面、系统地设计测试用例。下面我们就来深入了解一下这两种图。 一、场景图 场景图主要…

Java面试专题——面向对象

面向过程和面向对象的区别 面向过程&#xff1a;当事件比较简单的时候&#xff0c;利用面向过程&#xff0c;注重的是事件的具体的步骤/过程&#xff0c;注重的是过程中的具体的行为&#xff0c;以函数为最小单位&#xff0c;考虑怎么做。 面向对象&#xff1a;注重找“参与者…

软件测试—— 接口测试(HTTP和HTTPS)

软件测试—— 接口测试&#xff08;HTTP和HTTPS&#xff09; HTTP请求方法GET特点使用场景URL结构URL组成部分URL编码总结 POST特点使用场景请求结构示例 请求标头和响应标头请求标头&#xff08;Request Headers&#xff09;示例请求标头 响应标头&#xff08;Response Header…

顺序表和链表(详解)

线性表 线性表&#xff08; linear list&#xff09;是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构&#xff0c;常见的线性表&#xff1a;顺序表、链表、栈、队列、字符串... 线性表在逻辑上是线性结构&#xff0c;也就说是连续的一条直线。…

初阶5 排序

本章重点 排序的概念常见排序的算法思想和实现排序算法的复杂度以及稳定性分析 1.排序的概念 排序: 所谓排序&#xff0c;就是使一串记录&#xff0c;按照其中的某个或某些关键字的大小&#xff0c;递增或递减的排列起来的操作。稳定性: 假定在待排序的记录序列中&#xff0…

Flink底层架构与运行流程

这张图展示了Flink程序的架构和运行流程。 主要组件及功能&#xff1a; Flink Program&#xff08;Flink程序&#xff09;&#xff1a; 包含Program code&#xff08;程序代码&#xff09;&#xff0c;这是用户编写的业务逻辑代码。经过Optimizer / Graph Builder&#xff08…

MyBatis和JPA区别详解

文章目录 MyBatis和JPA区别详解一、引言二、设计理念与使用方式1、MyBatis&#xff1a;半自动化的ORM框架1.1、代码示例 2、JPA&#xff1a;全自动的ORM框架2.1、代码示例 三、性能优化与适用场景1、MyBatis&#xff1a;灵活的SQL控制1.1、适用场景 2、JPA&#xff1a;开发效率…

计算机视觉——Intel RealSense D435的使用及python环境下的实现

什么是深度相机&#xff0c;以及深度相机的分类和工作原理 ​ 深度相机是一种能够捕捉场景中物体的深度信息&#xff08;即物体与相机之间的距离&#xff09;的设备。与传统的二维相机不同&#xff0c;深度相机除了拍摄图像的颜色和亮度外&#xff0c;还能生成一个关于场景中每…

Servlet快速入门

Servlet 由于目前主流使用SpringBoot进行开发Servlet可以说是时代的眼泪&#xff0c;这篇文章主要介绍我基于SpringBoot对应Servlet的浅薄认知&#xff0c;有利于更好的理解前端界面和java服务器的数据交换过程 快速入门 我比较推荐这篇文章来对Servlet有一个大概的了解 都2…

windows平台intel-vpl编译

需要先在本机编译好opencl库 git clone --recursive https://github.com/KhronosGroup/OpenCL-SDK.git cmake -A x64 -T v143 -D OPENCL_SDK_BUILD_OPENGL_SAMPLESOFF -B OpenCL-SDK\build -S OpenCL-SDKcmake --build OpenCL-SDK\build --config Releasecmake --install O…

MTK MT6890:LCD ST7789P3驱动移植调试

一、功能简述 LK阶段:开机logo、关机充电动画 Kernel阶段:开机logo、GUI用户交互界面 二、硬件连接及器件选型 ST7789P3 240RGB * 320 dot 262K Color TFT屏 SPI-II型panel ST7789P3接主控MT6890平台的DBI-C接口 SPI-II型读时序: 写时序: GPIO206: DISP_PWM (Func1) …