基于模型的报表定制技术与应用研究

known 发布于 2025-08-25 阅读(447)

顾娟,张楠楠

(大庆油田有限责任公司勘探开发研究院,黑龙江 大庆 163712)

0 引 言

油田开发生产管理对数据应用的深度和广度不断扩展,随时出现大量的数据服务需求。对于信息人员来说,业务需求变更、数据结构变化,报表要不断升级;对于业务人员来说装不完的业务系统,各类报表散落在各个系统中,离散化严重,应用成本高,依然感觉不能满足自己的需求。需要通过信息技术与管理模式、业务模式深度融合,充分挖掘和有效利用数据,提高开发生产管理指令执行效率、判断依据精准率。

结构化数据应用服务常规模式是由信息人员提供固定的应用样式,实现的主流方式有两类:一类是信息人员与业务人员协作完成的编程定制方式,即自主开发方式,面对日益复杂多变的业务需求,自主开发方式效率低,已有系统应用功能高度耦合,程序代码复用程度差;一类是基于面向通用性的BI(商业智能)报表工具,其功能虽然强大,但操作门槛高、学习成本高,只能面向信息人员。无论自主开发还是商业报表工具均需要信息人员专人维护开发,且都不能很好地适应和快速地响应业务需求。针对以上问题,结合两种

数据服务模式的优势,将需要信息人员进行的数据组织工作由基于模型驱动模式替代,利用抽取通用事件,分离逻辑与功能技术,设计开发基于Web的自定义报表工具,使得在信息人员完成数据资源目录建设前提下,业务人员能够借助报表工具,通过选择树型结构展示的数据资源,进行简单的配置后即可独立自主地定制出所需的统计或查询报表。

1 定制报表的功能需求

功能上基于模型的报表定制工具要实现业务人员使用时不需要安装任何软件,通过支持的浏览器,在Web端实现报表定制和浏览。按照业务人员的角色查询被授予访问权限的数据、分配对应的操作权限,且能够按照业务需求独自完成报表定制工作。

基本功能需求有:

(1)数据挖掘过程中,业务人员不需要掌握数据库相关技术,根据选择的业务指标,动态生成访问数据库的SQL。自动获取相关数据并呈现,支持多维度数据分类、汇总及钻取。

(2)将数据库中的分析指标,以业务人员熟悉的分类树方式展示出来。业务人员可选择自己关注的任一生产指标项,以零代码、全可视化方式进行数据的多维度挖掘分析、统计,分析手段涵盖分类统计、汇总、同比、环比、趋势等。支持图表混排、支持数据界限值预警,支持数据穿透,支持数据多维度统计,支持个性化调整。

2 定制报表的设计与关键技术2.1 架构设计

报表定制工具采用B/S模式,通过可视化定制和数据挖掘有机结合,实现功能性、易用性及定制效率的均衡。报表以模型作为底层数据驱动,以报表控件作为展示方式,实现数据的挖掘功能。报表功能永远不可能完全满足业务要求,因此将报表组件作为整体控件,被外部模块编程调用,报表本身提供接入接口,在报表控件无法满足需求时,用户可以挂接外部模块,实现功能的扩展。

报表定制工具采用N层体系架构,具有易用性、良好的稳定性、安全性和可扩展性。体系结构图如图1所示。

图1 报表体系结构图

数据层:负责连接报表的各种数据源。可以是任意数据模型的关系型数据库,多源异构数据库可映射到项目库中统一使用。数据映射的方式包括视图、同义词、数据迁移等不同的模式,实现数据的流转控制。

模型层:数据源数据模型空间关系,即数据表信息、数据表所包含数据项信息、数据表间关联关系、主从关系、维度信息等。定制报表时模型驱动引擎基于该空间关系,动态组织SQL驱动数据。

引擎层:报表定制功能的底层驱动,提供数据、逻辑、功能、界面的驱动,不同的引擎服务于不同的功能。引擎层可通过模型层访问数据,也可直接访问数据。

工具层:在引擎层和模型层基础上,实现零代码、全可视化方式进行图表定制。

2.2 关键技术

2.2.1 基于数据模型驱动

报表业务逻辑可用类似结构化查询语言(:Structured Query Language, SQL)的形式描述,利用其数据查询语言(Data Query Language, DQL)的查询功能处理报表数据间的逻辑关系。要实现灵活的条件定制、分组统计,其数据核心就是对获取SQL的重新组织,但SQL语句是一个非结构化对象,需要将报表数据源结构映射到一个空间数据结构中,建立数据模型对象关系,以此驱动后端报表实现SQL动态组织,即基于数据模型驱动。

空间数据模型是以计算机能够接受和处理的数据形式,为了反映数据库实体的某些结构特性和行为功能,按一定的方案建立起来的数据逻辑组织方式,是对实现数据库结构及业务逻辑的抽象表达。技术思路是将数据模型中的字段、表、业务链、业务模型,转换成点、线、面、体的空间数据模型,每一个数据表的字段为一个点,每一张数据表将点连成线,业务链将一张张表串起来组成一个面,多个业务链交叉平行组成业务模型体,实现数据模型空间化。空间数据模型实体关系图如图2所示。

图2 空间数据模型实体关系图

数据模型空间化是通过建立底层规则一步步收敛不确定性的过程。一是定义数据字典,解耦专业术语与数据库结构,解决表自身的不可描述性问题;二是建立主维度,通常是报表数据源模型描述的基本实体,在油田开发生产管理中主要是指组织机构、开发单元、集输实体、井等,是数据分析、统计的基本对象;三是构建维度链,通过维度链可以将某专业相关数据表基于主维度对象串联起来,实现基于某个维度、跨数据表间的直接数据关联,即以基本对象为关键字的活动数据与主维度的关系;四是级联数据字典,解决项与项之间的关系。

举例来说,以井为基本对象的应用,报表表头如图3所示。

图3 某单位采出井日生产数据表

建立空间数据模型流程及有关说明如图4所示。

图4 空间数据模型建立流程图

2.2.2 基于事件驱动

使用基于事件驱动模式确保报表定制工具的高可扩展性,更容易定制且对动态处理有更好的响应。基于事件去驱动报表、图形及相关功能的调度,方便与用户界面交互。基于事件驱动模式如图5所示。

图5 事件驱动模式

基于事件驱动模式是将单一目的事件定义为基础组件,具有一定执行顺序的组件构成将多个事件串联使用,适用于报表定制的各类实际应用场景。事件的处理转换为业务功能处理,当事件处理器A将事件传递给事件处理器B时,A不会与该事件的后续处理发生任何联系,事件处理器组件相互独立无关联,事件部署、调度相对容易。

报表定制工具抽取的通用事件如表1所示。

表1 通用事件列表

2.2.3 界面与数据相分离模式

由于B/S架构模式,界面与后台程序有许多关联,为了使报表定制工具能够适配各种业务数据的自动集成,降低界面与数据间的耦合度,提高报表工具的稳定性,同时保障数据的安全性,将界面与数据驱动独立封装,设计时实时绑定实现数据库及数据结构的松耦合。通过报表中提供的数据将格式合理分离,直观感受报表数据的具体化、格式化与灵活性。当报表定制工具与数据库交互时,对界面和数据进行解析、组合,从而令数据和界面完全分离,能够提高软件开发代码的复用度,降低数据结构变化和界面改变的相互影响。

报表定制工具通过使用数据与界面相分离模式,实现整体报表完全的结构化处理。界面可以实时根据用户点击的对象,按其对应的数据表、数据项、条件,借助模型引擎动态装配相关图表数据,实现常规数据挖掘图表的展示支持,模型引擎动态装备数据如图6所示。

图6 模型引擎动态装配数据

当用户通过界面点击穿透数据项时,依据用户点击的数据列、当前列绑定的模型节点、关联条件、所属数据表、所属字段均能准确感知,后台数据访问引擎可以按照界面基于数据模型引擎自动生成穿透条件,并根据穿透表目标动态创建穿透报表,或者调用用户预设的穿透模板,实现自动穿透支持。

2.2.4 逻辑与功能相分离模式

市面上报表定制工具大都为低代码平台,做不到无代码是由于无法支持复杂多变的业务逻辑功能。采用逻辑、功能相分离的原则,将常规功能脱离业务需求单独封装,以树型模式实现逻辑的可视化定制,设计报表时根据用户需求灵活组合,适配业务逻辑的复杂性与不确定性

编程架构包含逻辑模块、功能模块。确定业务逻辑和通用功能的分工,逻辑完成报表业务数据统计算法,功能实现通用功能比如报表样式定制。当业务人员使用报表定制工具定义自己的统计算法,设计自己的报表样式时更清晰、更便利、更易操作。自定义统计算法如图7所示。

图7 自定义统计算法

业务人员根据需要随时添加主维度(如井)中的任意属性(单位、驱动方式、开发单元等)作为查询条件,不必定义新的报表或开发新的应用,如图8所示。

图8 定义查询条件

3 结 论

基于模型的报表定制工具,可以由业务人员根据自己的需求独立完成报表定制,不但降低对人员的要求,统计指标的变化无须定义新的报表,大幅降低工作量,而且面对新的业务需求响应更快,能够满足今后一个时期油田开发管理的多变性、复杂性的功能增长需求,同时实现了各专业数据的共享,为结构化数据应用服务提供了新的方向。

标签:  报表 

免责声明

本文来自网络,不代表本站立场。如有不愿意被转载的情况,请联系我们。

iidomino cuppor