阿里巴巴大数据实践之数据建模ITeye - 乐橙lc8

阿里巴巴大数据实践之数据建模ITeye

2019-01-10 11:30:09 | 作者: 鸿熙 | 标签: 数据,阿里巴巴,模型 | 浏览: 2328

摘要: 跟着DT年代互联网、智能设备及其他信息技能的开展,数据爆发式添加,怎么将这些数据进行有序、有结构地分类安排和存储是咱们面对的一个应战。 为什么需求数据建模 如果把数据看作图书馆里的书,咱们期望看到它们在书架上分门别类地放置;如果把数据看作城市的修建,咱们期望城市规划布局合理;如果把数据看作电脑文件和文件夹,咱们期望依照自己的习气有很好的文件夹安排办法,而不是糟糕紊乱的桌面,常常为找一个文件而手足无措。

原文地址:http://click.aliyun.com/m/43780/

跟着DT年代互联网、智能设备及其他信息技能的开展,数据爆发式添加,怎么将这些数据进行有序、有结构地分类安排和存储是咱们面对的一个应战。

为什么需求数据建模

如果把数据看作图书馆里的书,咱们期望看到它们在书架上分门别类地放置;如果把数据看作城市的修建,咱们期望城市规划布局合理;如果把数据看作电脑文件和文件夹,咱们期望依照自己的习气有很好的文件夹安排办法,而不是糟糕紊乱的桌面,常常为找一个文件而手足无措。

数据模型便是数据安排和存储办法,它着重从事务、数据存取和运用视点合理存储数据。Linux的创始人Torvalds有一段关于“什么才是优异程序员”的话:“烂程序员关怀的是代码,好程序员关怀的是数据结构和它们之间的联系”,其论述了数据模型的重要性。有了合适事务和根底数据存储环境的模型,那么大数据就能获得以下优点。

功用:杰出的数据模型能协助咱们快速查询所需求的数据,削减数据的I/O吞吐。
本钱:杰出的数据模型能极大地削减不必要的数据冗余,也能完结核算结果复用,极大地下降大数据系统中的存储和核算本钱。
功率:杰出的数据模型能极大地改进用户运用数据的体会,进步运用数据的功率。
质量:杰出的数据模型能改进数据核算口径的不共同性,削减数据核算错误的或许性。

因而,毋庸置疑,大数据系统需求数据模型办法来协助更好地安排和存储数据,以便在功用、本钱、功率和质量之间获得最佳平衡。

联系数据库系统和数据库房

E .F .Codd是联系数据库的开山祖师,他初次提出了数据库系统的联系模型,创始了数据库联系办法和联系数据理论的研讨。跟着一大批大型联系数据库商业软件(如Oracle、Informix、DB2等)的鼓起,现代企业信息系统简直都运用联系数据库来存储、加工和处理数据。数据库房系统也不破例,很多的数据库房系统依托强壮的联系数据库才能存储和处理数据,其选用的数据模型办法也是根据联系数据库理论的。尽管近年来大数据的存储和核算根底设施在分布式方面有了飞速的开展,NoSQL技能也曾盛行一时,可是不管是Hadoop、Spark仍是阿里巴巴集团的MaxCompute系统,依然在大规模运用SQL进行数据的加工和处理,依然在用Table存储数据,依然在运用联系理论描绘数据之间的联系,仅仅在大数据范畴,根据其数据存取的特色在联系数据模型的范式上有了不同的挑选罢了。关于范式的具体阐明和界说,以及其他一些联系数据库的理论是大数据范畴建模的根底,有爱好的读者能够参阅相关的经典数据库理论书本,如《数据库系统概念》。

从OLTP和OLAP系统的差异看模型办法论的挑选

OLTP系统一般面向的首要数据操作是随机读写,首要选用满意3NF的实体联系模型存储数据,然后在事务处理中处理数据的冗余和共同性问题;而OLAP系统面向的首要数据操作是批量读写,事务处理中的共同性不是OLAP所重视的,其首要重视数据的整合,以及在一次性的杂乱大数据查询和处理中的功用,因而它需求选用一些不同的数据建模办法。

典型的数据库房建模办法论

ER模型

数据库房之父Bill Inmon提出的建模办法是从全企业的高度规划一个3NF模型,用实体联系(Entity Relationship,ER)模型描绘企业事务,在范式理论上契合3NF。数据库房中的3NF与OLTP系统中的3NF的差异在于,它是站在企业视点面向主题的笼统,而不是针对某个具体事务流程的实体目标联系的笼统。其具有以下几个特色:

需求全面了解企业事务和数据。
施行周期十分长。
对建模人员的才能要求十分高。

选用ER模型建造数据库房模型的起点是整合数据,将各个系统中的数据以整个企业视点按主题进行相似性组合和兼并,并进行共同性处理,为数据剖析决议计划效劳,可是并不能直接用于剖析决议计划。

其建模进程分为三个阶段。

高层模型:一个高度笼统的模型,描绘首要的主题以及主题间的联系,用于描绘企业的事务全体概略。
中层模型:在高层模型的根底上,细化主题的数据项。
物理模型(也叫底层模型):在中层模型的根底上,考虑物理存储,一起根据功用和渠道特色进行物理特点的规划,也或许做一些表的兼并、分区的规划等。

ER模型在实践中最典型的代表是Teradata公司根据金融事务发布的FS-LDM(Financial Services Logical Data Model),它经过对金融事务的高度笼统和总结,将金融事务划分为10大主题,并以规划面向金融库房模型的中心为根底,企业根据此模型做恰当调整和扩展就能快速落地施行。

维度模型

维度模型是数据库房范畴的Ralph Kimball大师所倡议的,他的The Data Warehouse Toolkit-The Complete Guide to Dimensional Modeling是数据库房工程范畴最盛行的数据库房建模的经典。

维度建模从剖析决议计划的需求动身构建模型,为剖析需求效劳,因而它要点重视用户怎么更快速地完结需求剖析,一起具有较好的大规模杂乱查询的呼应功用。其典型的代表是星形模型,以及在一些特别场景下运用的雪花模型。其规划分为以下几个进程。

挑选需求进行剖析决议计划的事务进程。事务进程能够是单个事务事情,比方买卖的付出、退款等;也能够是某个事情的状况,比方其时的账户余额等;还能够是一系列相关事务事情组成的事务流程,具体需求看咱们剖析的是某些事情发作状况,仍是其时状况,或是事情流通功率。
挑选粒度。在事情剖析中,咱们要预判一切剖析需求细分的程度,然后决议挑选的粒度。粒度是维度的一个组合。
辨认维表。挑选好粒度之后,就需求根据此粒度规划维表,包含维度特点,用于剖析时进行分组和挑选。
挑选现实。确认剖析需求衡量的目标。

Data Vault模型

Data Vault是Dan Linstedt建议创立的一种模型,它是ER模型的衍生,其规划的起点也是为了完结数据的整合,但不能直接用于数据剖析决议计划。它着重树立一个可审计的根底数据层,也便是着重数据的前史性、可追溯性和原子性,而不要求对数据进行过度的共同性处理和整合;一起它根据主题概念将企业数据进行结构化安排,并引进了更进一步的范式处理来优化模型,以应对源系统改动的扩展性。Data Vault模型由以下几部分组成。

Hub:是企业的中心事务实体,由实体key、数据库房序列署理键、装载时刻、数据来历组成。
Link:代表Hub之间的联系。这儿与ER模型最大的差异是将联系作为一个独立的单元笼统,能够提高模型的扩展性。它能够直接描绘1:1、1:n和n:n的联系,而不需求做任何改动。它由Hub的署理键、装载时刻、数据来历组成。
Satellite:是Hub的具体描绘内容,一个Hub能够有多个Satellite。它由Hub的署理键、装载时刻、来历类型、具体的Hub描绘信息组成。

Data Vault模型比ER模型更简单规划和产出,它的ETL加工可完结装备化。经过Dan Linstedt的比方更能了解Data Vault的中心思维:Hub能够幻想成人的骨架,那么Link便是衔接骨架的韧带,而Satellite便是骨架上面的血肉。看如下实例(来自Data Vault Modeling Guide,作者Hans Hultgren),如图1所示。




Anchor模型

Anchor对Data Vault模型做了进一步标准化处理,Lars. Rönnbäck的初衷是规划一个高度可扩展的模型,其间心思维是一切的扩展仅仅添加而不是修正,因而将模型标准到6NF,根本变成了k-v结构化模型。咱们看一下Anchor模型的组成。

Anchors:类似于Data Vault的Hub,代表事务实体,且只要主键。
Attributes:功用类似于Data Vault的Satellite,可是它愈加标准化,将其悉数k-v结构化,一个表只要一个Anchors的特点描绘。
Ties:便是Anchors之间的联系,单独用表来描绘,类似于Data Vault的Link,能够提高全体模型联系的扩展才能。
Knots:代表那些或许会在多个Anchors中共用的特点的提炼,比方性别、状况等这种枚举类型且被共用的特点。

在上述四个根本目标的根底上,又能够细划分为前史的和非前史的,其间前史的会以时刻戳加多条记载的办法记载数据的变迁前史。

Anchor模型的创立者以此办法来获取极大的可扩展性,可是也会添加十分多的查询join操作。创立者的观念是,数据库房中的剖析查询仅仅根据一小部分字段进行的,类似于列存储结构,能够大大削减数据扫描,然后对查询功用影响较小。一些有数据表裁剪(Table Elimination)特性的数据库如MariaDB的呈现,还会很多削减join操作。可是实际状况是不是如此,还有待商讨。下面是一个Anchor模型图(来自Anchor Modeling-Agile Information Modeling in Evolving Data Environments,作者Lars. Rönnbäck),如图2所示。




阿里巴巴数据模型实践总述

阿里巴巴集团很早就现已把大数据作为其战略目标施行,而且其各个事务也十分依靠数据支撑运营,那么阿里巴巴终究采纳何种办法构建自己的数据库房模型呢?阿里巴巴的数据库房模型建造阅历了多个开展阶段。

第一个阶段:彻底使用驱动的年代,阿里巴巴的第一代数据库房系统构建在Oracle上,数据彻底以满意报表需求为意图,将数据以与源结构相同的办法同步到Oracle(称作ODS层),数据工程师根据ODS数据进行核算,根本没有系统化的模型办法系统,彻底根据对Oracle数据库特性的使用进行数据存储和加工,部分选用一些维度建模的缓慢改动维办法进行前史数据处理。这时候的数据架构只要两层,即ODS+DSS。

第二个阶段:跟着阿里巴巴事务的快速开展,数据量也在飞速添加,功用成为一个较大的问题,因而引进了其时MPP架构系统的Greenplum,一起阿里巴巴的数据团队也在着手进行必定的数据架构优化,期望经过一些模型技能改动烟囱式的开发模型,消除一些冗余,提高数据的共同性。来自传统职业的数据库房工程师开端测验将工程范畴比较盛行的ER模型+维度模型办法使用到阿里巴巴集团,构建出一个四层的模型架构,即ODL(操作数据层)+BDL(根底数据层)+IDL(接口数据层)+ADL(使用数据层)。ODL和源系统保持共同;BDL期望引进ER模型,加强数据的整合,构建共同的根底数据模型;IDL根据维度模型办法构建集市层;ADL完结使用的个性化和根据展示需求的数据拼装。在此期间,咱们在构建ER模型时遇到了比较大的困难和应战,互联网事务的快速开展、人员的快速改动、事务知识功底的不行全面,导致ER模型规划迟迟不能产出。至此,咱们也得到了一个经历:在不太老练、快速改动的事务面前,构建ER模型的危险十分大,不太合适去构建ER模型。

第三个阶段:阿里巴巴集团的事务和数据还在飞速开展,这时候迎来了以Hadoop为代表的分布式存储核算渠道的快速开展,一起阿里巴巴集团自主研制的分布式核算渠道MaxCompute也在紧锣密鼓地进行着。咱们在拥抱分布式核算渠道的一起,也开端建造自己的第三代模型架构,这时候需求找到既合适阿里巴巴集团事务开展,又能充分使用分布式核算渠道才能的数据模型办法。咱们挑选了以Kimball的维度建模为中心理念的模型办法论,一起对其进行了必定的晋级和扩展,构建了阿里巴巴集团的公共层模型数据架构系统。

数据公共层建造的意图是着力处理数据存储和核算的同享问题。阿里巴巴集团当下现已开展为多个BU,各个事务发生巨大的数据,而且数据每年以近2.5倍的速度在添加,数据的添加远远超越事务的添加,带来的本钱开支也是十分令人担忧的。

阿里巴巴数据公共层建造的辅导办法是一套统一化的集团数据整合及办理的办法系统(在内部这一系统称为“OneData”),其包含共同性的目标界说系统、模型规划办法系统以及配套东西。


本文节选自《大数据之路:阿里巴巴大数据实践》一书,阿里巴巴数据技能及产品部所著。



在阿里巴巴集团内,数据人员面对的现实状况是:集团数据存储现已到达EB等级,部分单张表每天的数据记载数高达几千亿条;在2016年“双11购物狂欢节”的24小时中,付出金额到达了1207亿元人民币,付出峰值高达12万笔/秒,下单峰值达17.5万笔/秒,媒体直播大屏处理的总数据量高达百亿等级且一切数据都需求做到实时、精确地对外发表……巨大的信息量给数据收集、存储和核算都带来了极大的应战。《大数据之路:阿里巴巴大数据实践》便是在此布景下完结的。信任《大数据之路:阿里巴巴大数据实践》中的实践和考虑对同行会有很大的启示和学习含义。

辨认以下二维码,阅览更多干货


版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表乐橙lc8立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章