引言
数据仓库作为单独的数据存储创建与组织中,其主要目的是数据分析,专为查询而设计。
将数据仓库的创建转换为单独的分析型数据库主要有两个原因:
- 如果操作型日常任务需要跟分析型查询竞争计算资源时,那么与数据相关的操作型日常任务的性能就会大幅降低。
- 构建一个可以同时用于操作型和分析型的数据库通常不太可能。
操作型信息和分析型信息
操作型信息是为支持日常操作需要所收集和使用的信息。例如存取款时的银行卡信息,购买机票时的个人信息,所以操作型信息有时候也称为事务信息。
分析型信息指的是为支持数据分析任务的决策所收集和使用的信息。例如存取款数量的最高时段和最低时段,20岁到25岁航班目的地的分布情况。
虽然分析型信息以操作型信息为基础,但是两者截然不同。分析型和操作型信息的差别可以分为三类:数据组成差别、技术差别、功能差别。
数据组成差别
操作型系统的时间范围比分析型系统更短。
通常情况下,操作型系统中数据的时间范围为60~90天,90天以后的数据通常会从操作型数据库中移除并进行归档。
在操作型数据库中保存各时间段的所有数据可能造成不必要的混杂,继而由于这些多余而庞大的数据空间,操作型数据库的查询会变得缓慢。
另一方面,分析型数据库通常需要提供数年的数据趋势和模式分析。因此分析型数据库比操作型数据库具有更长的时间范围。
数据细节层次差别
操作型数据库通常反映的是数据细节。
数据细节就是指数据的基础属性。比如通话记录的起始时间和结束时间。
但通常会有一些数据需要经过计算才能得到,比如本月的通话时长,这种称为汇总数据,因为汇总数据变化频繁,因此不会存储这个属性,而是作为派生属性。派生属性通常是在查询时计算得到的。
但是对于分析型数据库来说,派生属性也是可以存储的,因为作为历史数据,汇总数据并不会发生改变,存储之后,将会提高查询效率。
数据时间表示差别
操作型数据库通常反映的是当前世界事务状况,而分析型数据库既能表示当前状态还能表示过去某个时间的快照。
技术差别
- 查询数据总量和查询频度差别
操作型数据库查询数据量更小,而查询频率更高。 - 数据更新差别
操作型数据库中的数据由用户进行有规律的更新。而分析型数据库中的数据是不允许更新的。 - 数据冗余差别
操作型数据库的主要目标就是减少数据冗余。使冗余最小化的主要原因是为了减少更新异常的可能。
因为在分析型数据库中不允许进行更新操作,因此减少数据冗余的必要性不高。
功能差别
- 数据读者差别
操作型数据支撑着商业公司及组织机构的日常工作,会被大量业务员和用户操作。
而分析型数据只会被少量人用来进行时长决策。 - 数据定位差别
操作型数据库通常是为了支持某个为业务操作及处理过程提供服务的应用而创建。
相反,分析型数据是为特定的业务主题领域的分析任务而创建,如销售、收益、成本、利润等。
分析型数据库围绕待分析的主题而建,因此分析型数据库又称为面向主题型数据库。
数据仓库定义
数据仓库:数据仓库是一种结构化的数据存储形式,其存储的数据具有集成性、面向主题、企业范围跨度、历史性以及及时变性的特点。数据仓库的目的是用于对分析型数据进行检索。数据仓库可以保留细节型或汇总型数据。
数据仓库是一种最基本的分析型数据系统。
结构化数据存储
数据仓库是一种保存了可分析的有用数据的数据库。任何一个数据库都是一种结构化的数据存储,结构表示其元数据。因此,数据仓库作为数据库的一种,也是一种结构化的数据存储。换句话说,数据仓库并不是大量随机数据的杂乱集合。集成性
数据仓库的目的是为分析型信息创建一种有序的存储形式,这种存储与已有的操作型数据库在组织上是物理分离的。数据仓库集成了各种操作型数据库中各种可分析的有用数据到一个单一的数据仓库中,集成过程不是从操作型数据库中移除,而是复制。面向主题
数据仓库是为了对业务主题领域进行分析而创建的。企业范围
数据仓库是一种关于可分析的有用数据的存储形式。术语“企业范围”是指数据仓库可以为包含在其中的信息提供一个机构范围的全局视图。历史性
数据仓库中的数据具有更长的时间跨度。时变性
“时变性”是指数据仓库包含来自其时间范围内不同区间的数据片段或子图快照。分析型信息的检索
数据仓库是为了分析型信息的检索而建的,其唯一可用的功能就是检索。数据仓库中的数据具有非易失性、稳定以及只读的特点。细节数据和汇总数据
数据仓库可能包含细节数据、汇总数据或者两者皆有,具体根据主题而定。
数据仓库组件
每个数据仓库系统的核心都有三个主要组件:源系统、提取-转换-加载(ETL)架构和数据仓库本身。
源系统
在数据仓库领域中,源系统(source system)是指那些为数据仓库分析主题提供可分析的有用信息的操作型数据库以及其他操作型数据存储系统。
ETL
ETL主要包含如下几个任务:
- 从操作型数据源中提取可分析的有用数据(Extraction)
- 转换数据使其满足面向主题目标数据仓库的结构,同时利用数据清洗和数据净化过程来确保转换后的数据质量。(Transformation)
- 将转换后且有质量保证的数据加载到目标数据仓库中。(Load)
数据仓库
数据仓库是为集成来自源系统的分析型数据提供存储的系统,又称为目标系统,意思是数据仓库是源系统中数据的目的地。典型的数据仓库会周期性地从操作型数据源中检索精选好的可分析的有用数据,并且这是一个持续不断的过程。
数据仓库应用
数据仓库应用是一种能够直接访问数据仓库的前端应用程序,也称为BI(商务智能)应用。
数据集市
数据集市是一种与数据仓库具有相似准则的数据存储形式,但相比数据仓库,其范围更小,通常只与一个主题相关,不涉及整个企业范围。
数据仓库与数据集市的区别:
数据仓库 | 数据集市 | |
---|---|---|
主题 | 多个 | 单个 |
数据源 | 较多 | 较少 |
典型大小 | 非常大(通常为T字节甚至更大) | 没有那么大 |
实现时间 | 相对较长(整月、整年) | 没有那么长 |
关注范围 | 整个组织范围 | 通常小于整个组织范围 |
数据集市有两种主要类别:独立数据集市和非独立数据集市
独立数据集市
是一种单独的数据集市,创建形式与数据仓库一致,有自己的源系统和ETL架构。非独立数据集市
没有自己的源系统,数据来源于数据仓库
数据仓库开发步骤
后面会根据这个开发步骤,细化实战。