论文网
首页 理科毕业电气毕业正文

基于角色控制的异构数据展示在企业门户中的应用

  • 投稿Boye
  • 更新时间2015-09-11
  • 阅读量776次
  • 评分4
  • 39
  • 0

张健,张建琳

(中国飞行试验研究院,陕西西安710089)

摘要:企业的信息系统是一个由传统系统、不兼容数据源、数据库与应用所共同构成的复杂数据集合,各部分之间彼此独立。为了保证智能决策的需要,对数据源中的源数据按照一定的数据转换原则进行映射和转换,通过对异构数据源的抽取、转换、装载,从已有传统环境与平台中采集数据进而形成目标数据源,并使用存储过程、触发器、中间表和动态SQL语句进行查询优化,采用哈希表存储解析后的数据,初步建立数据仓库,实现数据聚合。结合角色控制的方法对目标数据源进行多维度报表展示,将海量的应用数据转换为有价值的信息,为企业智能决策提供有效的数据支持。

教育期刊网 http://www.jyqkw.com
关键词 :数据源;元数据;数据抽取;智能决策

中图分类号:TN911-34 文献标识码:A 文章编号:1004-373X(2015)12-0025-04

收稿日期:2014-12-04

0 引言

随着军工行业科研任务的逐渐增加、科研队伍的持续壮大以及信息化进程的不断推进,每天都会产生大量的科研数据和管理数据,因此如何通过系统、高效的手段分析并利用这些数据就显得尤为重要,这需要通过合理的手段对数据进行加工分析、提炼升华。

目前,由于企业业务系统开发有一个较长的时间跨度,这就造成同一种数据在业务系统中有多种完全不同的存储格式,形成不同的数据源[1]。在这种情况下,本文提出使用ETL工具将数据从各种原始的业务系统中读取出来,按照预先设计好的规则将抽取的数据进行转换,将分布的、异构数据源中的数据抽取到中间表,使本来异构的数据格式能统一起来,并将转换后的数据倒入到数据仓库中,最终进行报表展示。通过报表服务处理科研和管理数据,结合角色管理的方法实现用直观的方式展现数据,进而发现数据变化规律,提炼有价值的数据信息,为更好的管理和决策提供一种数据参考。

1 数据抽取、转换、装载

1.1 数据抽取、转换、装载模型

目前,因为现有业务数据源多,为保证数据的一致性,真正理解数据的业务含义,保证跨越多平台、多系统的数据整合,最大可能提高数据的质量,满足业务需求不断变化的特性,需将各子系统上的数据进行抽取、清洗和转化处理,然后加载到目标数据库。数据抽取、转换、装载模型如图1所示。

数据抽取过程为从数据源开始通过数据清洗过滤掉数据源中不需要的源数据字段,清洗后的数据通过源数据映射将各局部数据视图按照源数据映射的方式转换成语义语法一致的数据[2],通过映射,源数据定义了数据源的位置及数据源的属性、确定从源数据到目标数据的对应规则、确定相关的业务逻辑后插入临时数据库中[3],并通过定义的业务规则进行格式和类型转换获取符合需要的数据,转换完的数据仍存放在临时数据库中,然后通过SQL语句进行装载将数据从临时数据库迁移到目标数据库。

1.2 数据转换原则

数据转换是按照数据仓库的数据结构,对源数据源每条记录进行处理,转换后写入目标数据源。在进行数据转换时,由于数据源之间存在不一致的问题[4],通过数据转换统一数据名称和格式,同时对于数据源中不存在的数据创建新的视图并进行相应的转换。

在整个过程中坚持原则为:

(1)直接引用:数据源字段和目标字段格式和名称相同,不做任何转换;否则,按以下第(2)~(8)条处理。

(2)字符串操作:从数据源的数据列中获取部分数据作为目标数据库的某个字段,需对字符串作转换数据类型、截取字符串、连接字符串等操作。

(3)列间运算:对于数值型数据列来说,有时需数据源的一个或多个数据列进行数学运算生成目标数据,并对生成的目标数据进行格式转换。

(4)空值转换:对于数据源字段中的空值,可能在转换过程中出现异常,因此必须把空值转换成指定的数据类型和固定的值。

(5)统一日期格式:若目标数据源与数据源日期格式不同,需通过日期格式转换,转换成相同的日期格式。

(6)聚合运算:对目标数据源需要展示的汇总数据,一般需要通过对数据源中一个或多个数据列运用聚合函数来实现,如sum,avg,count,max,min等函数。

(7)取固定值:目标字段取一个固定的或是依赖系统的值,如系统时间、常数值等,与数据源数据无关。

(8)增量装载:根据源系统的更新时间或其他标识来记录那些自上次装载以后发生变化的数据,增量加载到目标数据库中。

1.3 数据映射及转换过程

为了实现数据的转换,通过接口提取数据源,首先使用JDBC连接和存取数据库的应用程序接口(API)[5],通过建立数据源、装入JDBC驱动程序、建立连接、执行SQL语句、检索结果等过程最终实现数据库的访问。然后通过预先建好到各平台的“ 数据库链接(Databaselink)”,最终实现数据的抽取。JDBC功能结构图如图2所示。

通过JDBC与不同数据源进行连接,进而访问相应数据,然后通过解析器对数据进行解析。采取哈希表来存储解析后的数据,因哈希算法的算法复杂度为常数,即在常数时间内可找到目标数据,相比一般线性表N(log2N)的复杂度有明显优势。从而提供高性能的元数据映射,形成各类数据源信息的数据映射表,主要属性包括数据源类型、数据源标识、目标数据源标识、表名、字段名。具体映射步骤为:

(1)读取生成的哈希表;

(2)遍历整个哈希表的关键字;

(3)对每个关键字从数据映射表中找到匹配的数据源类型和数据源标识;

(4)根据匹配项转化成以目标数据源标识为关键字的记录项。

完成上述操作之后,使用convertDataToSQL函数将表名、字段名,还有数据特征值动态的拼装成SQL语句,然后通过JDBC将动态生成的SQL语句插入到数据库。代码实现如下:

public class SQLTool{

String convertDataToSQL (String TableName, ArrayList<String> valueList,ArrayList<String> colNameList){

……

return TableName;

}

数据从抽取、转换到装载的整个过程基本是通过控制用SQL语句编写的存储过程和函数的方式来实现对数据的直接操作,SQL语句的效率将直接影响到数据仓库后台的性能[6]。本文从以下几个方面提高工作效率。

(1)使用存储过程和触发器。与数据的更新频率相比,统计报表一般间隔时间较长,如年报表等。针对这类情况,一般通过后台的存储过程实现报表统计,这样既在一定程度上减少了查询统计时间,又保证了前台应用程序的响应速度。

create procedure proc1() //创建存储过程

create trigger tr1 //创建触发器

insert on datetime1 //根据设定时间,增量更新数据

referencing create1 as newcreate

for(i=0;i<n;i++)

{

execute procedure pro1() //触发存储过程,生成报表统计

};

(2)新建中间表和视图。当对源数据库进行操作时,为了保证源数据库的稳定和数据安全,使用中间表存储映射后的数据。如果只需对数据表中的部分数据进行报表展示,可为相关的数据表建立视图,项目统计时操作中间表或新建视图,从而保证了数据安全有效,大大提高报表生成速度。

(3) 使用动态查询语句并进行优化。各数据表之间存在很大的相似之处,报表统计的查询语句相差不多,通常只是部分条件语句有所差异。此时,使用动态的查询语句来实现。条件语句可以在执行时才传递相应的参数值,这样就可以把几个报表统计通用查询语句合写为一个动态查询语句,进而提高程序代码的可维护性、实现代码复用、增加可读性,一定程度上也提高了统计查询的相应速度。为了提高统计查询效率,当在数据表中进行数据的增删改等操作时,优化查询语句。

2 报表展示示例

为了实现各报表在企业门户中集中展示,首先将现有的人力资源、OA、协同平台、网上报销、工资查询等系统的多种类型的数据源通过数据的抽取、转换、装载形成目标数据源,然后通过角色控制的方式对报表进行多维度展示。企业门户系统的报表展示模型如图3所示。

2.1 角色控制

根据业务需求,并不是每个人看到的报表内容均相同。为了区分展示权限,将用户分为单位领导、总师、部门领导和一般员工4种角色,采用角色管理的方式控制展示内容,各角色对应的展示内容如图4所示。

2.2 报表设计

以项目完成情况为例,根据角色定义图,一般员工只能看到个人项目情况,单位领导则关注所有项目进度。个人项目情况展示时,首先通过物理表之间的关系,通过人员表中的员工编号与项目完成情况表中的员工编号进行查询预过滤,最后形成个人参与项目完成情况报表统计,展示过程如图5所示。所有项目进度展示时,把目前所有项目进展状况展示即可。

3 结语

本文提出通过数据的抽取、转换、装载及报表展示的方法,将不同数据来源的异构数据充分整合,解决了数据有效性和一致性的问题,初步建立数据仓库。实现了多数据源多数据类型的数据聚合,将人力资源、OA、协同平台、网上报销、工资查询等系统中相关报表数据在门户中集成展现或图形化展现,方便用户直观、全面地了解各系统中相关信息。同时,通过角色控制的方式对业务进行不同维度建模展示,形成分析对比,将科研数据转化为有用的知识,为企业智能决策提供直观的业务数据支持。

作者简介:张健(1983—),男,山东泰安人,硕士,工程师。从事网络应用开发与研究工作。

张建琳(1974—),男,陕西乾县人,硕士,研究员。从事信息化建设与研究工作。

教育期刊网 http://www.jyqkw.com
参考文献

[1] 申利民,袁立松,李峰.基于SOA的报表服务模型设计[C]//2010年全国现代制造集成技术(CMIS)学术会议论文集.北京:计算机集成制造系统编辑部,2010:1020-1024.

[2] 岳亮,孙涌,张书奎.基于Web的报表系统通用开发平台的设计与实现[C]//中国信息技术应用学术研讨会论文集.北京:中国信息产业商会,2009:130-135.

[3] 李兴勇,袁兆山,汪正海.复杂报表生成系统实现技术研究[J].计算机应用,2007(7):1821-1824.

[4] 高鹏.基于动态DW+Formula1技术的集成式通用报表模型研究[J].计算机应用,2009(11):137-140.

[5] 李芝兴,杨瑞龙.Java EE Web编程(Eclipse 平台)[M].北京:机械工业出版社,2008.

[6] LARSON Brian,薛莹,董梁.Microsoft SQL Server 2005 Report-ing Services 专家教程[M].北京:清华大学出版社,2008.