阿里巴巴数据整合及管理体系


文章目录

  • 阿里巴巴数据整合及管理体系
  • 一、概述
    • 1.1、定位和价值
    • 1.2、体系架构
  • 二、规范定义
    • 2.1、名词术语解释
    • 2.2、指标体系
      • 指标类型
      • 操作细则
  • 三、模型设计
    • 3.1、模型层次
    • 3.2、基本原则
    • 3.3、模型实施:OneData 实施过程
      • 3.3.1、数据调研
      • 3.3.2、架构设计
      • 3.3.3、规范定义
      • 3.3.4、模型设计
      • 3.3.5、总结

OneData 即是阿里巴巴内部进行数据整合及管理的方法体系和工具。阿里巴巴的大数据工程师在这一体系下,构建统一、规范、可共的全域数据体系,避免数据的冗余和重复建设,规避数据烟囱和不一致性,充分发挥阿里巴巴在大数据海量、多样性方面的独特优势。借助统一化数据整合及管理的方法体系,我们构建了阿里巴巴的数据公层,并可以帮助相似的大数据项目快速落地实现。下面重点介绍OneData体系和实施方法论。

面对爆炸式增长的数据,如何建设高效的数据模型体系,对这些数据进行有序和有结构地分类组织存储,避免重复建设和数据不一致性,保证数据的规范性, 一直是大数据系统建设不断追求的方向

基于业务流程,去拆分我们的维度模型和事实模型,通过维度和事实的组合,基于业务分析的主题,可以产出更高层更上层的数据去服务支持业务。

一、概述

阿里巴巴集团大数据建设方法论的核心 :从**业务架构设计**到**模型设计**(*如何快速上手工作的核心*),从**数据研发**到**数据服务**(*数仓的发展核心:以数据服务为核心,比如数据质量和数据治理提升我们数据服务的准确度,数据产品提升我们数据可视化服务的体感*),做到数据可管理 、可追溯、可规避重复建设。目前,阿里巴巴集团数据公共层团队已把这套方法论沉淀为产品,以帮助数据 PD 、数据模型师和 ETL 工程师建设阿里的大数据。这一体系包含方法论以及相关产品。

1.1、定位和价值

建设统一的、规范化的数据接人层( ODS )和数据中间层( DWD和DWS ),通过数据服务数据产品,完成服务于阿里巴巴的大数据系统建设 ,即数据公共层建设。提供标准化的( Standard )、共享的( Shared )、数据服务( Service )能力,降低数据互通成本,释放计算、存储、人力等资源,以消除业务和技术之痛。

1.2、体系架构

业务板块:由 于阿里巴巴集团业务生态庞大,所以根据业务的属性划分出几个相对独立的业务板块,业务板块之间的指标或业务重叠性较小。如电商业务板块涵盖淘系、 系和 li Exp ess 系等。
规范定义: 阿里数据业务庞大,结合行业的数据仓库建设经验和阿里数据自身特点,设计出的一套数据规范命名体系,规范定义将会被用在模型设计中。后面章节将会详细说明。
模型设计: 以维度建模理论为基础,基于维度建模总线架构,构建一致性的维度和事实(进行规范定义)。同时,在落地表模型时,基于阿里自身业务特点 设计出一套表规范命名体系。后面章节将会详细说明。

二、规范定义

规范定义指以维度建模作为理论基础 构建总线矩阵,划分和定义数据域、业务过程、维度、度量 原子指标、修饰类型、修饰词、时间周期、派生指标。

2.1、名词术语解释

  1. 业务板块:比数据域更高维度的业务划分方法,适用于庞大的业务系统。

  2. 数据域:数据域即主题域,用于存放同一业务板块内不同意义的指标。一个业务板块会划分出多个数据域,一个数据域只能归属于一个业务。指面向业务分析,将业务过程或者维度进行抽象的集合。其中,业务过程可以概肯为 个个不可拆分的行为事件,在业务过程之下,可以定义指标,维度是指度量的环境,如买家下单事件,买家是维度,为保障整个体系的生命力,数据域是需要抽象提炼,并且长期维护和更新的,但不轻易变动。在划分数据域时 既能涵盖当前所有的业务需求,又能在新业务进入时无影响地被包含进已有的数据域中和扩展新的数据域。
            我理解的数据域(主题域):业务域根据业务过程划分,业务过程梳理为了让我们更清晰整个业务的流程,数据域划分也是基于整个业务中间有什么实体,整个业务过程可以抽象为几个大类,来划分主题域。主题域的划分离不开业务过程,主题域是对业务过程的抽象分类汇总,一般数据域7-8个最好。互联网时代的业务过程并不是一个单纯的从上到下的直线,很多分支和循环。
            数据域划分:比较常用的有:用户、渠道、营销、流量、交易、财务、商品
            核心主题域;人、货、厂

  3. 业务过程:业务过程即企业的业务活动事件,通常为不可拆分的事件,是一个或者多个业务对象在某个时间或时间段,为了达成某种目的所进行的活动或者是某种活动的结果。

  4. 维度:维度建模由Ralph Kimball提出。维度模型主张从分析决策的需求出发构建模型,为分析需求服务。维度是度量的环境,是我们观察业务的角度,用来反映业务的一类属性。属性的集合构成维度,维度也可以称为实体对象。例如,在分析交易过程时,可以通过买家、卖家、商品和时间等维度描述交易发生的环境。

  5. 属性(维度属性):维度所包含的表示维度的列称为维度属性。维度属性是查询约束条件、分组和报表标签生成的基本来源,是数据易用性的关键。

  6. 度量:在维度建模中,将度量称为事实,将环境描述为维度,维度是用于分析事实所需要的多样环境。度量通常为数值型数据,作为事实逻辑表的事实。

  7. 指标:指标分为原子指标和派生指标。原子指标是基于某一业务事件行为下的度量,是业务定义中不可再拆分的指标,是具有明确业务含义的名词,体现明确的业务统计口径和计算逻辑,例如支付金额。
    原子指标=业务过程+度量。
    派生指标=时间周期+修饰词+原子指标,派生指标可以理解为对原子指标业务统计范围的圈定。

  8. 业务限定:统计的业务范围,筛选出符合业务规则的记录(类似于SQL中where后的条件,不包括时间区间)。

  9. 统计周期:统计的时间范围,例如最近一天,最近30天等(类似于SQL中where后的时间条件)。

  10. 统计粒度:统计分析的对象或视角,定义数据需要汇总的程度,可理解为聚合运算时的分组条件(类似于SQL中的group by的对象)。粒度是维度的一个组合,指明您的统计范围。例如,某个指标是某个卖家在某个省份的成交额,则粒度就是卖家、地区这两个维度的组合。如果您需要统计全表的数据,则粒度为全表。在指定粒度时,您需要充分考虑到业务和维度的关系。统计粒度常作为派生指标的修饰词而存在。

  11. 维度逻辑表:丰富维度的属性信息形成的逻辑表。通过维度逻辑表可以设计及加工处理公共对象明细数据,以便提取业务中对象的明细数据。

  12. 事实逻辑表:用于描述业务过程的详细信息。通过创建事实逻辑表可以设计及加工处理公共事务明细数据,以便提取业务中事务的明细数据。

2.2、指标体系

本文在讲述指标时,会涵盖其组成体系(原子指标、派生指标、修饰类型、修饰词、时间周期),将它们作为一个整体来解读。

指标类型

- 原子指标 (聚合)

原子指标指的是基于业务过程的度量值,顾名思义是不可以在进行拆分的指标
核心功能:对指标的聚合逻辑进行了定义

原子指标、修饰类型及修饰词,直接归属在业务过程下,其中修饰词继承修饰类型的数据域。

  三要素1. 业务过程2. 度量值3. 聚合逻辑SELECT SUM(A) FROM Z GROUP BY C;SELECT SUM(B) FROM Z GROUP BY C;

- 派生指标 (筛选)

派生指标由原子指标、时间周期修饰词、若干其他修饰词组合得到

派生指标可以选择多个修饰词,修饰词之间的关系为“或”或者“且”,由具体的派生指标语义决定。
派生指标唯一归属一个原子指标 ,继承原子指标的数据域, 与修饰词的数据域无关。

事务型指标:对业务活动进行衡量的指标。
存量型指标:对实体对象(如商品、会员)某些状态的统计。
SELECT SUM(A) AS SUM_A FROM Z WHERE D = 'X' GROUP BY C;
SELECT SUM(B) AS SUM_B FROM Z WHERE D = 'X' AND E = 'Y' GROUP BY C;

- 衍生指标(逻辑计算)

复合型指标:在事务型指标和存量型指标的基础上复合而成的。
SELECT SUM_A/SUM_B FROM TEMP;

操作细则

  1. 派生指标的种类

    派生指标可以分为 事务型指标、存量型指标和复合型指标。按照其特性不同,有些必须新建原子指标,有些可以在其他类型原子指标的基础上增加修饰词形成派生指标。

  • 事务型指标:是指对业务活动进行衡量的指标。例如新发商品数、重发商品数、新增注册会员数、订单支付金额,这类指标需维护原子指标及修饰词,在此基础上创建派生指标。(可累加)
  • 存量型指标:是指对实体对象(如商品、会员)某些状态的统计。例如商品总数、注册会员总数,这类指标需维护原子指标及修饰词,在此基础上创建派生指标,对应的时间周期 般为“历史截至当前某个时间”。(不可累加)
  • 复合型指标:是在事务型指标和存量型指标的基础上复合而成的。例如浏览 UV-下单买家数转化率 有些需要 建新原子指标,有些则可以在事务型或存量型原子指标的基础上增加修饰词得到派生指标。
  1. 复合型指标的规则
  • 比率型:创建原子指标,如 TR 、浏览 UV 下单买家数转化率、满意率等。例如,“最近 天店铺首页 TR”,原子指标为“ CT ”,时间周期为“最近 天”,修饰类型为“页面类型”,修饰词为“店铺首页”。
  • 比例型:创建原子指标,如百分比 、占 比。例如“最近 天无线支付金额占比”,原子指标为“支付金额占比”,修饰类型为“终端类型”,修饰词为“无线”。
  • 变化量型:不创建原子指标,增加修饰词,在此基础上创建派指标。例如,“最近 天订单支付金额上 天变化量”,原子指标为“订单支付金额”,时间周期为“最近 天”,修饰类型为“统计方法”,修饰词为“上 天变化量”。
  • 变化率型:创建原子指标。例如,“最近 天海外买家支付金额天变化率”,原子指标为“支付金额变化率”,修饰类型为“家地域”,修饰词为“海外买家”。
  • 统计型: (均值、分位数等)不创建原子指标,增加修饰词,在此基础上创建派生指标;在修饰类型 “统计方法”下增加修饰词,如人均、日均、行业平均、商品平均 90 分位数 70 分位数等。例如,“自然月日均 UV”,原子指标为“UV”,修饰类型为“统计方法”,修饰词为“日均”。
  • 排名型:创建原子指标, 一般为 top_xxx xxx ,有时会同时选择rank_top_xxx _xxx 组合使用。创建派生指标时选择对应的修饰词如下:
    • 统计方法(如降序、升序)。
    • 排名名次(如 TOP 10 )。
    • 排名范围(如行业、省份、一级来源等)。
    • 根据什么排序(如搜索次数、 PV )。

三、模型设计

3.1、模型层次

数据模型的维度设计主要以维度建模理论为基础,基于维度数据模型总线架构,构建一致性维度事实
阿里巴巴的数据团队把表数据模型分为三层 :操作数据层( ODS )、公共维度模型层( CDM )和应用数据层( ADS ), 其中公共维度模型层包括明细数据层( DWD )和汇总数据层( DWS )。

数据引入层( ODS ):把操作系统数据几乎无处理地存放在数据仓库系统中。

  1. 同步:结构化数据增量或全量同步到 MaxCompute.
  2. 结构化:非结构化(日志)结构化处理并存储到 MaxCompte。
  3. 累积历史、清洗:根据数据业务需求及稽核和审计要求保存历史数据、清洗数据。

公共维度模型层( CDM ):存放明细事实数据、维表数据及公共指标汇总数据,其中明细事实数据、维表数据一般根据 ODS 层数据加工生成 ;公共指标汇总数据一般根据维表数据和明细事实数据加工生成。
        CDM 层又细分为 DWD 层和 DWS 层,分别是明细数据层和汇总数据层,采用维度模型方法作为理论基础 更多地采用一些维度退化手法,将维度退化至事实表中,减少事实表和维表的关联 ,提高明细数据表的易用性;同时在汇总数据层, 加强指标的维度退化, 采取更多的宽表化手段构建公共指标数据层,提升公共指标的复用性,减少重复加工。其主要功能如下。
4. 组合相关和相似数据:采用明细宽表,复用关联计算,减少数据扫描。
5. 公共指标统一加工:基于 OneData 体系构建命名规范、口径一致和算法统一的统计指标,为上层数据产品、应用和服务提供公共指标;建立逻辑汇总宽表。
6. 建立一致性维度:建立 致的数据分析维表,降低数据计算口径、算法不统一的风险。

应用数据层( ADS ):存放数据产品个性化的统计指标数据,根据CDM层与 ODS 层加工生成。
7. 个性化指标加工:不公用性、复杂性(指数型、比值型、排名型指标)。
8. 基于应用的数据组装 大宽表集市、横表转纵表、趋势指标串。

3.2、基本原则

  1. 高内聚和低耦合
            一个逻辑或者物理模型由哪些记录和字段组成,应该遵循最基本的软件设计方法论的高内聚和低藕合原则。主要从数据业务特性和访问特性两个角度来考虑 :将业务相近或者相关、粒度相同的数据设计为一个逻辑或者物理模型:将高概率同 时访问的数据放一起 ,将低概率同时访问的数据分开存储。
  2. 核心模型与扩展模型分离
            建立核心模型与扩展模型体系,核心模型包括的宇段支持常用的核心业务,扩展模型包括的字段支持个性化或少量应用的需要 ,不能让扩展模型的宇段过度侵人核心模型,以免破坏核心模型的架构简洁性与可维护性。
  3. 公共处理逻辑下沉及单一
            越是底层公用的处理逻辑越应该在数据调度依赖的底层进行封装与实现,不要让公用的处理逻辑暴露给应用层实现,不要让公共逻辑多处同时存在。
  4. 成本与性能平衡
            适当的数据冗余可换取查询和刷新性能,不宜过度冗余与数据复制。
  5. 数据可回滚
            处理逻辑不变,在不同时间多次运行数据结果确定不变。
  6. 一致性
            具有相同含义的字段在不同表中的命名必须相同,必须使用规范定义中的名称。
  7. 命名清晰、可理解
            表命名需清晰、一致,表名需易于消费者理解和使用。

3.3、模型实施:OneData 实施过程

首先,在建设大数据数据仓库时,要进行充分的业务调研(自下而上)和需求分析(自上而下)。这是数据仓库建设的基石,业务调研和需求分析做得是否充分直接决定了数据仓库建设是否成功。
       其次,进行数据总体架构设计,主要是根据数据域对数据进行划分;按照维度建模理论,构建总线矩阵、抽象出业务过程和维度。
       再次,对报表需求进行抽象整理出相关指标体系,使用 OneData 工具完成指标规范定义和模型设计。
       最后,就是代码研发和运维。本文将会重点讲解物理模型设计之前(含)步骤的内容。

3.3.1、数据调研

充分的业务调研和需求分析是数据仓库建设的基石,直接决定数据仓库能否建设成功。

  1. 业务调研
    集团架构、业务领域、主题域、业务线、业务流程
           要构建大数据数据仓库,就需要了解各个业务领域、业务线的业务有什么共同点和不同点,以及各个业务线可以细分为哪几个业务模块,每个业务模块具体的业务流程又是怎样的。

  2. 需求分析
    分析方向、报表重点
    了解了业务系统的业务后并不代表就可以进行实施了,此刻要做的就是收集数据使用者的需求,可以去找分析师、业务运营人员了解他们有什么数据诉求,此时更多的就是报表需求。
    可以采用过程分析法,列出整个业务过程涉及的每个环节,包括技术、数据、系统环境等。分析完企业的工作职责范围(部门)后,借助工具通过逆向工程抽取业务系统的真实模型。您可以参考业务规划设计文档和业务运行(开发、设计、变更等)相关文档,从以下几方面分析数据仓库涉及的源系统及业务管理系统:

    • 每个业务会生成哪些数据,存在于什么数据库中。
    • 对业务过程进行分解,了解过程中的每一个环节会产生哪些数据,数据的内容是什么。
    • 数据在什么情况下会更新,更新逻辑是什么。

需求调研的途径有:
           1. 通过与分析师、业务运营人员的沟通获知需求。
           2. 对报表系统中现有的报表进行研究分析。
           3. 公司业务系统梳理。

3.3.2、架构设计

  1. 数据域划分
           数据域是指面向业务分析,将业务过程或者维度进行抽象的集合。业务过程可以概括为一个个不可拆分的行为事件,如下单、支付、退款。为保障整个体系 的生命力,数据域需要抽象提炼,并且长期维护和更新,但不轻易变动。在划分数据域时,既能涵盖当前所有的业务需求,又能在新业务进入时无影响地被包含进已有的数据域中或者扩展新的数据域。

  2. 构建总线矩阵(重要)
           在进行充分的业务调研和需求调研后,就要构建总线矩阵了。需要做两件事情 :明确每个数据域下有哪些业务过程;业务过程与哪些维度相关,并定义每个数据域下的业务过程和维度。

3.3.3、规范定义

规范定义主要定义指标体系,包括原子指标、修饰词、时间周期和派生指标。

3.3.4、模型设计

模型设计主要包括维度及属性的规范定义,维表、明细事实表和汇总事实表的模型设计。相关实践详解请参考后续章节。

3.3.5、总结

OneData 的实施过程是一个高度迭代和动态的过程, 般采用螺旋式实施方法。在总体架构设计完成之后,开始根据数据域进行迭代式模型设计和评审。在架构设计、规范定义和模型设计等模型实施过程中,都会引人评审机制,以确保模型实施过程的正确性。

数据模型篇:二、阿里巴巴数据整合及管理体系相关推荐

  1. 大数据之路读书笔记-09阿里巴巴数据整合及管理体系

    大数据之路读书笔记-09阿里巴巴数据整合及管理体系 面对爆炸式增长的数据,如何建设高效的数据模型和体系,对这些数据进行有序和有结构地分类组织和存储,避免重复建设和数据不一致性,保证数据的规范性, 直是 ...

  2. 【阿里巴巴大数据实践笔记】第9章:阿里巴巴数据整合及管理体系

    1.大数据系统建设追求目标 建设高效的数据模型和体系, 对这些数据进行有序和有结构地分类组织和存储,避免重复建设和数据不一致性,保证数据的规范性. 2.阿里巴巴OneData OneData 是阿里巴 ...

  3. 大数据之路—— 数据整合和管理体系

    九.数据模型篇-- 数据整合和管理体系 9.1 体系架构图 9.2 名词术语 9.3 指标体系 9.4 模型设计 9.4.1 基本原则 9.5 模型实施 大数据建设方法论的核心:从业务架构设计到模型设 ...

  4. 数据挖掘二:数据整合

    教材:数据挖掘基于R语言的实战. 1.数据整合 根据关键字将数据集进行链接,并生成合适的变量放入整合的数据集. 2.处理分类自变量 某些数据挖掘方法能够直接处理分类自变量(定类和定序),有些只能处理连 ...

  5. 数据模型篇之大数据领域建模综述

    第8章 大数据领域建模综述 1.为什么需要数据建模 为了更好的将数据进行有序.有结构地分类组织和存储.数据模型就是数据组织和存储方法,它强调从业务.数据存取和使用角度合理存储数据. 数据建模的好处: ...

  6. cyq.data oracle序列,CYQ.Data 数据框架 使用篇二 MAction 数据查询

    本节内容:[带*号内容为新版本功能函数,旧版本可能没有该功能] 本篇继续上一篇内容,本节介绍所有相关查询的使用. 主要内容提要:1:单行数据操作 Fill 操作 GetCount.Exists(*)操 ...

  7. 第二篇:阿里数据中台之OneData体系1

    今天来介绍数据中台的第二篇,第二篇共分为三个大部分分别对应的是阿里的数据中台三大体系(阿里的数据中台体系架构见上一篇),OneData体系,OneEntity体系,OneService体系,三大体系相 ...

  8. 《大数据之路:阿里巴巴大数据实践》第二篇 数据模型篇-读书笔记

    目录 8.大数据领域建模综述 8.1 为什么需要数据建模 8.2 关系数据库系统和数据仓库 8.3 从OLTP和OLAP系统的区别看模型方法论的选择 8.4 典型的数据仓库建模方法论 8.4.1 ER ...

  9. 读《大数据之路-阿里巴巴大数据实践》数据模型篇笔记

    读<大数据之路-阿里巴巴大数据实践>数据模型篇 七 建模综述 OLTP 面向数据 随机读写 3NF OLAP 批量读写 不关注一致性更关心数据整合 ER模型–衍生出dataVault 维度 ...

最新文章

  1. mysql 查询字段语句_mysql查询语句常用字段操作函数
  2. struts2文件上传一个错误的解决
  3. java天气app_MVP+RxJava2+Retrofit2 实况天气app
  4. Get IAT Table
  5. 品牌直播启动的三个关键点
  6. P1273 有线电视网 树形dp
  7. 数据库能查出数据,但mybatis查询出返回的结果是null
  8. 详解研发健康体检信息管理系统分析
  9. Linux查看MySQL配置文件路径及相关配置
  10. 根号智能计算机在线,科学计算器在线的多次根号怎么用?
  11. mysql localhost无法连接
  12. 基于Python的人脸识别(68个识别点)和焦点人物检测
  13. 【OpenCV】马赛克算法
  14. ESXi-Customizer-PS 命令详解
  15. 07-HTML5举例:简单的视频播放器
  16. java计算机毕业设计基于安卓Android/微信小程序的校园闲置二手交易平台APP
  17. 书写软件之钢笔笔迹实现(一)
  18. 单链表的头插法与尾插法
  19. 题目 - 北京地铁 描述 北京地铁涨价了,现在的地铁票价计算方法如下: 6公里内 3元 (包括6公里) 6-12 公里 4元 (不包括6公里,包括12公里) 12-32 公里 每10公里加1元
  20. 顶会竟然攀比起了拒稿率?教授发文怒斥「挑刺式审稿」

热门文章

  1. Python采集去哪儿旅游攻略(爬虫+数据分析),快过年了,这不得全家一起出去玩一次
  2. 用计算机打开浏览器,为什么计算机上的浏览器一打开就一直闪烁?
  3. 【Netty】零拷贝(zero-copy)
  4. 【Python】中秋节快到了,这才是程序员该赏的“月亮”(3D+音频+源码)
  5. OTTBox开机广告
  6. Hamilton-哈密顿回路
  7. TOM集团投资科技平台快速增长 录得卓越成绩
  8. 运动无线耳机什么牌子好?六款实用性不错的运动耳机推荐
  9. SpringBoot 之Profiles
  10. BigBlueButton配置文件bbb-conf说明