连载:阿里巴巴大数据实践—数据建模综述

二进制诗人
• 阅读 2015

简介: 数据模型就是数据组织和存储方法,它强调从业务、数据存取和使用角度合理存储数据。

前言:
-更多关于数智化转型、数据中台内容请加入阿里云数据中台交流群—数智俱乐部 和关注官方微信公总号(文末扫描二维码或点此加入

-阿里云数据中台官网 https://dp.alibaba.com/index

来源:数智化转型俱乐部

随着DT时代互联网、智能设备及其他信息技术的发展,数据爆发式增长,如何将这些数据进行有序、有结构地分类组织和存储是我们面临的一个挑战。

如果把数据看作图书馆里的书,我们希望看到它们在书架上分门别类地放置;如果把数据看作城市的建筑,我们希望城市规划布局合理;如果把数据看作电脑文件和文件夹,我们希望按照自己的习惯有很好的文件夹组织方式,而不是糟糕混乱的桌面,经常为找一个文件而不知所措。

数据模型就是数据组织和存储方法,它强调从业务、数据存取和使用角度合理存储数据。Linux的创始人Torvalds有一段关于“什么才是优秀程序员”的话:“烂程序员关心的是代码,好程序员关心的是数据结构和它们之间的关系”,其阐述了数据模型的重要性。有了适合业务和基础数据存储环境的模型,那么大数据就能获得以下好处。

  • 性能:良好的数据模型能帮助我们快速查询所需要的数据,减少数据的I/O吞吐。
  • 成本:良好的数据模型能极大地减少不必要的数据冗余,也能实现计算结果复用,极大地降低大数据系统中的存储和计算成本。
  • 效率:良好的数据模型能极大地改善用户使用数据的体验,提高使用数据的效率。
  • 质量:良好的数据模型能改善数据统计口径的不一致性,减少数据计算错误的可能性。

因此,毋庸置疑,大数据系统需要数据模型方法来帮助更好地组织和存储数据,以便在性能、成本、效率和质量之间取得最佳平衡。

1.关系数据库系统和数据仓库

E .F .Codd是关系数据库的鼻祖,他首次提出了数据库系统的关系模型,开创了数据库关系方法和关系数据理论的研究。随着一大批大型关系数据库商业软件(如Oracle、Informix、DB2等)的兴起,现代企业信息系统几乎都使用关系数据库来存储、加工和处理数据。数据仓库系统也不例外,大量的数据仓库系统依托强大的关系数据库能力存储和处理数据,其采用的数据模型方法也是基于关系数据库理论的。

虽然近年来大数据的存储和计算基础设施在分布式方面有了飞速的发展,NoSQL技术也曾流行一时,但是不管是Hadoop、Spark还是阿里巴巴集团的MaxCompute系统,仍然在大规模使用SQL进行数据的加工和处理,仍然在用Table存储数据,仍然在使用关系理论描述数据之间的关系,只是在大数据领域,基于其数据存取的特点在关系数据模型的范式上有了不同的选择而已。关于范式的详细说明和定义,以及其他一些关系数据库的理论是大数据领域建模的基础,有兴趣的读者可以参考相关的经典数据库理论书籍,如《数据库系统概念》。

2.从OLTP和OLAP系统的区别看模型方法论的选择

OLTP系统通常面向的主要数据操作是随机读写,主要采用满足3NF的实体关系模型存储数据,从而在事务处理中解决数据的冗余和一致性问题;而OLAP系统面向的主要数据操作是批量读写,事务处理中的一致性不是OLAP所关注的,其主要关注数据的整合,以及在一次性的复杂大数据查询和处理中的性能,因此它需要采用一些不同的数据建模方法。

3.典型的数据仓库建模方法论

ER模型

数据仓库之父Bill Inmon提出的建模方法是从全企业的高度设计一个3NF模型,用实体关系(Entity Relationship,ER)模型描述企业业务,在范式理论上符合3NF。数据仓库中的3NF与OLTP系统中的3NF的区别在于,它是站在企业角度面向主题的抽象,而不是针对某个具体业务流程的实体对象关系的抽象。其具有以下几个特点:

1)需要全面了解企业业务和数据;

2)实施周期非常长;

3)对建模人员的能力要求非常高;

采用ER模型建设数据仓库模型的出发点是整合数据,将各个系统中的数据以整个企业角度按主题进行相似性组合和合并,并进行一致性处理,为数据分析决策服务,但是并不能直接用于分析决策。其建模步骤分为三个阶段:

1)高层模型:一个高度抽象的模型,描述主要的主题以及主题间的关系,用于描述企业的业务总体概况。

2)中层模型:在高层模型的基础上,细化主题的数据项。

3)物理模型(也叫底层模型):在中层模型的基础上,考虑物理存储,同时基于性能和平台特点进行物理属性的设计,也可能做一些表的合并、分区的设计等。

ER模型在实践中最典型的代表是Teradata公司基于金融业务发布的FS-LDM(Financial Services Logical Data Model),它通过对金融业务的高度抽象和总结,将金融业务划分为10大主题,并以设计面向金融仓库模型的核心为基础,企业基于此模型做适当调整和扩展就能快速落地实施。

**维度模型
**

维度模型是数据仓库领域的Ralph Kimball大师所倡导的,他的The Data Warehouse Toolkit-The Complete Guide to Dimensional Modeling是数据仓库工程领域最流行的数据仓库建模的经典。

维度建模从分析决策的需求出发构建模型,为分析需求服务,因此它重点关注用户如何更快速地完成需求分析,同时具有较好的大规模复杂查询的响应性能。其典型的代表是星形模型,以及在一些特殊场景下使用的雪花模型。其设计分为以下几个步骤。

选择需要进行分析决策的业务过程。业务过程可以是单个业务事件,比如交易的支付、退款等;也可以是某个事件的状态,比如当前的账户余额等;还可以是一系列相关业务事件组成的业务流程,具体需要看我们分析的是某些事件发生情况,还是当前状态,或是事件流转效率。

1)选择粒度:在事件分析中,我们要预判所有分析需要细分的程度,从而决定选择的粒度。粒度是维度的一个组合。

2)识别维表:选择好粒度之后,就需要基于此粒度设计维表,包括维度属性,用于分析时进行分组和筛选。

3)选择事实:确定分析需要衡量的指标。

Data Vault模型

Data Vault是Dan Linstedt发起创建的一种模型,它是ER模型的衍生,其设计的出发点也是为了实现数据的整合,但不能直接用于数据分析决策。它强调建立一个可审计的基础数据层,也就是强调数据的历史性、可追溯性和原子性,而不要求对数据进行过度的一致性处理和整合;同时它基于主题概念将企业数据进行结构化组织,并引入了更进一步的范式处理来优化模型,以应对源系统变更的扩展性。Data Vault模型由以下几部分组成。

1)Hub:是企业的核心业务实体,由实体key、数据仓库序列代理键、装载时间、数据来源组成。

2)Link:代表Hub之间的关系。这里与ER模型最大的区别是将关系作为一个独立的单元抽象,可以提升模型的扩展性。它可以直接描述1:1、1:n和n:n的关系,而不需要做任何变更。它由Hub的代理键、装载时间、数据来源组成。

3)Satellite:是Hub的详细描述内容,一个Hub可以有多个Satellite。它由Hub的代理键、装载时间、来源类型、详细的Hub描述信息组成。

Data Vault模型比ER模型更容易设计和产出,它的ETL加工可实现配置化。通过Dan Linstedt的比喻更能理解Data Vault的核心思想:Hub可以想象成人的骨架,那么Link就是连接骨架的韧带,而Satellite就是骨架上面的血肉。看如下实例(来自Data Vault Modeling Guide,作者Hans Hultgren),如图所示。

连载:阿里巴巴大数据实践—数据建模综述
Data Vault模型实例

Anchor模型

Anchor对Data Vault模型做了进一步规范化处理,Lars. Rönnbäck的初衷是设计一个高度可扩展的模型,其核心思想是所有的扩展只是添加而不是修改,因此将模型规范到6NF,基本变成了k-v结构化模型。我们看一下Anchor模型的组成。

1)Anchors:类似于Data Vault的Hub,代表业务实体,且只有主键。

2)Attributes:功能类似于Data Vault的Satellite,但是它更加规范化,将其全部k-v结构化,一个表只有一个Anchors的属性描述。

3)Ties:就是Anchors之间的关系,单独用表来描述,类似于Data Vault的Link,可以提升整体模型关系的扩展能力。

4)Knots:代表那些可能会在多个Anchors中公用的属性的提炼,比如性别、状态等这种枚举类型且被公用的属性。

在上述四个基本对象的基础上,又可以细划分为历史的和非历史的,其中历史的会以时间戳加多条记录的方式记录数据的变迁历史。

Anchor模型的创建者以此方式来获取极大的可扩展性,但是也会增加非常多的查询join操作。创建者的观点是,数据仓库中的分析查询只是基于一小部分字段进行的,类似于列存储结构,可以大大减少数据扫描,从而对查询性能影响较小。一些有数据表裁剪(Table Elimination)特性的数据库如MariaDB的出现,还会大量减少join操作。但是实际情况是不是如此,还有待商榷。下面是一个Anchor模型图(来自Anchor Modeling-Agile Information Modeling in Evolving Data Environments,作者Lars. Rönnbäck),如图所示。
连载:阿里巴巴大数据实践—数据建模综述

节选自《大数据之路:阿里巴巴大数据实践》已受版权保护,未经授权不得转载

连载:阿里巴巴大数据实践—数据开发平台>>
连载:阿里巴巴大数据实践—实时技术>>
连载:阿里巴巴大数据实践—数据服务>>


数据中台是企业数智化的新基建,阿里巴巴认为数据中台是集方法论、工具、组织于一体的,“快”、“准”、“全”、“统”、“通”的智能大数据体系。目前正通过阿里云数据中台解决方案对外输出,包括零售金融互联网政务等领域,其中核心产品有:

官方站点:
数据中台官网 https://dp.alibaba.com

点赞
收藏
评论区
推荐文章
【数据中台商业化】数据中台微前端实践
我们设计目前的门户基座,可以快速浏览各个平台,同时串联数据开发与管理的工作,减少用户的试错成本,提升工作效率。
Stella981 Stella981
3年前
JindoFS解析
作者:殳鑫鑫,花名辰石,阿里巴巴计算平台事业部EMR团队技术专家,目前从事大数据存储以及Spark相关方面的工作。2019年云栖大会上,EMRJindo的技术存储分离方案得到很大的关注,视频直达链接【云上大数据的一种高性能数据湖存储方案】(https://www.oschina.net/action/GoToLink?ur
Wesley13 Wesley13
3年前
AI加持的阿里云飞天大数据平台技术揭秘
说到阿里巴巴大数据,不得不提到的是10年前王坚博士率领建构的飞天大数据平台,十年磨一剑,今天飞天大数据平台已是阿里巴巴10年大平台建设最佳实践的结晶,是阿里大数据生产的基石。飞天大数据平台在阿里巴巴集团内每天有数万名数据和算法开发工程师在使用,承载了阿里99%的数据业务构建。同时也已经广泛应用于城市大脑、数字政府、电力、金融、新零售、智能制造、智慧农业等各领
Stella981 Stella981
3年前
Android端埋点自动采集技术原理剖析
前言:\更多关于数智化转型、数据中台内容请加入阿里云数据中台交流群—数智俱乐部(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fh5.dingtalk.com%2Finvitepage%2Findex.html%3FbizSource%3D____source____%26
解锁数据潜力,天翼云TeleDB为企业数智蝶变添力赋能!
近日,第15届中国数据库技术大会(DTCC2024)在北京召开。大会以“自研创新数智未来”为主题,重点围绕向量数据库与向量检索技术实践、数据治理与数据资产管理、云原生数据库开发与实践、特定场景下的数据库管理与优化、大数据平台建设等内容展开分享和探讨。天翼云数据库产品线首席技术官李跃森、天翼云资深研发专家胡彬参会,分享了天翼云在数据库领域的产品布局、技术创新与实践应用。
从挑战到突破:HBlock定义智算存储新范式!
近日,由DOIT传媒主办,中国计算机学会信息存储专委会、武汉光电国家研究中心、百易存储研究院支持的2024中国数据与存储峰会在北京召开。此次峰会以“智数据AI未来”为主题,天翼云科技有限公司国际业务事业部存储产品线专家肖夏敏代表参会,并发表“轻量级存储集群控制器HBlock在智算时代的实践分享”主题演讲,与行业伙伴及客户共同探索智算时代全新的存储解决方案,及其行业应用价值。
taskbuilder taskbuilder
8个月前
创建学员信息数据模型
3、创建学员信息数据模型使用TaskBuilder开发应用的第一步就是先创建数据模型,数据模型是用来存储应用数据结构的文件,可以定义各项业务数据有哪些字段,每个字段的数据类型、长度、是否为空等,TaskBuilder提供了一个可视化的数据模型设计器,可以不
天翼云数字政府智慧数据中台通过认证
6月13日,由中国信通院、中国通信标准化协会主办的“数字政府智创沙龙”在线上举办。天翼云凭借丰富的资源与实践经验,顺利通过信通院数字政府智慧中台评估。天翼云高级解决方案架构师黄帆发表题为“数字政府数据中台应用实践”的演讲,详细阐述数据中台在数字政府建设中的重要意义,以及天翼云在建设数字政府数据中台方面的经验成果及优势。近年来,在各地政府全面落实大数据战略进行
治理要从数据建模抓起 | 京东云技术团队
数据治理是对数据管理权力的执行和落实。数据建模可以被认为是对数据定义权力的执行和实施。数据建模这门学问涉及到在"正确"的时间,由"正确"的人,为组织定义"正确"的数据,这就是数据治理的本质。创建数据模型的动因有很多。一般包括遵循数据标准、减少冗余、符合业务
荣誉+1 !入选十大科技领先成果!
8月28日,2024中国国际大数据产业博览会(简称“数博会”)在贵阳市隆重开幕,本届展会以“数智共生:开创数字经济高质量发展新未来”为主题,全方位、多角度展示国内外数据产业最新动态、最新成果和发展趋势。