简介: 数据模型就是数据组织和存储办法,它强调从业务、数据存取和应用角度正当存储数据。
前言:
- 更多对于数智化转型、数据中台内容请退出 阿里云数据中台交换群—数智俱乐部 和关注官网微信公总号(文末扫描二维码或点此退出)
- 阿里云数据中台官网 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),如图所示。
节选自《大数据之路:阿里巴巴大数据实际》已受版权保护,未经受权不得转载
连载:阿里巴巴大数据实际—数据开发平台 >>
连载:阿里巴巴大数据实际—实时技术 >>
连载:阿里巴巴大数据实际—数据服务 >>
数据中台是企业数智化的新基建,阿里巴巴认为数据中台是集方法论、工具、组织于一体的,“快”、“准”、“全”、“统”、“通”的智能大数据体系。目前正通过阿里云数据中台解决方案对外输入,包含批发、金融、互联网、政务等畛域,其中外围产品有:
- Dataphin,一站式、智能化的数据构建及治理平台;
- Quick BI,随时随地 智能决策;
- Quick Audience,全方位洞察、全域营销、智能增长;
- Quick A+,跨多端全域利用体验剖析及洞察的一站式数据化经营平台;
官方站点:
数据中台官网 https://dp.alibaba.com