前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何选择正确报表工具软件 之 报表软件产品的数据源分析

如何选择正确报表工具软件 之 报表软件产品的数据源分析

原创
作者头像
生产数据创新应用
发布2024-04-05 10:57:06
1741
发布2024-04-05 10:57:06

在企业生产管理和运营的数字化转型过程中,报表工作作为基础型工作,其自动化、智能化已经成为了必然趋势,也是判断其数字化转型是否成功的前提。所以选择一套合适的报表工具软件显得尤为重要,这不仅可以降低工作量、提高工作效率和报表工作的准确性,还可以增强决策的实时性和科学性,为企业的发展提供有力的支持。

那选择报表工具时会不会存在误区呢?

选择报表工具软件时,一般大家都认为,需综合考虑报表设计能力、报表交互能力、数据源类型、数据处理能力和安全性,确保选择到适合自己的工具,其实这些考虑的方面没有错误,并且是选择报表一定要考虑的问题,但误区也出现在这些方面。

误区就是没有站在最终用户的角度进行考虑,个人认为以上方面都是站在了软件开发者、报表系统设计者、系统维护者的角度进行考虑,同时我们也应该站在用户角度去考虑一下,那我们在选择报表问题时,就会多一些考虑因素,如原有报表工作方式如何调整和转换,我不懂SQL、数据库知识,如何获取数据,如何从原有的报表方式迁移过来,如何解决数据修正问题,如何让报表自身作为数据源继续提供数据服务,需要解决的是指标报表还是业务管理等等。如果没有从用户角度考虑,其结果就是报表工具在企业部署了,但现实比想象残酷——没有解决报表自动化问题。

本文就从数据源类型的支持角度上来帮助你如何选择报表工具软件,关于其他关于报表工具选择需要考虑的问题,可以参考个人写的其他相关文章。

报表定义及常见的报表工具

在介绍数据源方面的区别前,我们需要明确两个问题:什么是报表及市面上报表工具有哪些成熟产品。

(1)首先看一下什么是报表

报表是一种用于展示、分析和传递数据信息的表格或文档,通常用于企业或组织内部的管理、决策和沟通。报表可以包含各种类型的数据,如财务数据、销售数据、库存数据等,并以图表、表格、图形等形式展示,帮助用户更好地理解数据、分析趋势和做出决策。由定义我们可以看出,报表是目标结果的展示,不是业务管理,例如我们需要的是某一时间段的指标数据所组成的报表视图,如合同管理方面的合同额、合同数量、应收账款、已开票、已回款等指标数据,把这些指标组织成一张管理需要的可打印、传递的报表,并根据管理需要定期生成,而不是合同信息录入、合同信息编辑、合同审批、合同删除、合同详情查询等内容,这些是合同业务管理所完成的内容。

所以,在选择报表工具软件之前,首先确认你重点是要业务管理系统,还是指标报表工具软件,他们还是有区别的,一个是创造数据,一个是消费数据。本文中所指的报表,是指传统可以打印、在一页纸或一个画面中显示的报表。

(2)市面上常见的报表工具

理解了什么是报表,那我们看看国内市面上有哪些报表软件工具呢?在这儿,我把市面上的报表分为三类:

第一类: “业务管理系统+报表工具软件”类型的报表系统, 这类工具顾名思义,就是既有业务管理功能,同时又具备报表能力,一般这类工具更侧重业务管理功能。类似的产品非常多,比较典型的有:帆软报表、广东思迈特、亿信华晨等等,这类软件具有以下特点:

产品自成体系,从数据产生、管理到消费一条龙服务,首先有业务管理功能,即业务数据的增、删、查、改,从而形成数据记录,然后对这些数据记录执行统计,形成报表,由于数据在本地可控,很容易对原始数据记录进行多维度分析和钻取,从而有了智能BI分析能力。再者,如果数据不在本地(跨业务系统),那就需要ETL或各种接口集成其他业务系统数据记录,然后与本地业务数据统一报表和BI能力,区别在于集成其他业务系统业务数据,但不具备业务管理能力(增、删、改)。

第二类: 单纯的报表软件工具,他所管理的主要是指标及指标可视化,所以更侧重业务系统或生产系统产生的数据指标管理,如生产过程数据,包括发电、电网、钢铁、化工、水泥等企业生产车间设备产生的实时数据,而报表工具只是数据消费者,原始数据是不能修改的,它没有BI分析的需要,只有按照业务进行的过程分析和结果展示,与实时变化的时间、生产环境、生产方式、相关参数变化、生产工况、统计口径等因素有关。此类报表产品比较少,比较典型的产品有:青岛国瑞行列视(RCV)、OSI PI实时数据库自带的PI-DataLink(英国剑维)。

第三类: 报表组件类,如润乾报表、水晶报表,该类报表产品提倡的是被集成,他的能力除了自身功能外,还需要集成者的赋能,包括数据源赋能、报表交互能力赋能等,一般它的目标用户是程序员、软件集成商。

报表数据源类型分析

回归我们的话题,选择报表工具软件时,在数据源类型的支持上,我们应该注意什么。

如前所述,按照报表工具的类型,数据源类型我们做如下分类:

(1)从数据库类型上看,数据源类型我们可以分为关系型数据和非关系数据,简单来说就是SQL语句支持的数据源和非SQL语句支持的数据源,支持SQL的数据源一般都可以转化为数据集(表结构);非SQL语句支持的数据源则需要根据一定的规则和特定接口读取数据。

(2)从数据类型上,我们分为管理型业务数据和生产型实时数据(历史数据),管理型业务数据如人资数据、合同数据、财务数据、资产数据等,数据存在关键字段和非关键字段,存在主数据和元数据之说;生产型数据,如某车间某管道出口水温度,他是一个标签(测点),他的数据是时时刻刻产生的温度值,每天的数据量达到几万甚至十几万,每个车间标签点(测点)少则几百,多则几十万,其数据量甚是庞大。

(3)外部数据源和内部数据源之分,以上两种我们都可以称之为外部数据源,他们的数据都需要从报表系统外部的“数据库”中获取;当生成报表后,我们认为该报表中的数据集合(报表指标数据)也应该是一个数据源,应该直接被其他报表引用(站在用户角度来说,应在报表页面级完成),这样报表之间的指标,根据用户、专业、用途、口径进行互相引用,达到指标共享的目标,那这些报表页面数据我们就称之为内部数据源。

从数据源类型上看,一般的报表会有有所倾向,如目前市面上的产品,除了青岛国瑞的行列视(RCV)和OSI PI实时数据库自带的PI-DataLink工具之外,其他报表软件产品基本上都是面向关系数据源的(或有其他类型转换而来),对于业务管理类数据处理和BI分析具有先天优势,如项目管理、人资管理、设备管理、车辆管理等业务应用和报表展示,而对于生产型过程数据的报表能力一般都支持不足。为了解决这一短版,各报表产品都提出了相应对策,采用后台程序预处理、专用接口程序等方式进行解决,但基本思路都是提前将生产过程数据按照预设置指标统计方式(见后图),提前统计完成并存储关系数据库,然后采用通用的数据集定义实现报表指标映射。

而PI-DataLink是专门针对PI实时数据库系统开发的一套Excel报表插件,功能强大,借助Excel自身的强大报表能力,可以解决大部分报表需求,但其缺点也非常明显,那就是缺少自动化,没有报表管理能力,所有报表都以Excel文件的方式存储在个人电脑中,报表结果很难共享。对关系数据库及其他类型数据库的支持,那就智能借助Excel自身的数据连接能力了。

行列视报表软件的数据源则更倾向于基于生产过程数据的实时数据库,界面设计采用类似web端Excel式的单元格模式,数据来源、数据计算、单元格处理、报表级数据分析都是采用单元格中函数的形式实现。根据报表数据展示要求,每个单元格都是采用函数的形式与实时数据库或关系数据库直接关联,从页面上就可以清楚了解数据的来源、统计方式。目前支持各种国内外常见的实时数据库,而产品自身也集成GRBase实时数据库,数据统计方式可达上百种,满足各种生产过程数据统计需求。而行列视对关系数据库的支持呢,只能说是支持,可以获取各种统计数据,满足指标计算没有问题,但对业务处理能力,如记录的增、删、查、改,根据业务数据的各种属性进行自定义查询,不支持分页展示详细记录数据。除了实时数据库和关系数据库,行列视还有另外一种数据源,那就是系统内其他报表中的数据,也可以作为数据源,类似Excel文件可以引用本地其他Excel文件的单元格数据一样,对于web端报表工具而言,算是一种创新吧,并且非常实用。

数据源连接方式对比

下面将帆软报表、广东思迈特、亿信华晨、润乾报表、水晶报表归为一类,主要讨论以关系数据库为主要数据来源,将帆软报表软件作为代表,将行列视作为生产报表软件作为一类,该类以实时数据库为主要数据源,下面对其数据源的支持进行分析。

(1)以关系数据库为主要数据源的帆软报表

根据各产品提供的文档,数据源连接方式常见的包括如下方式:

  • l 通过JDBC驱动连接数据库;
  • l 使用JNDI的方式连接数据库;
  • l 通过XMLA方式连接多维数据库;
  • l 本地文件数据库;
  • l 其他数据源,如通过 JCO 连接 SAP 系统。

以上数据连接方式,支持的数据库类型可以包括如下两大类:

1)关系型数据库:常见的关系型数据库有MySQL、Oracle、SQLserver等,这类数据库基本上都支持jdbc或者odbc链接。

2)非关系型数据库:如mongodb、hadoop、hbase、spark等。这些数据库有的提供jdbc接口,有的没有。即使提供jdbc接口,数据读取性能上可能也有问题,而有些报表工具针对这类数据库进行了二次开发,能够高效地读取数据,在该类报表使用过程中,对于实时数据库、时序数据库等面向生产过程数据的非关系数据库,就属于此类。

需要注意的是,虽然大部分报表工具都提供自定义数据源接口,用Java等高级语言来编写数据源的计算程序,但这种方式可能会增加耦合度以及后期维护工作量。

(2)以实时数据库为主要数据源的行列视报表产品

关于青岛国瑞行列视(RCV)和OSI PI实时数据库自带的PI-DataLink报表工具,属于以实时数据库为主要数据源的报表产品。由于PI-DataLink的独特性,这儿就不做介绍了,就以行列视报表产品为主介绍其数据源。行列视支持的数据源包括:

ü 实时数据库专用接口,定制开发,支持目前国内常见的各种实时数据库品牌,取数方式一般采用实时数据库提供的专用API接口,在报表中体现为界面中的单元格函数;

ü 关系数据库,支持mySQL、oracle、SQLserver、华为GaussDB、达梦数据库、金仓数据库等,采用最基本的SQL查询语句,且一般都是在某些参数下某个字段的统计结果;

ü 其他报表页面中的数据(内部数据源引用)

注:行列视的数据源虽然与帆软报表的数据源类似,但取数方式上却相差非常大,帆软报表以SQL为主,获取数据集,按照字段与界面元素关联,而行列视的界面设计、数据操作全部在单元格中完成,以单元格为目标,以数据库中的数据为原始基础数据,采用“函数方式”直接返回计算后的单个指标数据并关联至目标单元格,目标性非常强。

帆软报表中数据集与报表的对应关系

行列视单元格与数据源之间的对应关系

数据源的取数处理方式对比

根据报表的需求,很多报表中的指标数据需要进行预处理,以满足快速抽取和展示的需要。对于帆软报表类似的产品,一般通过建立视图、合并数据表,形成直接应用于模板设计的数据集,报表直接和数据集进行交互、关联。当用户发起报表请求时,一般根据报表查询条件,按照数据集定义即时从数据库中获取数据,然后填充到模板中生成报表返回。也就是报表都是模板和数据集即时关联的产物,至于数据集是数据来源的定义,直接关联数据库,在生成报表时执行查询功能。

而针对生产过程数据,对于月度统计、年度统计指标,一个标签点的数据动辄几百万、上千万的数据统计,则必需进行预处理,预处理方式一般采用序列化和提前调度等方式。

对于生产数据的这种情况,帆软报表需要提前进行专用接口程序进行数据预处理,并将结果写入指定数据库表中,形成报表需要的数据集,报表展示时与结果数据集进行交互,该情况下,导致实时数据源、专用接口程序、数据集及报表展示等环节的松耦合程度大大降低,后台程序根据配置提前完成指标统计,而报表展示则与后台程序脱节,直接管理结果数据库,对于数据排错、数据源追溯、计算过程分析及后续维护都带来工作量的增加,其扩展性受到严重制约。

对于行列视报表而言,实时数据库的数据预处理则显得更加专业,数据源的定义,它通过界面单元格与实时数据源之间通过函数方式直接建立计算关系,其数据获取来源、统计方式、计算方式、关联参数等都在单元格中体现,最终用户可以直接进行交互。关于报表定义好后,何时进行数据处理则需要根据用户的设置采用不同的执行方式。如果用户采用定时调度,则报表单元格中的取数定义在指定时间执行,调度完成后报表则直接打开包含数据的报表,无论数据多少,报表展示时间可以忽略不计,瞬间打开。如果用户采用在打开报表的时候执行,则在系统第一个用户浏览报表时,后台调度即时按照单元格中的定义从数据源获取数据,获取完数据后,结果在报表页面中展示,该方式在首次打开报表时,根据指标数量和取值周期长短,会有一定的时间延迟,但在后续的报表展示时,则不会再有延迟,这是由于在该方式下类似第一次打开该报表时执行了报表取数行为,同时系统进行了缓存,后续报表展示直接从缓存中读取,以此提升用户体验。如果由于模板调整,需要报表重新执行取数行为,只需要在报表界面上执行“重算”功能,则该报表就类似第一次打开时的情景,重新调度和缓存。

行列视报表调度方式

注:行列视生成的报表,在系统中会将报表结果分别存储模板、带数据的报表页面、报表中的数据三个内容分别存储并应用于不同场景,报表模板用于记录报表生成时的指标来源、计算关系和报表中指标的组织方式,带数据的报表页面用于快速展示,提升用户体验,报表中的数据独立存储,方便后续使用,由此可以看出,行列视每个报表生成后会与后台数据源解耦,在界面上进行的任何操作都不会影响数据源,此种情况可以让结果报表适应数据修正、管理审批、外部填报等多种应用场景。

报表数据与数据源之间的数据关系

对于用户而言,当报表查询命令发出后,报表软件生成报表直接返给用户,那返回的报表界面可以浏览、下载、修正等操作,那么此时,报表中的数据与数据源的数据有什么关系呢,看似无关紧要的问题,却能给大家一个选择报表工具的重要参考。如下图所示:

报表样式(来自网络)

上面这张报表为一张月报,根据报表模板生成了该报表视图,对于帆软报表和行列视报表而言却有不同的管理方法。

(1)对于帆软报表

对于帆软报表而言,只是数据集与数据模板结合的产物,每次打开都会有相同的报表生成方法,如果该报表具备修改能力,则修改报表中的数据就相当于修改了数据库的原始数据,所有用户再次打开该报表时,数据都会发生变化。所以,报表中的数据和数据源中的数据是一致的。

(2)对于行列视报表

对于行列视报表而言,每次生成的报表后,都会与原有数据源进行解耦,在系统中会将报表结果分别存储为模板、带数据的报表页面、报表中的数据三个独立内容,以应用于不同场景。其中,报表模板用于记录报表生成时的指标来源、计算关系和报表中指标的组织方式;带数据的报表页面用于快速展示,提升用户体验;报表中的数据独立存储,方便后续使用,便于统计和分析。由此可以看出,在生成后的报表界面上进行的任何操作都不会影响原始数据源,此种情况可以让报表很容易适应于数据修正、管理审批、外部填报等多种应用场景。

行列视报表存储管理方式

总结

术有专攻,各有所长,不同的报表系统软件具有不同的特点,大家在选择报表软件产品时,应综合考虑,至少从以下几个方面考虑:

(1)业务需求:首先明确你的报表需要解决的业务需求,包括报表类型、数据来源、报表应用等。不同的报表软件工具可能有不同的功能和适用范围,因此需要根据实际需求来选择合适的工具。

(2)操作简便性:考虑报表软件工具的易用性,即是否能够快速上手,并轻松完成报表的设计和生成。对于没有编程经验或报表设计经验的用户来说,选择操作简单、界面友好的工具是更好的选择,如果能够与原有工作方式(如Excel或WPS)一样或相似是最好的选择。

(3)数据源类型及数据处理能力:报表软件工具的数据处理能力也是一个重要的考虑因素,尤其是要考虑数据类型是管理业务数据还是生产过程数据。需要评估报表工具的实现方式,是否能够处理大量数据,并且能够快速生成报表。此外,还需要考虑工具是否支持多种数据源。

(4) 报表的扩展性:所选择的目标报表工具不应局限在报表展示上,还应考虑报表工具的扩展性功能,如对外提供数据能力,被集成能力,赋能其他业务系统报表的能力等。

(5)安全性:需要评估工具是否提供数据加密、权限控制等安全功能,最好是以用户为报表归集对象进行报表和数据的私有化管理方式为主,同时保留数据共享性。

(6)成本和预算:最后,需要考虑报表软件工具的成本和预算,不同的工具可能有不同的定价方式和费用,需要根据实际预算来选择适合的工具。

综上所述,选择报表软件工具时,需要综合考虑业务需求、操作简便性、数据源类型及数据处理能力、报表工具的扩展性、安全性和成本等因素,以选择到最适合自己的工具。本文主要是从数据源方面进行论述,关于其他方面的考虑可以参考本人写的其他相关文章,希望这篇文章能够帮助你选择到适合你的报表系统。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 那选择报表工具时会不会存在误区呢?
  • 报表定义及常见的报表工具
  • 报表数据源类型分析
  • 数据源连接方式对比
  • 数据源的取数处理方式对比
  • 报表数据与数据源之间的数据关系
  • 总结
相关产品与服务
腾讯云 BI
腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档