数据集成是把不同来源、格式、特点性质的数据在逻辑上或物理上有机地集中,从而为企业提供全面的数据共享。在企业数据集成领域,已经有了很多成熟的框架可以利用,如采用联邦式、基于中间件模型和数据仓库等方法来构造集成的系统。这些技术在不同的着重点和应用上解决数据共享和为企业提供决策支持。本书主要以数据仓库为例进行介绍。
1997年W.H.Inmon在其代表性的著作《建立数据仓库》一书中首次提出了数据仓库的定义:数据仓库是面向主题的、集成的、非易失的和随时间变化的数据集合,它用以支持决策经营管理中的决策制定过程[44]。数据仓库系统通常是对多个异构数据源的有效集成,集成后按照主题进行重组,包含历史数据。存放在数据仓库中的数据通常不再修改,用于做进一步的分析型数据处理。数据仓库作为一个系统而言,包含了不同的阶段和部分。图10-3是数据仓库的通常体系结构,按照功能可以分为以下几个部分。
图3-29 显示样式
⑨建立草图。轴上右侧的键槽需要通过拉伸切除的方法进行建模。选择右视基准面进行草图绘制,将模型的显示样式设置为“消除隐藏线”显示状态,绘制的草图如图3-30所示。
图10-3 数据仓库的体系架构
1)数据来源层
数据仓库中使用的数据来源主要有:业务数据、历史数据、办公数据、Web数据、外部数据和元数据[45]。业务数据是指来源于当前正在运行的业务系统中的数据。历史数据是指组织在长期的信心处理过程中所积累下来的数据,这些数据通常存储在磁带或者类似存储设备上,对业务系统的当前运行不起作用。办公数据是指组织内部的办公系统数据,主要由电子数据和非电子数据构成。Web数据是由组织从Internet获取的数据,一般以HTML格式表示,需要将其转换为数据仓库的统一格式后才能加载到数据仓库。外部数据是指那些不为组织所产生、所拥有、所控制的数据。元数据描述了数据仓库中各种类型来源数据的基本信息,包括:来源、名称、定义、创建时间和分类等。这些信息构成了数据仓库中的基本目录。
2)数据准备层
不同来源的数据在进入数据仓库之前,需要执行一系列的预处理以保证数据质量,这些工作可以由数据准备层完成。这一层的功能可以归纳为“抽取(extract)—转换(transfer)—加载(load)”,即ETL操作。
数据抽取是从数据源中抽取数据的过程。实际应用中,数据源较多采用的是关系数据库。从数据库中抽取数据一般分为全量抽取和增量抽取两种方式。全量抽取类似于数据迁移或数据复制,它将数据源中的表或视图的数据原封不动的从数据库中抽取出来,并转换成自己的ETL工具可以识别的格式。增量抽取只抽取数据库中要抽取的表中新增或修改的数据。(www.xing528.com)
抽取后的数据不一定完全满足目标库的标准和要求,例如数据格式的不一致、数据输入错误、数据不完整等,因此有必要对抽取出的数据进行数据转换和加工。数据的转换和加工可以在ETL引擎中进行,也可以在数据抽取过程中利用关系数据库的特性同时进行。
ETL引擎中一般以组件化的方式实现数据转换。常用的数据转换组件有字段映射、数据过滤、数据清洁、数据替换、数据计算、数据验证、数据加解密、数据合并、数据拆分等。关系数据库本身已经提供了强大的SQL、函数来支持数据的加工,如在SQL查询语句中添加where条件进行过滤,查询中重命名字段名与目的表进行映射,substr函数,case条件判断等。
将转换和加工后的数据装载到目的库中通常是ETL过程的最后步骤。装载数据的最佳方法取决于所执行操作的类型以及需要装入多少数据。当目的库是关系数据库时,一般来说有两种装载方式。一种方式是使用SQL语句中的insert命令来加载数据。但是,如果需要加载的数据量太大,这种方式的执行效率会很低。另一种方式是使用诸如bcp、bulk、load等关系数据库特有的批量装载工具。批量装载操作易于使用,并且在装入大量数据时效率较高。
3)数据仓库层
数据仓库是数据存储的主体,其存储的数据包括3个部分。一是指将经过ETL处理后的数据按照主题进行组织和存放到业务数据库中。二是存储元数据。三是针对不同的数据挖掘和分析主题生成数据集市[46]。
4)数据集市
数据仓库是企业级的,能够为整个企业中各个部门的运行提供决策支持。但是,构建数据仓库的工作量大、代价很高。数据集市是面向部门级的,通常含有更少的数据、更少的主题区域和更少的历史数据。数据仓库普遍采用ER模型来表示数据,而数据集市则采用星形数据模型来提高性能。
5)数据分析/应用层
数据分析/应用层是用户进入数据仓库的端口,面向的是系统的一般用户,主要用来满足用户的查询需求,并以适当的方式向用户展示查询、分析的结果。数据分析工具主要有地理信息系统(GIS)、查询统计工具、多维数据的OLAP分析工具和数据挖掘工具等。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。