姚晓捷 周丽娟
(1.辽宁省卫生健康服务中心,辽宁 沈阳 110005;中化二建集团有限公司,山西 太原 030024)
随着大数据、云计算等新一代信息技术的飞速发展,结合业务的大数据分析将会是未来助推企业管理效益稳健提升的一个重要途径,而企业级报表系统作为一种信息数据组织和展示的手段正是实现这一重要途径的最有效方式之一。灵活,实用、高效、美观的企业级报表系统将会发挥企业业务信息数据的最大价值,将会为管理层的经营决策提供强有力的数据支撑。
传统的报表系统一般采用电子报表软件(如Excel)和报表管理软件(一般内嵌于某信息系统)的形式来实现对企业信息数据的采集、分析和展示。采用这些形式就存在如数据分散、架构落后、功能有限、维护困难、界面样式单一等问题。随着企业业务的不断发展,业务数据出现多样化的特点,传统的报表系统已不能满足业务需要,无法向各层管理人员提供高效、准确的决策支持。因此,如何借助新一代信息技术,开发一套企业级、跨业务平台的报表系统,将已有业务数据资源高效整合并完美展示,为各层管理人员提供一个真实、科学、可靠的数据平台就成为当前研究的一个重要课题。
本文就Z公司数据分析系统的建设为研究对象,从分析原有系统存在的问题、系统需求分析、系统建设目标、系统总体设计、系统实施、系统建设效果等几个方面总结出了一套企业级报表系统的设计和实现的解决方案,为后续的类似信息系统研发提供借鉴。
公司原有报表系统是嵌入在综合项目管理系统PMS系统中的,随着公司业务的不断扩大和各层管理人员信息化管理水平的不断提高,现有报表系统的弊端和现有管理模式间的矛盾越来越凸显。具体体现在如下几个方面。
一是原有报表系统是基于PMS系统的,不能采集到其他业务系统的数据并形成报表,跨业务系统的报表制作和数据分析仍需靠传统的Excel等方式来处理,效率低下,企业缺乏统一的数据展示和分析平台。
二是原有报表系统的嵌入在综合项目管理系统PMS中,系统交互界面、业务逻辑处理、数据库操作都是在一个开发程序下,所以任何需求或逻辑的变更,都必须重新修改、发布整个综合项目管理系统的开发程序,维护难,成本高。
三是原有报表系统的显示界面、业务逻辑和数据库处理过程等都没有分离,导致开发的报表功能有限,开发周期较长,很难快速响应需求的变化。
四是原有报表系统处理复杂逻辑数据的能力有限,甚至无法处理,满足不了实际工作的需要。
五是原有报表系统的样式单一,不能有个性化的显示样式。
六是原有报表系统没有移动客户端程序,访问方式不灵活。
整个系统建设需坚持“先进性并适当超前”的原则。在此基础上,充分发挥系统的“灵活性”,一个成功的报表系统应该能同时响应静态和随时变化的动态数据,并提供实用美观的交互界面。具体需求包括以下几个方面的内容。
系统须支持从不同的平台不同的数据库读取数据,然后进行整合,直观上做到所有数据从一个数据源提取,为建设企业级的报表平台提供基础数据。
系统的报表设计端须功能强大、简便易用,能快速响应不断变化的需求,设计出各类报表、支持参数查询、图表分析、数据钻取、界面风格调整等,以提升用户的使用体验。
系统须具有强大的处理复杂数据逻辑计算的能力,支持各种复杂业务数据的处理,以满足各层管理人员的实际工作需求。
系统须具有强大的数据录入功能,可通过计算机或者移动端设备进行高效的数据补录、删除或修改,并支持数据的校验,以保证数据的规范性、有效性和完整性。
系统须开发移动端访问程序,为各层管理人员提供随时随地访问的系统、迅速获取数据的便利。
系统须能开发企业级数据大屏,大屏支持异构数据源轻松整合、多种可视化的图表展示、数据的钻取联动分析及炫酷的可视化特效等功能。
基于以上需求,选择了3家国内知名的报表平台软件:南京帆软软件有限公司的FineReport、广州思迈特软件有限公司的SmartBI及北京亿信华辰软件有限责任公司的i@Report,分别进行了调研和试用。综合考虑到产品品牌、市场占有率、功能、项目实施、售后服务等因素,最终选择了帆软报表作为本次企业级报表系统的设计开发平台。
基于上述原有系统存在的问题并结合公司实际发展需要,在详细分析业务需求后,明确了系统的建设目标。具体为:构建一个贴合业务数据、技术架构合理、跨业务平台、跨数据库、高灵活性、高扩展性、高性能的企业级的报表系统;同时需要建设企业级数据大屏以实现领导决策层对企业运行情况的整体把控;建设移动客户端访问程序,以方便各级管理人员的随时随地访问系统,提高工作效率。
原报表系统是嵌入在综合项目管理系统中的,它所有的数据采集、处理及展示都依赖于综合项目管理系统,是一个强耦合的系统。其的缺点就是功能有限、维护升级困难,随着数据量的不断增大,系统性能会越来越差。
基于以上,对系统总体架构进行了改进:将从各业务系统数据库采集到的所有业务数据抽取到目标数据库里进行统一处理。这样做的优势是既不影响到原业务系统的运行,又能提高数据的处理效率。因此,新报表系统的总体设计分为三个主要的部分:数据采集子系统、数据处理整合子系统、数据分析展示子系统。总体架构如图1所示。
图1 系统总体架构图
(1)数据采集子系统
本系统主要功能:从各业务系统及补录表单中采集数据,如从财务系统、人力资源系统、综合项目管理系统等信息系统中将需要的数据原样采集到的目标数据库中。
(2)数据处理整合子系统
本系统主要功能:将采集到目标数据库的原始数据通过分析,进行预处理,生成目标数据源保存到目标数据库表中,为下一步的数据分析展示提供数据源。
(3)数据分析展示系统
本系统主要功能:为各层管理人员提供业务报表及大屏数据分析服务,包括报表的实时查询、统计分析、下载等功能。报表和大屏展的数据来源于数据整合子系统。
系统整体实施要求在保证系统功能需求和安全性的前提下,最大限度的提高系统的性能和灵活性。系统采用Kettle进行了数据的采集和整合处理,采用CentOS7.0作为服务器的操作系统,MySql5.7作为目的数据库,帆软报表设计器FR10.0作为设计平台,进行了系统实施工作。建设完成了中化二建数据分析系统,实现了对系统用户、权限管理、系统配置、业务报表、数据大屏等统一管理。
根据需求,报表系统的数据来源暂时有两种,一是直接从PMS系统数据库中提取,二是通过报表系统的补录功能进行提取(PMS系统中不涉及的数据)。
本系统主要功能是通过数据抽取转换工具Kettle定时将PMS系统中的数据库表从SQL Server数据库中原样抽取到目标数据库MySQL中。这个过程需执行一个总体的作业来完成,这个作业中又包含多个用于抽取具体表数据的转换。图2所示即为整体数据采集作业情形。
图2 数据采集作业
通过这个作业就把整个系统所需要基础数据库表原样抽取到了目标数据库中。下面以经济活动分析表为例具体阐述数据采集的过程。
(1)分析数据源
通过分析得知经济活动分析表的数据来源于以下几张数据库表:项目清单明细表HER_RPT_QDKZMX,经营数据表HER_RPT_JYGL及明细表;人员数据表HER_RPT_RYTJ及明细表;财务数据表HER_RPT_CWGL及明细表,计划统计表HER_RPT_JHTJLR及明细表。
(2)原样抽取数据源
利用工具Kettle把涉及的表原样抽取到目标数据库,通过定义抽取具体表的转换完成数据抽取任务,如转换ODS_HER_RPT_QDKZMX.ktr,完成了项目清单明细表HER_RPT_QDKZMX从源数据库到目标数据库的转换,转换完成的目标表为:ODS_HER_RPT_QDKZMX。
通过上述的作业和转换,在目标数据库中生成了经济活动分析表所需要的底层的数据库表ODS_HER_RPT_QDKZMX,ODS_HER_RPT_JHTJLR,ODS_HER_RPT_JHTJLRMX,ODS_HER_RPT_CWGL,ODS_HER_RPT_CWGLMX,ODS_HER_RPT_JYGL,ODS_HER_RPT_JYGLMX,ODS_HER_RPT_RYTJ,ODS_HER_RPT_RYTJMX表。
本子系统主要完成了数据源表的装载、清洗和转换工作。通过Kettle将目标数据库中各类底层数据表进行二次或多次抽取转换、计算、汇总的处理后保存到新的数据库表中。
下面仍以经济活动分析报表为例进行阐述。由于经济活动分析表中需要计算汇总项目的进度款审批、实际完成及资金回收的本月、年累和开累数据,而这些数据是分别以项目、以数据日期为单位存储在项目清单明细表、经营数据表、财务数据表、人员数据表、计划统计表中的,这些表间没有明确的关系,如何通过一定的逻辑关系将他们关联起来是报表实现的一个难点。最后通过分析,采取了逻辑主键的方式,即通过项目ID,数据日期的年、月的组合来构造一个逻辑主键作为经济活动分析表的主键。通过作业和转换生成了财务、经营、人员、计划统计的维度表、当月数据表、当年数据表、年累数据表和开累数据表等逻辑表。如图3所示生成逻辑表。
图3 逻辑表
根据已经生成的这些表,最终生成了经济活动分析总表DW_JJHDFXB:此表和权限表关联后,又根据实际显示数据,作预处理(此处的预处理包括单位换算、公式计算及判断等)后,生成DW_JJHDFX_PLN,这个表就是我们经济活动分析报表的主数据源。
其他报表及大屏的目标数据表的处理方式类似,此处不再赘述。
本子系统主要是根据需求及实际情况,在已生成的目标数据表的基础上,利用帆软的报表设计器设计完成经济活动分析表、生产调度情况表、数据分析显示大屏及移动客户端等。
为了保证整个报表系统的风格统一,系统预置了一套具有公司特色的报表开发模板。采用模板的形式进行开发,不仅可以统一风格、提升企业形象,还可以一次成型,提高报表开发效率。
(1)数据源引入
帆软报表设计器的灵活性之一就体现在多数据源关联,即数据源可以选择多种类型的数据库,如MySQL、SQL Server、Oracle、DB2等。且同一张报表也可以关联多个数据源,这样的机制就能轻松实现跨平台业务数据的读取。
下面仍以经济活动分析表为例进行阐述。
在帆软报表设计器中将经济活动分析表的数据源DS引入。数据源包括目标数据库中的DW_JJHDFX_PLN表、权限表及查询模块中的参数,主代码如下:
(2)报表样式设计
根据已有报表的样式模板,在报表设计器中通过行列对称、分栏、分页、分组、函数(公式)计算等进行报表样式调整,可通过添加条件属性实现预警等功能,图4为报表设计器界面。
图4 报表设计器界面
在实施过程中,整个经济活动分析表的数据量是比较大的,有近80000条数据,难以在一个界面中全部展示出来,就考虑到了分页功能。帆软报表设计器本身具有分页的功能,但它的工作机制是一次性从数据源取回所有的数据,然后再分页展示,这在数据量较大的情况下,就会出现页面加载速度比较慢的问题,随着数据量的不断增大,这个问题会越来越严重。如何解决这个问题,就成为了项目进一步实施的瓶颈。为此尝试了多种方法进行处理,最后采用将分页功能在前端页面进行优化的方式来处理,即通过传递页面参数的形式,每次翻页只从数据源中取回20条数据在当前页面加载,这样就大大减轻了数据加载压力,系统性能得到有效地优化,大大提升用户了体验。
分页优化的部分主代码如下:
目前,Z公司数据分析系统已经完成整体建设并进入试运行阶段,系统的良好运行有效解决了原系统存在的诸如系统功能有限、单一数据源、界面单调、开发维护困难、平台扩展性差等问题,实现了对公司经营数据的高效统计分析和良好的展示效果。
新的报表系统是一个基于业务数据的,利用新一代信息技术开发完成的企业级的、高度智能的数据分析系统。具体体现以下几个方面。
一是系统的性能大大提高,提升了用户体验。系统先进的数据处理、存储和传输、显示机制,有效地提高了数据的传输速度,缩短了页面的响应时间,大大提升了用户体验。
二是系统开发平台支持跨数据库的多种数据源提取和多个数据源的同时提取,实现报表数据源的多样化。
三是系统开发平台灵活易学,提高了报表的维护开发效率。系统采用了前后端分离的设计原则,可以根据需求分别修改前后端内容,大大提高了报表开发维护效率。
四是统一的数据源和处理分析标准,提高了数据分析的正确率和效率。同一类数据统一提取,统一更新,避免了多次重复提取和数据差异,提高了系统数据分析的正确率和效率。
五是强大的数据分析逻辑处理能力,为复杂报表的开发提供了技术支撑。
六是移动客户端,实现随时随地访问系统。移动端看报表,随时随地掌握企业运行情况,为各层管理人员提供坚实的数据支撑。
本文给出了企业级报表系统数据分析系统的整个设计和实现过程。对原系统的总体架构进行了分析改进,重点介绍了系统实施过程中的数据采集子系统、数据整合处理子系统和数据显示子系统,详细介绍了开发过程中遇到的难点及解决方案。系统的良好运行有效解决了原系统存在的诸如系统功能有限、单一数据源、界面单调、开发维护困难、平台扩展性差等问题,满足了建设需求,达到了系统建设目标。
但是随着系统的广泛深入推广运行,系统仍需进一步的改进和完善,如:目前报表系统的数据来源还仅限于综合项目管理系统和补录数据,暂时还未对接其他业务系统数据。在未来根据管理需要,可拓展开发出基于多业务数据库的报表,并根据各项业务数据分析实现对业务数据的自动预警分析及优化建议功能,提高公司的风险预警及管控能力。