数据仓库的概念与体系结构
前言
任何企业都希望在如今严峻的市场竞争中利用全面的数据分析能力来获得更大更持久的竞争优势。例如,银行希望知道如何有效规避信贷风险、发现欺诈和洗钱等不合法行为;电信公司希望知道如何对市场业务的发展和竞争环境进行精准分析,从而为市场决策提供深入有力的分析支持,提高营销活动的精准性。
传统的数据库技术以数据库为中心进行事务处理、批处理到决策分析等各种类型的数据处理工作。但人们希望计算机能参与到数据分析与决策支持中来。但事务处理和分析处理有着不同的性质,直接使用事务处理环境来进行分析处理会有一定的局限性。因此,数据仓库技术应运而生,用于实现分析决策的目的。
数据管理技术的发展
数据库管理技术经历了
- 人工管理
- 文件系统
- 数据库系统
三个阶段之间彼此联系,依次改进前面所面临的问题。
人工管理阶段
当时,创建运行与主文件上的单个应用时计算领域的主要工作。其特点是:常用的语言是COBOL,穿孔卡是当时常用的介质,主文件存放在磁带文件上。磁带由于其廉价的特质适合于存放大容量数据,但其缺点是需要顺序存放。
人工管理存在一些严重的问题:
- 数据更新需要保持数据的一致性
- 程序维护的复杂性
- 开发新程序的复杂性
- 支持所有主文件所需要的硬件数量
总而言之,由于介质本身存在固有缺陷,使得主文件成为了发展的障碍。
文件系统阶段
磁盘直接存储设备以及操作系统的出现,解决了磁带存储设备数据访问效率低下的问题。但它并没有解决主文件技术所带来的问题,只是更改存储介质提升了数据访问的速度。
数据库系统阶段
数据库管理系统相比于文件系统有了极大地进步,主要体现在
- 数据结构化的存储
- 数据面向应用系统
- 数据独立性高
后期,联机事务处理开始取代数据库。
采用高性能联机事务处理,计算机可用来完成以前无法完成的工作。
数据库技术与分析性应用结合的问题
- 数据库中保存的数据不是按主题划分的。这里提到的主题是指我们所关心的某一模块的数据,例如和客户、订单相关的数据。所以我们无法通过简单的操作获取我们所关心和感兴趣的数据。
- 由于数据库在解决数据共享、数据与应用程序的独立性、维护数据的一致性与完整性、数据的安全保密等方面提供了有效的手段。因此,在进行大量的数据分析操作时,由于数据库的这些特性,会导致数据操作速度相对较慢。
- 我们所需的大量数据可能来源于不同的数据管理平台,例如oracle、MySQL等,导致数据提取极其不方便。
- 事务处理型数据存储频率高、处理时间短;而分析决策型应用数据存取频率低、处理时间长。他们对数据库的要求不同。
- 数据库中保存和管理的一般是当前数据,决策分析型系统包含当前数据和大量历史数据,用于支持决策分析。
数据仓库的基本概念
元数据
它是用于描述数据仓库中数据的数据。
他可以帮助用户方便快捷得找到所需数据;元数据是描述数据仓库中数据结构和构建方法的数据。
- 数据量不断增加,检索和使用数据效率会降低。通过元数据对关于系统和数据的内容、组织结构、特性等细节存储能有效帮助管理。
- 元数据助力于不同系统之间的数据共享,而这些元数据必须实现标准化
- 对于大型的应用系统,很难用一个软件工具满足所有需求。不同软件工具之间数据交换的方式之一就是元数据。
- 数据元数据
- 过程元数据
- 技术元数据
- 业务元数据
数据粒度
出于对数据存储效率和组织清晰的要求,对数据仓库中的数据以不同粒度进行存贮。按粒度划分,共有:
- 早期细节级
- 当前细节级
- 轻度综合级
- 高度综合级
一般而言,数据粒度越大,数据的细节程度越低,综合程度越高
数据模型
数据模型是对现实世界的抽象表达,根据抽象程度的不同,衍生了不同抽象层级的数据模型。数据模型是对现实世界的抽象表达,根据抽象程度的不同,衍生了不同抽象层级的数据模型。虽然数据仓库是基于数据库建设的,但它们的数据模型还是有些区别,主要体现在以下三个方面:
- 增加了时间属性以区分不同时期的历史数据。
- 不含有纯操作型数据。
- 增加了一些额外的综合数据。
数据模型主要包括:概念数据模型、逻辑数据模型逻辑数据模型以及物理数据模型:物理数据模型:
- 概念数据模型(现实世界—信息世界):概念数据模型对应着信息世界中的某一个具体的信息结构,常用的概念数据模型有星形模型星形模型、雪花模型以及星系模型三种。
- 逻辑数据模型(信息世界—数据世界):逻辑数据模型是对数据仓库中主题的逻辑实现,定义了每一个主题所有关系表之间的关系模式。
- 物理数据模型(数据世界—计算机世界):物理数据模型是逻辑数据
模型在数据仓库中的具体实现,例如数据组织结构、数据存储位置以
及存储设备的分配等。
ETL
由于数据组织方式、字段命名规则、数据表达方式等有所不同,所以由于数据组织方式、字段命名规则、数据表达方式等有所不同,所以原始数据源中的数据是无法直接提供给数据仓库使用的,它必须经过统一的处理后,才能进入到数据仓库。
原始数据源的数据经过抽取、转换、并加载到数据仓库中的数据库的过程称为ETL(Extract,Transform and Load)过程
数据抽取包含以下四个方面:
- 数据提取:确定要新导入到数据仓库的数据有哪些。
- 数据清洁:检查数据源中是否存在脏数据,并按照规则对数据进行修改。检查数据源中是否存在脏数据,并按照规则对数据进行修改。
- 数据转换:将数据源中的数据转换成数据仓库统一的格式。
- 衍生数据:为保证数据查询的效率,需要对用户经常进行的查询通过预处理操作来提高查询效率,生成衍生数据。
数据转换:是将抽取到的数据进行更进一步的转换为数据仓库创建更有效的数据。常用的转换规则包括:
- 字段级的转换:主要是指转换数据类型;添加辅助数据,如给数据添加时间戳;将一种数据表达方式转换为数据仓库所需的数据表达方式,例如将数值型的性别编码转换为汉字型的性别。
- 清洁和净化:保留具有特定值和特定取值范围的数据,去掉重复数据等。
- 数据派生:数据派生:例如可以通过身份证号码可以派生出出生年、月、日、年龄等;将多源系统中相同数据结构的数据合并。
- 数据聚合和汇总
数据加载:是指通过数据加载工具将经过数据转换后的数据装载到数据仓库中。常用的数据加载工具有SQL语言、SQL Loader以及最基本的Import。
数据集市
数据集市数据集市在某种程度上来说就是一个小型的数据仓库。数据集市中的数据往往是关于少数几个主题的,它的数据量远远不如数据仓库,但数据集市所使用到的技术和数据仓库是同样的,它们都是面向分析决策型应用的。
建设数据集市一般有自上而下、自下而上自下而上两种方式。自下而上的方式和建设数据仓库无异;自上而下则是在数据仓库的基础上来建设数据集市。自下而上的方式往往避免不了“重复造轮子”的窘迫,虽然说开发周期短、投入低,但是存在着过多的重复工作。采用自上而下的方式可以解决自下而上的缺点,虽然说工程的规模会比较大、投入会比较多,但从长远角度来看是有利的。
数据仓库的特点
- 面向主题:是建立数据仓库所必须遵守的基本原则,数据仓库中的所有数据都是围绕某一主题组织、展开的。
- 数据集成:数据仓库中的数据来自于多个异种数据源,原有信息系统的设计人员在设计系统的过程中有着各自的设计风格,在编码、命名习惯、度量属性等方面很难做到一致。在原始数据进入数据仓库前,需要采取相应的手段来消除许多的不一致性。
- 数据非易失:操作型环境中的数据是用来满足信息系统日常操作的,因此它是可以被更新、删除的。
- 随时间不断变化的:增加新数据,删除旧数据。
数据仓库的组成
为了实现数据仓库应该具备的功能,数据仓库的组成应该包括加载管理器、仓库管理器以及以及查询管理器查询管理器。