数据仓库是什么
1. 定义
数据仓库是面向主题的, 集成的, 相对稳定的, 反应历史变化的数据集合, 目的在于支持决策, 构建面向分析集成化数据环境, 为企业提供支持
1. 面向主题
和面向应用相对应, 面向应用是指实现某种功能, 面向主题是指为了实现某个主题而产生的一个或多个面向应用的数据集合的整合
2. 集成
1. 把不同的数据源的数据汇总到一起
2. 把不同类型的数据源的数据进行整合, 按照统一的形式进行集成
3. 相对稳定
数据一般有一定的生命周期,历史的数据一般不会再改变,我们可以采用增量的策略进行数据的传输和计算
4. 反应历史变化
由于在数据仓库中可以存储历史信息, 历史的数据一般不会再改变
2. 基本概念
1. 数据源
构建一个数据仓库,必然要有充足的数据源,从外部为数据仓库系统提供进行分析的“原材料”——数据,这些数据来源称为数据仓库的数据源。
数据源并不局限与传统数据库,可以是非结构化的信息,如爬取日志,也可以是埋点日志。
2. ETL
ETL设计的好坏直接关系到BI项目的成败。其中,花费时间最长的是“T”(transform,清洗、转换)的部分,一般情况下这部分工作量是整个ETL的2/3。
ETL是将业务系统中的数据经过抽取(Extract)、清洗转换(Transform)和加载(Load)到数据仓库的过程,目的是将企业中的分散、凌乱、标准不统一的数据整合到一起,为企业的决策提供分析依据。
3. 数据抽取
在构建数据仓库的过程中,数据源所提供的数据并不都是有用的,有些数据对决策并不能提供支持,同时,外部数据源中数据冗余的现象也很普遍。数据仓库既然是面向主题的,那么在数据源中,只有那些与主题相关的内容才是必需的、有使用价值的。因此,必需以主题的需求为依据,对数据源的内容进行有目的地选择,这一过程被称为“数据抽取”(Data Extraction)
4. 数据清洗和转换
数据仓库的数据源所提供的数据内容并不完美,存在着“脏数据”——即数据有缺省值、异常值等缺陷,而且在数据仓库的各数据源之间,其内容也存在着不一致的现象。为了控制这些“脏数据”对数据仓库分析结果的影响程度,必须采取各种有效的措施,对其进行处理,这一处理过程称为“数据清洗”(Data Transform)。对于任何数据仓库而言,数据清洗过程都是不可缺少的。
数据转换的任务主要是进行不一致的数据转换、数据粒度和的转换和一些商务规则的计算等。
3. 数据仓库和数据库的区别
1. 数据粒度不同
数据库存储的是操作型数据,是细节性的数据,事当前的数据,反应的是最后修改的结果。数据仓库是分析型的集成或者汇总的数据,面向主题,并且保存数据的所有历史状态。
2. 数据的生命周期不同
数据库存的数据的生命周期比较短, 不会保存很久的数据, 数据仓库则需要历史数据来反应趋势的变化和数据分析
3. 建模方法不同
数据库采用范式建模, 不能有冗余, 数据仓库的建模方法有DW范式建模和DM维度建模, 可以存在冗余
4. 时间敏感度不同
数据库的数据要求及时性非常高, 数据仓库可以容忍数据的一定延迟
5. 目标不同
数据库主要面向业务处理, 而数据仓库则面向分析用户