数据仓库的目的是构建面向分析的集成化数据环境,为企业提供决策支持(Decision Support)。数据仓库本身并不“生产”任何数据,同时自身也不需要“消费”任何的数据,数据来源于外部,并且开放给外部应用,这也是为什么叫“仓库”,而不叫“工厂”的原因。
01 数据仓库的特点
- 面向主题的,按照一定的主题进行组织,主题是指用户使用数据仓库进行决策时所关心的重点方面,后面会重点举例说明。
- 数据仓库是集成的,数据仓库的数据有来自于分散的操作型数据,将所需数据从原来的数据中抽取出来,进行加工和集成之后,进入数据仓库。
- 数据仓库是不可更新的,数据仓库主要是为决策分析供数据,所涉及的操作主要是数据的查询;
02 数据仓库有如下要求
- 效率足够高:数据仓库的分析数据一般分为日、周、月、季、年等,可以看出,日为周期的数据要求的效率***。
- 数据质量:由于数据仓库流程通常分为多个步骤,包括数据清洗,转换,装载等,那么由于脏数据会导致数据失真,就可能导致做出错误的决策。
- 可扩展性:主要体现在数据建模的合理性。
数据仓库的基本架构主要包含的是数据流入流出的过程,可以分为三层——数据获取、数据仓库、数据应用:
数据仓库从各数据源获取数据及在数据仓库内的数据转换和流动都可以认为是ETL(抽取Extra, 转化Transfer, 装载Load)的过程。ETL是数据仓库的流水线,也可以认为是数据仓库的血液,它维系着数据仓库中数据的新陈代谢,而数据仓库日常的管理和维护工作的大部分精力就是保持ETL的正常和稳定。
03 数据仓库
1.数据获取
对于网站数据仓库而言,点击流日志是一块主要的数据来源,它是网站分析的基础数据;当然网站的数据库数据也并不可少,其记录这网站运营的数据及各种用户操作的结果,其他是网站内外部可能其它各类对于公司决策有用的数据。
2.数据仓库
2.1数据模型:
数据模型是抽象描述现实世界的一种工具和方法,是通过抽象的实体及实体之间联系的形式,来表示现实世界中事务的相互关系的一种映射。在这里,数据模型表现的抽象的是实体和实体之间的关系,通过对实体和实体之间关系的定义和描述,来表达实际的业务中具体的业务关系。
数据仓库模型是数据模型中针对特定的数据仓库应用系统的一种特定的数据模型
通过上图,我们能够很容易的看出在整个数据仓库的建模过程中,我们需要经历一般四个过程:
- 业务建模:生成业务模型,主要解决业务层面的分解和程序化。
- 领域建模:生成领域模型,主要是对业务模型进行抽象处理,生成领域概念模型。
- 逻辑建模:生成逻辑模型,主要是将领域模型的概念实体以及实体之间的关系进行数据库层次的逻辑化。
- 物理建模:生成物理模型,主要解决,逻辑模型针对不同关系型数据库的物理化以及性能等一些具体的技术问题。
因此,在整个数据仓库的模型的设计和架构中,既涉及到业务知识,也涉及到了具体的技术,我们既需要了解丰富的行业经验,同时,也需要一定的信息技术来帮助我们实现我们的数据模型,最重要的是,我们还需要一个非常适用的方法论,来指导我们自己针对我们的业务进行抽象,处理,生成各个阶段的模型。
2.2数据主题:
数据模型的建设,维度的选择,是为了满足数据主题的需求。数据主题通常就是业务需求的提炼。
2.3数据报表:
报表几乎是每个数据仓库的必不可少的一类数据应用,将聚合数据和多维分析数据展示到报表,提供了最为简单和直观的数据。
这里的数据汇总指的是基于特定需求的简单汇总(基于多维数据的聚合体现在多维数据模型中),简单汇总可以是网站的总Pageviews、Visits、Unique Visitors等汇总数据,也可以是Avg. time on page、Avg. time on site等平均数据,这些数据可以直接地展示于报表上。
2.4数据集市和开放API
数据集市(Data Mart) ,也叫数据市场,可以理解为字段非常多的宽表,比如销售表,除了包含订单和金额等必需的字段,还包含可能使用的产品信息集合、用户信息集合、甚至销售人员的信息,是数据仓库的核心组成部分。
- 提升数据准确性:因为建立面向主题的数据表之后,不用再根据需求的不同,建立不同的结果表,自然发生错误的几率会大大降低
- 提升效率:由于是面向主题的,所以需要的任何数据都可以从数据集市表直接简单获取。
开放API,指对外开放的查询等接口。
数据质量中心:
元数据管理
元数据(Meta Date),其实应该叫做解释性数据,或者数据字典,即数据的数据。主要记录数据仓库中模型的定义、各层级间的映射关系、监控数据仓库的数据状态及ETL的任务运行状态。一般会通过元数据资料库(Metadata Repository)来统一地存储和管理元数据,其主要目的是使数据仓库的设计、部署、操作和管理能达成协同和一致。