开发者学堂课程【高校精品课北京理工大学数据仓库与数据挖掘(下):数据仓库】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/1041/detail/15662
四、数据仓库的数据模型
模型主要分为三个方面的内容,第一个方面是概念模型。概念模型是客观世界到计算机系统的一个中间层次,最常用的表示方法是实体关系图。目前数据仓库一般是建立在数据库的基础上的。所以其概念模型与一般关系型数据库的概念模型是一致的。
第二个模型是逻辑模型。逻辑模型是数据的逻辑结构,主要有关系模型和层次模型等。数据仓库的逻辑模型是多维模型,它主要描述数据仓库主题的逻辑实现,即每个主题对应的模式定义。数据仓库的数据模式包括新型、雪花型以及星型和雪花型的混合模型。三者都是以事实表为中心,不同之处就是在外围为表之间的关系不同。
下面来介绍新型模式。新型模式的每个维度都对应着一个唯一的为表,为的层次关系全都是通过为表中的字段来实现的。所有与某个事实相关的维度,通过该维度对应的为表直接与事实相关联。所有的为表的主键字组合起来作为事实表的主键自。新型模式的为表止于事实表发生关系,为表与表之间没有任何关系。
在新型模式中,主要表现为表非规范化,事实表非规范化为表予事实表的关系是一对一一对多的关系。
第二个方面是雪花型模式。雪花型模式对为表规范化,使用多个事实表,描述层次复杂的,未用不同维度之间的关联,实现为的层次。他把细节的数据保留在关系型数据库的事实表当中,聚合后的数据也保存在关系型的数据库当中,需要更多的处理时间和磁盘空间来执行一些专为多维度数据库设计的任务。
而雪花形表在雪花型模式中为表的规范化,实现了为表的重用。简化了维护工作。雪花型模式中有些维表并不直接与事实表相关联,而是与其他的维表相关联,特别是派生维和实体属性对应的为,这样就可以减少事实表中的一条记录。用雪花模式可以实现维表之间多对多的关系。
第三个方式是新型和雪花型的复合型模型。在使用新型模式的同时,将其中一部分为表规范化,提出一些公共的维度。这样可以打破了新型模式只有一个事实表的限制,并且这些事实表共享全部或部分维表,既保证了高效的查询效率,又简化了维表的维护。
第三个方面是物理模型,物理模型是逻辑模型的具体实现,如物理存储方式、数据存储方式。数据存放位置和存储分配等。在设计数据仓库的物理模型时,我们需要考虑提高性能的技术,比如说表分区和树建索引等第四。
五、数据的 ETL
所谓数据的 ETL,主要是数据的抽取、转换和加载的过程,负责完成数据从数据源向目标数据仓库的转换,在数据仓库预处理数据的主要内容。用户从数据源抽取所需要的数据,经过数据清洗,按照预先定义的数据仓库模型,最终将数据加载到数据仓库当中。随着应用和系统环境的不同,数据的ETL具有不同的特点。ETL为维系着数据仓库中的数据的新陈代谢,而数据仓库日常的大部分管理和维护工作就保持了ETF的正常和稳定。
第一个方面主要是数据抽取,主要确定要导入数据仓库中的数据。在很多情况下,数据源系统与数据仓库不在同一个数据服务器中,二者往往相互独立,并处于远程系统当中,数据抽取可以远程是的分布式的进行。这个涉及到多种方式,主要有全面抽取和增量抽取两个方式。
第二个方面是数据清洁,这个方面主要检查数据源中存在着矛盾的数据,按照用户确定的清洁规则进行清洗数据,主要包括数据预处理、标准化处理、查重以及出错处理和修正。
第三个方面是数据格式转换。数据格式转换是把数据源中的数据转换成数据仓库所需要的格式,包括数据格式、数据内容、数据模式的转换。
第四个方面是衍生数据生成,在数据仓库中保存了大量的历史数据。为了保证查询的效率,需要预处理用户常用的查询操作,提高效率,生成衍生数据。这些衍生数据既包括数据值、数据的运算,也包括分类字段的行程。
对于数据抽取,在增量抽取十补货变化数据的方法应该能够优质、廉价的准确捕获业务系统中的变化数据,尽量减少对业务系统造成的压力,避免影响到业务。
目前补货变化的数据的方式有触发器,这种方式主要是在抽取的表上建立插入、修改、删除等需要的触发器,每当原表中的数据发生变化时,就被相应的触发器将变化的数据写入到一个临时表中抽取。从临时表中抽取数据。
第二个方面是时间戳,这种方式是一种基于递增数据比较的增量数据捕获方式。在原表上增加一个时间戳字段。在系统更新修改表数据时,同时修改时间戳的字段的值,当抽取数据时,通过比较系统的时间与时间戳字段的值来决定抽取哪些数据。
第三个方面是全表比较,最典型的方式就是采用MD5校验码。
第四个方面就是日志比较。通过分析数据库自身的日志来判断变化的数据。但数判断变化的数据。
在数据转换方面,数据转换是把以抽取的数据经验为数据仓库的有效数据,需要理解业务,侧重信息需求和可用元数据。
通常有以下规则,第一个方面是字段及转换,主要指数据类型的转换,第二个方面是清洁与净化,主要是保留字段具有特定值和特定范围的记录,引用完整性检查,去除重复记录。第三个方面是多源数据整合,这个方面是主要集成融合不同来源的数据。
第四个方面是聚合汇总事务。数据库侧重于细节,数据仓库侧重于高层次的聚合会。基于特定需求的简单数据聚合可以汇总数据。也可以是平均数据,直接在报表中展示,基于多维数据的聚合体现在多维数据模型中。
数据加载方式主要是把转换后的数据按照目标数据库元数据。表结构装入到数据仓库当中。有刷新和更新两个方式。刷新的方式是在定期的时间间隔对目标数据进行批量的重启。而更新的方式只是将原数据中的数据改变写入到数据仓库当中。
刷新方式长于数据仓库,首次创建时填充数据仓库,而更新方式常用于目标数据仓库的维护。刷新方式与全量抽取相结合,而更新方式与增量抽取相结合。
第五个方面是数据整理。主要分为数据整理的特点。数据整理和ETF都是将多源异构的数据及通过一系列的处理和转换变为目标输出形式,但二者存在着巨大的差别。第一个方面的不同是针对的用户不同,ETF服务主要针对于专业的数据工程师,而数据整理服务主要针对于企业内部所有的数据使用者,对于数据处理技术不熟练的业务用户为主。
第二个方面是数据处理的目的不同。ETF主要是为了建立数据仓库,采用的相对固定的数据处理流水线,一旦建立,整个过程就比较静态,很少有变化。而数据整理主要是针对业务系统中的具体问题,动态的数据预处理。
第三个方面是数据处理的对象不同。ETL处理数据对象多为业务系统当中数据库的结构化的数据源,有规范的原数据,而数据整理则面临着更复杂、更多样化的数据源。直接应对大数据,多源异构性。与ETL相比,数据整理是更深入的数据变化。第二个方面是数据整理的任务,主要包括数据结构化处理、数据质量评估和清洗、数据规范化、数据的融合和摘取。
数据的结构化处理,主要是因为很多数据模型和算法构建在结构数据的基础上。多源异构数据要更好地与其他数据相融合,结构化处理就是必不可少的一个过程。数据结构化处理首先要对原数据进行解析,汲取说要需要的数据,在进一步将其转化成结构化的数据。数据的质量评估和清洗。结构化的处理主要是数据表达形式上的转换,但是数据结构化之后并不意味着能够直接使用,处理后的数据还要进行进一步的质量评估,如果发现数据中存在的问题,要进行进一步的清洗数据才能达到使用的目的。
第三个方面就是数据的规范化,规范化有简单的底层数据层面的,也有较为复杂的数据,向规范化处理这类问题的主要也有较为复杂的数据向规范化处理。这类问题的主要成因就是自然语言表达上的差异性造成的,同一个实体存在着多种不同的表达方式。此外,缺失值填充也是数据规范化处理当中比较常见的一个问题。
第四个方面就是数据的融合和摘取。对于很多数据价值的发现,源自于多源数据间的关联和有关系的数据的基础上的数据分析。我们来融合多个来源的多元数据集,可以使数据的内容更为丰富,更容易获得新的内容。只是需要根据任务的特点从数据集中提取相关的数据的部分数据,这些部分数据来满足数据分析模型的需要即可。这个降低数据量的过程叫做数据摘取。
六、本章小结
本章主要介绍了数据仓库的相关知识,包括数据仓库的发展,数据仓库的数据模型,数据的抽取、转换和加载的过程,以及数据整理的任务。