数据仓库开发之路之一--准备工作
在数据仓库的开发过程中,需要熟悉大量的概念以及相关工具的使用,还需要了解宏观上的各种开发流程,串联起来完成最终的数据仓库项目的开发,本篇介绍一些准备工作,包括涉及到的工具介绍,以及开发过程的描述,记录学习研究的印记,并和大家讨论研究存在的相关问题。
数据仓库的开发,是完全独立于OLTP系统的,也就是独立于当前各种应用的业务系统而作的分析项目,因此要包含从数据的迁移(提取)、变换、清洗、加载等ETL操作,其中可以分为这么几个数据层。
源数据层客户的各种业务系统中的数据,如包括企业、车辆和司机信息系统、企业录入数据和及营运等数据,里面存放了大量的事务数据。
ODS数据层数据库用户ODS数据层主要管理把业务数据层的数据存储到ODS数据层,它的数据表主要就是来源于业务数据表,通过一些存储过程把业务数据表结构改变成基层的数据仓库的表结构。
DW数据层数据库用户DW主要管理把ODS数据层的数据存储到DW数据层,它的数据表主要就是来源于ODS数据表,通过一些存储过程把ODS数据表结构改变成项目主题数据仓库的表结构。DW数据层还管理一些对存储过程的记录表,方便数据仓库的维护和管理。
ODS是一个面向主题的、集成的、可变的、当前的细节数据集合,用于支持企业对于即时性的、操作性的、集成的全体信息的需求。常常被作为数据仓库的过渡,也是数据仓库项目的可选项之一。
因此操作数据存储(ODS) 是用于支持企业日常的全局应用的数据集合,ODS的数据具有面向主题、集成的、可变的和数据是当前的或是接近当前的4个基本特征。同样也可以看出ODS是介于DB和DW 之间的一种数据存储技术,和原来面向应用的分散的DB相比,ODS中的数据组织方式和数据仓库(DW)一样也是面向主题的和集成的,所以对进入ODS的数 据也象进入数据仓库的数据一样进行集成处理。另外ODS只是存放当前或接近当前的数据,如果需要的话还可以对ODS中的数据进行增、删和更新等操 作,虽然DW中的数据也是面向主题和集成的,但这些数据一般不进行修改,所以ODS和DW的区别主要体现数据的可变性、当前性、稳定性、汇总度上。
为什么需要有一个ODS系统呢?一般在带有ODS的系统体系结构中,ODS都具备如下几个作用:
1) 在业务系统和数据仓库之间形成一个隔离层。
2) 转移一部分业务系统细节查询的功能。
3) 完成数据仓库中不能完成的一些功能。
这里我们就需要用到了IBM的DataStage工具。 DataStage 是一套专门对多种操作数据源的数据抽取、转换和维护过程进行简化和自动化,并将其输入数据集市或数据仓库目标数据库的集成工具。DataStage可以从多个不同的业务系统中,从多个平台的数据源中抽取数据,完成转换和清洗,装载到各种系统里面。其中每步都可以在图形化工具里完成,同样可以灵活地被外部系统调度,提供专门的设计工具来设计转换规则和清洗规则等,实现了增量抽取、任务调度等多种复杂而实用的功能。其中简单的数据转换可以通过在界面上拖拉操作和调用一些DataStage预定义转换函数来实现,复杂转换可以通过编写脚本或结合其他语言的扩展来实现,并且DataStage提供调试环境,可以极大提高开发和调试抽取、转换程序的效率。DataStage是基于客户机/服务器的数据集成架构,优化数据收集,转换和巩固的过程。它提供了一套图形化的客户工具: 包括:Designer(设计者):创建执行数据集成任务Job的同时,对数据流和转换过程创建一个可视化的演示。 Manager(管理者):对每个工程的各个单元,包括:库表定义,集中的数据转换,元数据连接等对象进行分类和组织。 Director(指挥者):为启动,停止,监视作业提供交互式控制。 Administrator(管理者):在服务器端管理DataStage的项目和使用者权限的分配
启动Designer,我们可以在其中创建各种数据复制的Job,然后通过串联起来,完成整个业务数据的定时提取工作,所有工作可以在可视化界面上进行操作,还是比较方便的。
下图是对于不同数据源之间的数据复制过程,中间有一个Transformer的变换对象来处理数据列之间的映射关系的。
下图是串联各种Job对象,组装成一个完成的数据复制流程。
完成上面的业务数据整合复制后,就需要通过编写大量的存储过程,完成从ODS数据层到DW数据仓库层的数据清洗加载操作了,一般我们可以在Pl/Sql Developer中完成相关存储过程的编写,如下图所示:
通过存储过程完成数据从ODS层到DW数据仓库层的转移后,下一步就是要围绕数据仓库的模型做各种应用的分析工作了,这时候就需要用到非常强大的BI工具Business Objects了。
在众多的管理信息系统中一般都应用数据仓库技术,进行数据的统计和分析,而数据仓库的建立、使用、管理及维护等方面都需要工具的支持。有些管理信息系统的业务处理数据库同数据仓库系统一起推广使用,因此大大减少了从业务数据库到数据仓库的数据抽取、集成和转换的复杂程度,但无论数据仓库中数据的来源和抽取方式是什么,对数据仓库的维护、管理、分析、统计都需要用客户端报表/分析工具来完成。在众多的联机分析处理产品中,BO公司的Business Object不失为一个好工具。
Business Object具有以下几个特点:前端分析手段灵活,表现方式多样,语义层构建工具应用面广,应用简单,具有文档管理的数据刷新功能,可以利用资料库对不同用户的操作权限进行管理。Business Object是一个由多个产品组成的产品族,主要包括Business Object,Designer,Document Agent,Supervisor,Business Miner五个产品。这几个产品功能如下:
(1)Bupervisor:Supervisor是BO自身的安全管理工具。在Spervisor中可以建立和维护资料库,在资料库中可以建立BO的用户和用户组,通过对不同用户赋予不同的操作权限,来实现对Business Object的使用用户、定制查询(universe)以及查询报告的安全管理。实际上多个用户定制查询及查询结果的共享时通过资料库实现的。
(2)Designer:Designer是一个多编模型构建工具,它可以将关系库中的表通过类、对象及对象明细等工具映射到多维模型的维、维元素及度量指标上,使用户在符合业务逻辑的多维模型上构建查询。
(3)Business Object:Business Object是一个查询定制和统计报表(图形)生成工具。它利用Designer建立多维模型定制各类查询,查询方式包括Business Object定制查询语义层(universe)、手写SQL语句、存储过程及个人数据文件等,在Business Object 4 1版中还将支持OLAP Pannel,从而使其可以利用其他厂商的OLAP服务器的功能。Business Object将查询结果以多种报表形式及统计图形的方式提交给用户。用户可以在查询结果上进行进一步的分析,如向下/向上钻取(Drill Up/Drill Down)等。另外,在Business Object中还提供了一种script语言,?该语言风格类似Visual Basic,在程序中可以以面向对象的编程风格调用Business Object提供的丰富类库。得script语言可以定制出更为友好的查询界面。
(4)Document Agent:Document Agent是专为工作组用户的文档管理及查询结果刷新而建立的。一组用户对应一个Document Agent,不同用户的查询报表(图形)均可发送到Document Agent供同组的其他用户共享。Document Agent还可以定义统计报表(图形)的刷新频度。
在管理机构由于用户的不同使应用角色与工具也不尽相同:(1)报表设计人员:负责制作固定报表以外的灵活报表,使用工具为BO;负责根据业务需求定制新的固定报表,使用工具为BO Designer;承担前台报表的分发、管理及刷新,使用工具为BO Document Agent。
(2)普通报表用户和高级报表用户:L浏览固定报表,使用工具为BO Reader;浏览报表设计人员设计的灵活报表,使用工作为BO Reader。
(3)数据仓库管理员:完成数据库管理员(DBA)的正常工作;负责数据仓库数据的刷新维护、用户管理等工作,使用工具主要是数据库的管理工具以及BO Supervisor。
通过BO Designer,完成表之间的语义关系的设计以及相关度量、维度的设计,为报表设计奠定基础。
通过BO控制台,启动InfowView,对报表进行相关的设计工作。
完成以上工作后,报表的前端展示其实是比较方便的,可以通过调用BO的报表生成页面就可以了,给报表生成页面附带相关的参数即可,具体的例子可以参考BO自带的很多相关Demo,在此不再赘述。
上述的内容只是我对数据仓库应用的初步了解和认识,纰漏之处难免,随着学习的进行,认识的深入,应用的开展,项目经验的增加,希望更多东西能够明朗化,深入化,坚固化。