数据仓库的基本概念、基本特征
数据仓库的定义:数据仓库是一个面向主题的、集成的、不可更新的、随时间不断变化的数据集合,用以更好地支持企业或组织的决策分析处理。
数据仓库中数据的4个基本特征:
- 数据仓库中的数据是面向主题的;
- 数据仓库中的数据是集成的;
- 数据仓库中的数据是不可更新的;
- 数据仓库中的数据是随时间不断变化的。
如前所述,数据仓库产生的原因 ,传统数据库系统主要面向以操作型处理为主的联机事务处理应用,无法满足决策时的分析型处理要求。
主题、主题域、面向主题
主题:抽象概念,在较高层次上将企业信息系统中数据进行综合、归类分析利用的抽象。每一个主题基本对应一个宏观分析领域,在逻辑意义上,它是对应企业中某一宏观分析领域所涉及的分析对象。对应某一分析领域的分析对象。
主题是对应某一分析领域的分析对象,所以主题的抽取应由分析的要求而定。概括各种分析领域的分析对象,可综合得到其他主题。每个主题有着各自独立的逻辑内涵,对应一个分析对象。
主题域:通常为关联关系较为紧密的数据主题的集合。以业务需求为导向,将这些数据主题划分到不同的主题域。主题域的确定必须以业务需求为导向并且以数据为驱动共同完成。
面向主题的数据组织方式是基于分析要求将数据组织成一个完备的分析领域(主题域),主题域应具备:
- 独立性,该主题域可以与其他主题域存在交叉部分,但其必须具备独立内涵,即要求有明确的界限。
- 完备性,对某一主题的分析处理要求,应能在该主题内找到该分析处理所要求的一切内容,如果对该主题分析处理要求涉及现存主题以外的数据,则应将这些数据增加到该主题中,逐步完善该主题。
主题是一个逻辑上的概念,在实现时如果其数据项过多,则可采用各种划分策略来将其划分。
举例说明:
注意:从数据角度的前提是已经经过分析、梳理列出所有可能的数据主题,此处数据主题是细粒度的,是从微观到宏观。
主题域、主题、实体间关系:
面向主题的数据组织方式,就是在较高层次上对分析对象的数据的一个完整、一致的描述,能完整、统一地刻划各个分析对象所涉及的企业的各项数据,以及数据之间的联系。所谓较高层次是相对面向应用的数据组织方式而言的,是指按照主题进行数据组织的方式具有更高的数据抽象级别。
面向主题的数据组织分为两步:抽取主题、确定每个主题所应包含的数据内容。
“传统的面向应用的数据组织方式” 与 “面向主题的数据组织方式” 区别
传统的面向应用的数据组织方式:将数据按照应用的需求进行划分和组织。每个应用都有自己独立的数据存储和管理系统,数据之间存在较强的耦合性。这种方式下,数据被分散存储在不同的数据库中,不同应用之间的数据共享和交互较为困难。例如,一个企业可能有多个应用系统,如人力资源管理系统、财务管理系统和客户关系管理系统,每个系统都有自己的数据库和数据模型。
面向主题的数据组织方式:将数据按照主题进行组织和集中管理。主题可以是企业的业务领域、业务过程或者业务对象等。这种方式下,数据被集中存储在一个或者少数几个数据库中,不同应用可以共享和访问这些数据。主题导向的数据组织方式可以提高数据的一致性、准确性和可用性,同时也方便了数据的分析和挖掘。例如,一个企业可以建立一个统一的数据仓库,将各个应用系统的数据集成到其中,供企业内部的各个部门使用。
数据仓库中的数据是集成的
数据仓库中的数据是按照主题组织的,主题所涉及的数据往往分散于多个操作型数据库中,或是保存在数据文件中等,因此数据仓库中的数据是从其他数据源中抽取得到的(颗粒归仓)。由于很多数据分散于不同的数据源中,会有重复甚至是不一致的地方(数据不一致问题),因此数据在进入数据仓库前,首先要进行清洗、转换并加以整合,要统一原始数据中所有矛盾之处,如:字段的同名异义、异名同义、单位不统一、字长不一致等,原始数据结构从面向应用转变为面向主题,再进行数据综合和计算。
- 要统一源数据中所有矛盾之处,如字段的同名异义、异名同义、单位不统一、字长不一致,等等。
- 进行数据综合和计算。数据仓库中的数据综合工作可以在从原有数据库抽取 数据时生成,但许多是在数据仓库内部生成的,即进入数据仓库以后进行综合生成的。
数据仓库中的数据是不可更新的
操作型数据库中的数据通常是根据业务的变化不断更新。数据仓库的数据主要供企业决策分析之用,所涉及的数据操作主要是数据查询,一般情况下并不进行修改操作。
数据仓库的数据反映的是一段相当长的时间内历史数据的内容,是不同时点的数据库快照的集合,以及基于这些快照进行统计、综合和重组的导出数据,而不是联机处理的数据。
只有当数据仓库存放的数据已经超过数据仓库的数据存储期限,这些数据将从当前的数据仓库中删去。数据仓库中一般有大量的查询操作,但修改和删除操作较少,通常只需要定期加载和刷新。
数据仓库的特点使得数据仓库管理系统(DWMS)可比数据库管理系统(DBMS)简单一些,因为数据仓库只进行数据查询操作,所以数据仓库管理系统相比数据库管理系统而言要简单得多。在数据仓库中,数据库管理系统中与事务相关的并发控制、完整性检查控制可简化甚至可省去。例如:不再需要元组一级的封锁机制,可省去大量的加封解锁操作。但是由于数据仓库的查询数据量往往很大,所以就对数据查询提出了更高的要求,它要求采用各种复杂的索引技术;同时由于数据仓库面向的是商业企业的高层管理者,他们会对数据查询的界面友好性和数据表示提出更高的要求。
数据仓库中的数据是随时间不断变化的
前述数据仓库中的数据不可更新是针对具体的数据应用而言,数据仓库用户在进行数据分析时一般不进行数据更新操作,从数据集成加载进数据仓库到最终被删除的整个数据生存周期中,数据仓库中所有的数据并不是永远不变的。
具体表现三个方面:
- 数据仓库随时间变化不断增加新的数据。数据仓库系统必须不断捕捉联机事务处理数据库(OLTP)中变化的数据,追加到数据仓库中去,也就是要不断地生成OLTP数据库的快照,经统一集成后增加到数据仓库中去。
- 数据仓库会将不需要的数据转存到其他存储设备(一般会基于数据生命周期以及数据冷热冰分级)。数据仓库的数据也有存储期限,一旦超过了这一期限,过期数据就要被退役或归档。只是数据仓库内的数据时限要远远长于操作型环境中的数据时限。在操作型环境中一般只保存有60-90天的数据,而在数据仓库中则需要保存较长时限的数据(如5~10年),以适应决策支持系统(DSS)进行趋势分析的要求。
- 数据仓库中包含有大量的综合数据,这些数据要随着时间的变化不断地进行重新综合。如数据经常按照时间段进行综合,或隔一定的时间片进行抽样等等。
因此,数据仓库中数据的主码一般都包含时间项,以标明数据的历史时期。
数据仓库数据的 4个特征表明,数据仓库实际上是一种数据存储,它将各种异构数据源中的
数据集成在一起并保持其语义一致,从而为企业决策提供支持。数据仓库是一组与分析目标有关的数据集合,这些数据是从现有数据库及外部数据源集成得到的。
数据仓库的发展经历
简单报表阶段:该阶段表现形式大部分为数据库和前端报表工具,系统主要目标是解决一些常态化工作中业务报表,以及针对决策分析所需数据汇总并生成简易化报表等。
数据集市阶段:该阶段以业务需求为导向进行数据采集、整理,并以多维报表的形式展现支撑分析决策数据。
数据仓库阶段:该阶段主要是按照一定的数据模型进行采集、整理,并且能够按照各业务部门需求,提供跨部门的,完全一致的业务报表数据,能够通过数据仓库生成对对业务具有指导性的数据,同时,为分析决策提供全面的数据支持。
数据仓库的建设和数据集市的建设的重要区别就在于数据模型的支持。因此,数据模型的建设,对于我们数据仓库的建设,有着决定性的意义。
数据仓库的体系结构
数据仓库系统由数据源、集成工具、数据仓库与数据仓库服务器、联机分析处理(OLAP)服务器、元数据管理工具与元数据、数据集市、前端分析工具等组成。
数据源:数据仓库系统基础及源泉,主要包括企业内部数据和外部数据,通常存放于操作型数据库(关系型数据库管理系统)。
集成工具:主要包括数据抽取(extracting)、清洗(cleaning)、转换(transformation)、加载(load)、维护工具,简称为ETL工具,完成数据集成工作。
- 数据抽取:指从数据源中选择数据仓库所需数据。针对不同平台、不同结构、不同类型的数据库,设计抽取。
- 数据清洗:对抽取得到的数据进行清洗,保证其数据质量,以便保证其数据一致性(同名异义、异名同义),统一计量单位、估算默认值等等。
- 数据转换:将清洗后的数据按照数据仓库的主题组织。
- 数据加载:将数据装载至数据仓库。
一般而言,ETL工具还负责建立元数据。元数据主要说明数据仓库中数据的来源、加工过程等(自动化)。
数据仓库服务器:负责管理数据仓库中的数据,存储企业级的数据,为整个企业的数据分析提供一个完整、统一的视图。一般由关系型数据库管理系统扩展而成。
OLAP服务器:对分析需要的数据按多维数据模型进行再次重组,以支持用户多角度、多层次的数据分析。其主要实现结构:
- ROLAP结构:该结构采用关系数据库管理系统或扩展的关系型数据库管理系统来存储和管理数据,用OLAP服务器提供聚集计算、查询优化等功能。各种粒度等数据均以关系表的形式存储在数据库。
- MOLAP结构:该结构采用多维数组来存储数据。多维数组存储可对数据直接定位、计算速度快、无需索引,但在数据稀疏情况下需要进行数据压缩,以减少存储空间。
- HOLAP结构:该结构将ROLAP结构和MOLAP结构结合,不仅具备ROLAP结构的可扩展性,而且还具备MOLAP结构计算速度快。
- 特殊SQL服务器:为了满足联机分析处理需求,一些关系型数据库或数据仓库厂家在原来系统基础上扩展,只读环境下星形模型或雪片模型基础上进行SQL查询提供支持。
前端分析工具:主要包括各种数据分析工具,如查询报表工具、OLAP工具、数据挖掘工具等。
其中OLAP工具主要针对OLAP服务器进行数据分析,而查询报表工具和数据挖掘工具可在数据仓库和OLAP服务器上进行分析。各种数据分析工具除了可从数据仓库中获取数据,还可以从数据集市中获取数据。
元数据管理对于数据仓库的可持续发展是必不可少的。
综上所述,在数据仓库系统中,数据从数据源到最终分析结构呈现给用户,其过程:
- 抽取适当的源数据。数据仓库不是简单的生产系统业务数据堆积(不是数据垃圾堆),只能选取对现在和将来决策分析有用的业务数据进行抽取。
- 数据加工过程。转换、清洗等过程,数据仓库中的数据是面向分析和决策的,按照主题进行组织,必须将业务数据进行重组,数据仓库中主题的数据模式往往与业务系统中的数据模式存在差异。
- 建立海量、高效的企业级数据仓库。企业级数据仓库必须建立于海量数据基础之上,服务于大量并发用户,并且满足数据处理速度、查询速度快的要求。
- 基于特定的分析主题,建立专门的数据集市。仅依靠数据仓库进行分析,其速度不一定能满足需求,为了支撑某些常用分析的速度快,有必要为这些分析问题分别单独做数据重组和优化,建立数据集市以加快分析速度。
- 前端展现应用。最终用户界面必须简易化且功能强大,具备权限控制且易于维护。