剑指大数据:Flink实时数据仓库项目实战(电商版)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.1 什么是数据仓库

数据仓库(Data Warehouse,DW 或DWH)。数据仓库,是为企业所有级别的决策制定过程提供所有类型数据支持的战略集合,是出于分析性报告和决策支持的目的而创建的。

数据仓库是一个面向主题的、集成的、相对稳定的、随时间变化的数据集合,用于支持管理决策。这一数据仓库的概念由数据仓库之父Bill Inmon在1991年出版的Buiding the Data Warehouse一书中所提出。下面对数据仓库概念中的四个特点解释如下。

1.面向主题的

传统的操作型数据库的数据是面向事务处理任务组织的,而数据仓库中的数据是按照一定的主题组织的。主题是一个抽象的概念,可以理解为与业务相关的数据类别,每个主题基本对应一个宏观的分析领域。例如,一个公司要分析销售相关的数据,需要通过数据回答“每季度的整体销售额是多少”这样的问题。这就是一个销售主题的需求,可以通过建立一个销售主题的数据集合来得到分析结果。

2.集成的

数据仓库中的信息不是从各个业务系统中简单抽取出来的,而是经过一系列加工、整理和汇总的过程。因此,数据仓库中的信息是全局集成的数据。数据仓库中的数据通常包含大量的历史记录,这些历史数据记录了企业从过去某一个时间点到当前时间点的全部信息,通过这些信息,可以对企业的未来发展做出可靠分析。

3.相对稳定的

数据一旦进入数据仓库,就不应该再发生改变。操作系统下的数据一般会频繁更新,而在数据仓库环境中数据一般不进行更新。当有改变的操作型数据进入数据仓库时,会产生新的记录,而不是覆盖原有记录,这样就保证了数据仓库中保存了数据变化的全部轨迹。这一点很好理解,数据仓库中的数据必须客观记录企业的数据,一旦数据可以修改,那对历史数据的分析将没有意义。

4.随时间变化的

进行商务决策分析的时候,为了能够发现业务中的发展趋势、存在的问题、潜在的发展机会等,需要对大量历史数据进行分析。数据仓库中的数据反映了某一个时间点的数据快照,随着时间推移,这个快照自然是要发生变化的。数据仓库虽然需要保存大量的历史数据,但是也不可能永远驻留在数据仓库中,数据仓库中的数据都有自己的生命周期,到了一定的时间,数据就需要被移除。移除的方式包括但不限于将细节数据汇总后删除、将旧的数据转存到大容量介质后删除或者直接物理删除等。

通过以上对数据仓库特点的讲解,可以得出,数据仓库中的数据是按照主题组织、保留体现数据变化趋势的大量历史数据,并且是具有一定的集成性的。企业通过构建数据仓库,可以对在业务中产生的大量历史数据进行分析,从中提取有价值的信息,为企业决策提供支持。传统数据仓库,也就是离线数据仓库,就是按照上述要求搭建而成的。

传统的数据仓库架构一般由三部分构成:数据源、数据存储和数据应用。

数据源部分也可以理解为数据抽取。在这一部分中,系统对需要分析挖掘的源数据进行采集抽取。需要采集的源数据有多种类型,如用户单击日志、用户注册信息、商品交易信息、系统报错信息等;源数据也可能来自不同的业务系统,如用户管理系统、商品交易系统、物流管理系统等。这一部分的工作主要由一些数据采集框架承担,如Sqoop、DataX、Flume等。

源数据被采集抽取进来,会被存储到大数据存储系统中,如HDFS。在数据存储系统中,会被进一步清洗、转换、分析、分解,数据的清洗转换工作一般由 MapReduce、Spark 等计算引擎进行。数据在这一部分中,会被按照不同的主题进行组织。这部分的数据分析工作,需要遵循数据仓库的建模理论来进行。

数据应用部分就是对结果数据直接应用的地方。数据经过分析处理后,存储进OLAP引擎中,为后续其他业务提供支持,可以用于数据报表、商品推荐、用户画像分析等多个方面。