关于大数据:连载阿里巴巴大数据实践数据建模综述
简介: 数据模型就是数据组织和存储办法,它强调从业务、数据存取和应用角度正当存储数据。 前言: -更多对于数智化转型、数据中台内容请退出阿里云数据中台交换群—数智俱乐部 和关注官网微信公总号(文末扫描二维码或点此退出) -阿里云数据中台官网 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),如图所示。 ...