一种基于微服务的报表生成方法及系统技术方案

技术编号:38141385 阅读:13 留言:0更新日期:2023-07-08 09:56
本发明专利技术的实施例公开了一种基于微服务的报表生成方法及系统。方法应用于第一服务器,包括:创建指定报表任务,向第二服务器发送所述指定报表任务,以通过所述第二服务器根据所述指定报表任务向数据库发送查询数据的指令;获取数据库的各项数据;对获取的数据进行筛选,选择所述指定报表任务需要的数据;将筛选后的数据填入预定义模板中,生成指定报表;将生成的指定报表发送到客户端。系统包括第一服务器、第二服务器、客户端、数据库和分布式锁主管节点。本发明专利技术拆解出多个服务端,能够应对日益增长的业务规模,提高了报表的安全性并提高数据的查询搜索速度,允许多用户同时管理,优化了操作流程。化了操作流程。化了操作流程。

【技术实现步骤摘要】
一种基于微服务的报表生成方法及系统


[0001]本专利技术涉及互联网报表生成
,特别涉及一种基于微服务的报表生成方法及系统。

技术介绍

[0002]随着互联网技术的不断发展,对于部分企业而言,需要处理并整合的数据呈现出指数型的增长。依照过往经验,该项工作主要以人工的方式执行,同时伴随软件辅助。但是随着数据规模的不断上升,人工处理的方式显然效率低下;同时软件辅助还需开发人员熟练掌握各种接口,增加了学习的成本。因此一套功能完整、可操作性强、易于学习的软件显得尤为重要。
[0003]目前的报表生成相关的技术方案,主要是以Excel的形式进行统计与展示,分为客户端以及服务端。其大致流程如下:(1)在Excel中创建表结构以及单元格,同时,向服务端发送数据获取请求,请求中需要包含供服务端进行数据库查询的必要标识;(2)服务端根据客户端发过来的请求的标识,通过数据库查询到对应的记录,并返回给客户端;(3)客户端将得到的数据渲染到Excel表格的单元格中,通过人工调整,生成报表。
[0004]当前报表生成的方法存在以下不足:(1)服务端采用单体架构,收到客户端的请求之后直接进行数据库的查询并返回结果,当系统规模不断扩大之后,所有的数据库访问都聚合在同一个服务中,会导致系统的压力过大;(2)Excel生成报表,当数据量十分庞大时,Excel的查询和计算的速度会明显下降。Excel的安全性十分有限,只能限制用户访问和修改的权限,但是无法对用户进行角色的管理,也不能对数据进行行级的访问限制。由于Excel程序是一个单机程序,所以一个Excel文件通常无法被多个用户同时管理;(3)使用Excel生成报表时,每次都需要手动配置相关信息,同时也无法定时生成特定时间范围的报表,未能支持邮箱发送功能。灵活性较差的同时也耗费大量时间。

技术实现思路

[0005]有鉴于此,本专利技术实施例的目的在于提供一种基于微服务的报表生成方法及系统,拆解出多个服务端,能够应对日益增长的业务规模,提高了报表的安全性并提高数据的查询搜索速度,允许多用户同时管理,简化并优化了操作流程。
[0006]第一方面,本专利技术实施例提供了一种基于微服务的报表生成方法,其中,
[0007]创建指定报表任务,所述指定报表任务通过预定义模板生成。
[0008]向第二服务器发送所述指定报表任务,以通过所述第二服务器根据所述指定报表任务向数据库发送查询数据的指令。
[0009]获取数据库的各项数据。
[0010]对获取的数据进行筛选,选择所述指定报表任务需要的数据。
[0011]将筛选后的数据填入所述预定义模板中,生成指定报表。
[0012]将生成的指定报表发送到客户端。
[0013]其中,所述第一服务器为数据聚合服务器,所述第二服务器为下游服务器。
[0014]结合第一方面,本专利技术实施例提供了第一方面的第一种可能的实施方式,其中,所述预定义模板内设有若干标记,所述标记包括章节锚点、文本标记、重复文本标记、Table标记和Chart标记。
[0015]所述章节锚点包括若干个,用于在所述已定义模板中区分不同的章节。
[0016]所述文本标记包括若干个,分别用于在通过数据库获取的数据中对应指定的文本内容。
[0017]所述重复文本标记包括若干个,分别用于在通过数据库获取的数据中对应指定的重复出现的文本内容。
[0018]所述Table标记包括若干个,分别用于在所述已定义模板中对应指定的简单表和动态列表。
[0019]所述Chart标记包括若干个,分别用于在通过数据库获取的数据中对应指定的数据源的支持对象及对象数组。
[0020]结合第一方面,本专利技术实施例提供了第一方面的第二种可能的实施方式,其中,所述数据库采用mysql或minio存储器。
[0021]结合第一方面,本专利技术实施例提供了第一方面的第三种可能的实施方式,其中,生成的指定报表采用word格式或采用html形式。
[0022]所述html形式可嵌入邮件中进行发送。
[0023]结合第一方面,本专利技术实施例提供了第一方面的第四种可能的实施方式,其中,还包括:
[0024]分别在每天和/或每周和/或每月和/或每年的固定时间,执行指定报表的创建任务,将生成的指定报表发送到客户端。
[0025]结合第一方面,本专利技术实施例提供了第一方面的第四种可能的实施方式,其中,还包括:
[0026]通过cronjob在每天和/或每周和/或每月和/或每年的固定时间,执行指定报表的创建任务。
[0027]结合第一方面,本专利技术实施例提供了第一方面的第四种可能的实施方式,其中,还包括:
[0028]向第二服务器发送所述指定报表任务后通过所述第二服务器向数据库发送获取目标数据的分布式锁请求,使数据库向分布式锁主管节点发送获取目标数据的分布式锁请求,并使分布式锁主管节点读取目标数据的分布式锁授权列表,若所述分布式锁授权列表中目标数据对应的节点的本地锁的使用状态为释放状态,则当前节点的授权状态为未授权,可向所述数据库发送目标数据的分布式锁授权指令。
[0029]接收数据库返回的获得分布式锁授权指令的目标数据,并使所述分布式锁授权列表中目标数据对应的节点的授权状态设置为已授权。
[0030]第二方面,本专利技术实施例还提供了一种基于微服务的报表生成方法,其中,包括:
[0031]接收第一服务器发送的指定报表任务,其中,所述第一服务器为数据聚合服务器,所述第二服务器为下游服务器。
[0032]根据所述指定报表任务,向数据库发送查询数据的指令。
[0033]结合第二方面,本专利技术实施例提供了第二方面的第一种可能的实施方式,其中,还包括:
[0034]接收第一服务器发送的指定报表任务后,根据指定报表任务生成用于获取目标数据的分布式锁请求,向数据库发送所述分布式锁请求,使数据库向分布式锁主管节点发送获取目标数据的分布式锁请求,并使分布式锁主管节点读取目标数据的分布式锁授权列表,若所述分布式锁授权列表中目标数据对应的节点的本地锁的使用状态为释放状态,则当前节点的授权状态为未授权,可向所述数据库发送目标数据的分布式锁授权指令。
[0035]第三方面,本专利技术实施例还提供了一种基于微服务的报表生成系统系统,其中,包括:
[0036]第一服务器,用于生成指定报表任务,得到并筛选数据,生成指定报表,所述第一服务器为数据聚合服务器。
[0037]第二服务器,用于接收指定报表任务,发送查询数据的指令和获取目标数据的分布式锁请求,所述第二服务器为下游服务器。
[0038]客户端,用于接收生成的指定报表。
[0039]数据库,用于存储数据,接收查询数据的指令和获取目标数据的分布式锁请求,并向分布式锁主管节点发送获取目标数据的分布式锁请求,得到所述目标数据的分布式锁授权指令,向所述第一服务器发送目标数据。
[0040]分布式锁主管节点,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于微服务的报表生成方法,其特征在于,应用于第一服务器,包括:创建指定报表任务,所述指定报表任务通过预定义模板生成;向第二服务器发送所述指定报表任务,以通过所述第二服务器根据所述指定报表任务向数据库发送查询数据的指令;获取数据库的各项数据;对获取的数据进行筛选,选择所述指定报表任务需要的数据;将筛选后的数据填入所述预定义模板中,生成指定报表;将生成的指定报表发送到客户端;其中,所述第一服务器为数据聚合服务器,所述第二服务器为下游服务器。2.根据权利要求1所述的基于微服务的报表生成方法,其特征在于,所述预定义模板内设有若干标记,所述标记包括章节锚点、文本标记、重复文本标记、Table标记和Chart标记;所述章节锚点包括若干个,用于在所述已定义模板中区分不同的章节;所述文本标记包括若干个,分别用于在通过数据库获取的数据中对应指定的文本内容;所述重复文本标记包括若干个,分别用于在通过数据库获取的数据中对应指定的重复出现的文本内容;所述Table标记包括若干个,分别用于在所述已定义模板中对应指定的简单表和动态列表;所述Chart标记包括若干个,分别用于在通过数据库获取的数据中对应指定的数据源的支持对象及对象数组。3.根据权利要求1所述的基于微服务的报表生成方法,其特征在于,所述数据库采用mysql或minio存储器。4.根据权利要求1所述的基于微服务的报表生成方法,其特征在于,生成的指定报表采用word格式或采用html形式;所述html形式可嵌入邮件中进行发送。5.根据权利要求1所述的基于微服务的报表生成方法,其特征在于,还包括:分别在每天和/或每周和/或每月和/或每年的固定时间,执行指定报表的创建任务,将生成的指定报表发送到客户端。6.根据权利要求5所述的基于微服务的报表生成方法,其特征在于,还包括:通过cronjob在每天和/或每周和/或每月和/或每年的固定时间,执行指定报表的创建任务。7.根据权利要求1所述的基于微服务的报表生成方法,其特征在于,还包括:向第二服务器发送所述指定报表任务后,通过所述第二服务器向数据库发送获取目标数据的分布式锁请求,使数据库向分布...

【专利技术属性】
技术研发人员:郭香俊姜向前张东升
申请(专利权)人:安芯网盾北京科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1