2003-05-10
为“仓库”提供优良原料
数据仓库是一个独立的数据环境,它需要通过抽取过程将数据导入。国内外很多案例表明,数据清理、预加工这些工作可能需要耗费整个项目60%以上的努力,因为这些工作决定了“仓库”所存数据的质量。本次“数据仓库系列讲座”最后一期,即探讨这一问题。 数据仓库性能指标评估包括以下几个方面:管理大数据量数据的能力、进行灵活数据存取的能力、根据数据模型重组数据的能力、数据发送和接收能力、周期性成批装载数据的能力、可设定完成时间的作业管理能力。这些内容,很多都与数据清理、预加工等处理流程有密切关系,因为这些流程是数据仓库“原料”问题的保障。只有进入仓库的原料质量有所保障,仓库才能更好地发挥作用;成功建设数据仓库,一定要特别重视数据抽取、数据冲突以及数据集成等方面的工作。 为“仓库”提供优良原料:重视集成、转换程序开发 数据仓库是一个独立的数据环境,它需要通过抽取过程将数据导入。数据清理、预加工工作,包括删除对决策应用没有意义的数据段、转换到统一的数据名称、计算统计和衍生数据、给缺值数据赋缺省值以及把不同的数据定义方式统一等内容。目前,数据清理、预加工已经拥有很多比较成熟的应用工具。但是,企业在实施数据仓库项目的时候还要做大量的二次开发以及编码工作,开发集成、转换程序以满足自身需要。 数据清理、预加工所需的集成、转换程序用于从操作性信息系统、数据库中移植数据给数据仓库,还包括数据仓库运行起来之后的定时数据补充。有时候,对于同一类数据,初始数据移植与日后的数据补充采用同一套程序。但是,很多企业的现实情况使得项目不得不单独开发两套程序,这是因为: 有时候,初始数据过于庞大,将其移植到数据仓库的时候,所需的数据移植程序不可避免地对操作型运营信息系统的其他用户造成显著的负面影响。而日后从这些信息系统提取新产生数据的时候,数据量可能相对而言比较少,这就需要单独设计一个对操作型运营信息系统影响较小的数据更新程序。 还有一个造成初始装载程序单独设计的原因是,很多运营系统只保留了新近一段时间的数据。之前的历史数据,已经存储在其他系统(例如磁带库)之中了。针对这些历史数据开发的导入程序,一般不适合用于日后从运营系统补充新的数据。 因此,通常是一套集成、转换程序集用于初始数据载入,另外一套程序集用于定期数据更新、补充。与载入程序对比,更新程序通常比较小、比较简单,它们常常被集成到运营系统之中来捕捉新增加的数据。 为“仓库”提供优良原料:解决数据冲突 一个良好设计的数据仓库架构模型,是不能接受同一个对象拥有多个名字、同一个名字标明多个对象这种数据定义冲突的,因为这会使得数据分析的时候发生混淆。数据质量,已经成为数据仓库所面临的最严峻的问题;数据失真,是导致数据仓库项目失败的重要原因之一。 推究数据定义冲突的原因,有助于解决这个问题。目前企业使用的信息系统中,记录信息的数据库一般是采用英文标识企业常见的术语。在企业员工常用的术语之中,有时候同一个术语在不同的部门会代表不同的含义。最常见的“滥用”就是“customer(客户)”这个词:在财会部门,“customer”通常代表接受单据的组织或个人,也可以代表接受服务或购买产品的个人;在销售部门,“customer”也许还可以代表销售人员正在发展的潜在客户。此外,不同的信息系统之中往往储存了系统管理员的一些信息,这些信息常常是用“sysop”表示的,这也容易造成混淆。 在导入数据的时候,要尽早对这些问题有的放矢地进行识别,对冲突数据进行转换。值得提醒的是,在转换的过程中,要想实现严格的等价转换有时是比较困难的,这时要有所舍弃。首先,我们要确定可能存在的各种语法和语义上的冲突,这些冲突可能包括: 格式冲突:同一种数据类型可能有不同的表示方法和语义差异,这时需要定义两种模型之间的变换函数。 命名冲突:即数据源中数据的某些标识符可能是目的模型中的保留字,这时就需要重新命名。 结构冲突:如果两种数据库系统之间的数据定义模型不同,那么需要重新定义实体属性和联系,以防止属性或联系信息的丢失。 其次,在进行数据转换后,一方面数据源中所有需要载入的信息都转换到数据仓库中,另一方面这种转换又不能包含冗余的关联信息。需要进一步研究的问题是:如果数据转换的同时进行数据定义模式转换,就可能引起同一数据集合在异构数据库系统中存在多个副本,因此需要引入新的访问控制机制,对于数据仓库提供全局的访问控制、并发机制和安全控制。 在导入数据的时候,数据转换规则直接影响数据仓库中数据的准确性,而且重组过的数据可能得出与以前使用业务系统时不同的结果,这样就给用户造成了数据仓库中的数据有误的假象。最明显的表现是用户会拿出原来业务系统中的数据和数据仓库中的数据进行比较,对上面的每一组数字都要求完全相同。解决这类问题,比较现实的方法是将数据源中冲突的数据尽可能多地呈现给用户,使他们认识到100%的数据清洁是不可能的,这样数据仓库开发者就有可能和用户对未来系统中的数据精度达成共识。另一个技术手段是字段冗余处理,将冲突的数据都保留下来供不同的分析角度使用,这就需要业务元数据能够支持用户级的安全控制和应用。 为“仓库”提供优良原料:确定数据抽取周期以及数据总量 一个投入应用的数据仓库,在初始化导入数据之后还要再不断地补充新的业务数据,这涉及到数据抽取工作。数据抽取是一件技术含量不高,但非常烦琐的工作,必须有专人负责数据抽取的工作。 数据仓库中的数据,一般并不要求与联机事务处理系统保持实时同步,因此数据抽取可以定时进行,但多个抽取操作执行的时间、相互的顺序、成败对数据仓库中信息的有效性至关重要。在规划数据仓库项目明确企业需求的时候,就要特别注意与业务人员协商好间隔多久抽取一次新数据以及保留多久的历史数据。不同类型的数据,往往需要差别迥异的抽取周期,从季度到月份到小时都有可能。 不同的企业在这方面差别很大:例如证券登记公司按照法律规定,要保存20年的过户历史数据。中国证券登记结算有限责任公司上海分公司的数据仓库在2001年11月通过了专家组的验收,这是我国第一个TB级数据仓库。西方大型零售业企业的数据仓库里一般保存最新2~3年来自集团各个商店的原始销售数据和库存数据。这些数据是每天晚上从各种应用系统采集上来,分类后导入到数据仓库的。 正确评估自身的需求,确定一个切实可行的数据抽取周期并且估测好数据总量,有助于企业数据仓库的“长治久安”。IDC的一份评测报告指出,数据仓库在投产后其数据量将会随着用户需求的增加而迅速增加,大约每过18个月就增加5倍左右。例如世界上从事航空运输业历史最悠久的公司之一澳大利亚QANTAS航空公司建成数据仓库时原始数据量不到100GB,不到五年的时间即扩展到1500GB。注意到这一因素,企业应该在自身系统性能、可扩张性许可的范畴内抽取数据,切忌“贪大求全”。 本文原载于中国计算机用户
|
信息化软件应用目录 OA 办公自动化系统
CRM 客户关系管理系统
PM 项目管理系统
SCM 供应链管理系统
CC 协同商务系统
BPM 业务流程管理
BI 商务智能
CMS 内容管理系统
KM/KBS 知识管理系统
电子商务系统
HRM 人力资源管理系统
ERP 企业资源计划
EAM 企业资产管理系统
|