运维工单数据导入导出系统及方法技术方案

技术编号:33288223 阅读:14 留言:0更新日期:2022-05-01 00:00
本发明专利技术公开了运维工单数据导入导出系统及方法,属于工单数据处理技术领域,本发明专利技术要解决的技术问题为如何提高运维工单数据导入导出的处理速度,降低数据导入导出对应用运行的影响,采用的技术方案为:该系统包括,限流模块,用于限制导入请求的运维工单数据文件的大小;导入解析模块,用于解析导入运维工单数据文件,实现导入数据文件列和Java实体类字段的自动映射、赋值和入库;导出分发模块,用于导出运维工单数据任务的调度,并对于大数据量的导出任务进行拆分;导出执行模块,用于执行运维工单数据导出任务;执行监控模块,用于记录运维工单数据导入和导出任务的数据量大小以及执行时间;基础资源监控模块,用于监控存储、内存及CPU的使用情况。存及CPU的使用情况。存及CPU的使用情况。

【技术实现步骤摘要】
运维工单数据导入导出系统及方法


[0001]本专利技术涉及工单数据处理
,具体地说是一种运维工单数据导入导出系统及方法。

技术介绍

[0002]随着互联网技术的飞速发展,各种各样的信息化系统越来越多的应用在日常的工作生活中,与此同时,也积累了大量的运维和运营数据。为了充分挖掘数据的价值,通常会将数据导入到信息化系统进行处理,或将历史数据导出进行分析。由于数据导入和导出是使用频率相对较低的功能,通常未拆分为单独的应用模块。但与此同时带来的一个问题就是导入和导出功能对应用运行性能的影响。尤其是导出功能,有时会涉及到大量的数据的导出,此时会占用应用较多的内存,进而影响应用的响应时间,甚至会造成内存溢出等问题,给用户体验造成不利影响。
[0003]运维工单数据导入导出频繁且人工操作工作量大,同时容易出现失误;而通过计算机导入导出效率低且影响计算机正常运行。故如何提高运维工单数据导入导出的处理速度,降低数据导入导出对应用运行的影响是目前亟待解决的技术问题。

技术实现思路

[0004]本专利技术的技术任务是提供一种运维工单数据导入导出系统及方法,来解决如何提高运维工单数据导入导出的处理速度,降低数据导入导出对应用运行的影响的问题。
[0005]本专利技术的技术任务是按以下方式实现的,一种运维工单数据导入导出系统,该系统包括,
[0006]限流模块,用于限制导入请求的运维工单数据文件的大小,避免由于导入对系统存储空间的占用,而导致应用运行的异常;
[0007]导入解析模块,用于解析导入运维工单数据文件,实现导入数据文件列和Java实体类字段的自动映射、赋值和入库;
[0008]导出分发模块,用于导出运维工单数据任务的调度,并对于大数据量的导出任务进行拆分;
[0009]导出执行模块,用于执行运维工单数据导出任务;
[0010]执行监控模块,用于记录运维工单数据导入和导出任务的数据量大小以及执行时间;
[0011]基础资源监控模块,用于监控存储、内存及CPU的使用情况。
[0012]作为优选,所述运维工单数据包括工单编号、工单名称、工单描述、工单状态、云中心、创建人名称、处理人名称、创建人技能组、处理人技能组、客户名称、客户联系人名称、客户类别、客户联系人电话、客户联系人邮箱、工单级别、工单一级分类、工单二级分类、工单三级分类、工单四级分类、处理沟通记录、修改时间及修改人。
[0013]更优地,所述限流模块包括至少一个请求拦截器,请求拦截器拦截所有文件导入
请求,并获取该系统当前存储空间剩余容量以及该系统允许的最小存储剩余容量。
[0014]更优地,所述导入解析模块利用反射对Java中的实体类字段进行赋值,并支持多级嵌套字段;
[0015]导入解析模块利用Java注解定义导入文件中列与Java中实体类字段的对应关系、列数据特征以及列处理方式;其中,Java注解包含的列数据特征包括列数据类型及列格式化字符串;Java注解包含的列处理方式包括是否去除列值首尾的空格以及是否进行默认值设置;
[0016]导入解析模块包括通用的导入接口协议,用户只需要实现将数据插入数据库的逻辑即可实现数据的自动解析和入库;导入解析模块在入库时采用批量入库的方式。
[0017]更优地,所述导出分发模块获取当前导出数据量的大小,若超过系统设置的单文件大小,则将当前导出按照系统设置的单文件大小拆分为多个子文件导出任务;导出分发模块利用消息队列分发导出子任务;导出分发模块在创建导出子任务时包含主任务的ID以及子任务数据片段的起始值和终止值。
[0018]更优地,所述导出执行模块监听消息队列的导出任务,并根据导出数据片段的起始值和终止值分页查询数据;导出执行模块监听到导出分发模块发送的消息后,获取消息参数,执行相应的导出任务;导出任务执行完成后将导出主任务编号、导出子任务编号以及导出子任务对应数据文件的信息传递给执行监控模块用于页面显示。
[0019]更优地,所述执行监控模块记录导入数据文件的大小及耗时和导出数据记录条数及耗时,并提供页面查看;执行监控模块在运维工单导入和导出结束后,通过发送邮件通知用户。
[0020]一种运维工单数据导入导出方法,该方法采用SpringBoot作为应用开发框架,定义一个ImportFilter实现javax.servlet.Filter接口,并重写doFilter方法,前端上传文件时采用的Content

Type为multiplepart/form

data,在doFilter方法内获取请求头中的content

length值,其表示当前上传文件的大小;具体包括:
[0021]S1、运维工单数据的导入;
[0022]S2、运维工单数据的导出。
[0023]作为优选,所述步骤S1中运维工单数据的导入具体如下:
[0024]S101、限流模块的请求拦截器拦截应用的所有运维工单数据导入请求,分别从导入请求头中获取当前导入文件的大小;同时从基础资源监控模块中获取当前存储剩余量,基础资源监控模块通过Prometheus的node_exporter采集;从应用配置表中获取该系统允许的最小存储剩余量;
[0025]S102、判断当前存储空间剩余容量减去导入文件大小后是否小于该系统允许的最小存储剩余容量:
[0026]①
、若是,则拒绝当前导入操作,此时的HTTP响应码设置为403;
[0027]②
、若否,则执行步骤S103;
[0028]S103、导入解析模块在开始执行前,记录开始执行时间;并解析Java实体类上的导入注解;其中,解析注解中包含的导入数据列的数据类型及数据格式的数据特征以及是否进行默认值填充及去除首尾空格的处理方式;
[0029]S104、注解解析完成后,执行数据导入方法;数据导入方法遍历解析完成后的导入
文件列定义,利用Java反射依次解析各列的值,并赋值给Java实体类;
[0030]S105、对于嵌套的Java实体属性在赋值前,需要按照嵌套的层级依次进行初始化;数据解析完成后,依次遍历解析后的数据,并根据应用配置表中设置的批量入库条数,执行批量入库操作;
[0031]S106、根据导入结束时间和导入开始时间计算导入执行耗时,并将当前导入数据条数和导入耗时发送给执行监控模块。
[0032]更优地,所述步骤S2中的运维工单数据的导出具体如下:
[0033]S201、导出分发模块获取到运维工单数据导出请求后,查询导出请求对应的数据量大小以及应用配置表中设置的单文件导出数量,并判断当前导出数据数量是否超过了当文件超出数量:
[0034]①
、若是,则执行步骤S202;
[0035]②
、若否,则直接创建导出任务,并将任务信息发送到消息队列,下一步跳转至步骤S203;
[0036]S202、本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种运维工单数据导入导出系统,其特征在于,该系统包括,限流模块,用于限制导入请求的运维工单数据文件的大小;导入解析模块,用于解析导入运维工单数据文件,实现导入数据文件列和Java实体类字段的自动映射、赋值和入库;导出分发模块,用于导出运维工单数据任务的调度,并对于大数据量的导出任务进行拆分;导出执行模块,用于执行运维工单数据导出任务;执行监控模块,用于记录运维工单数据导入和导出任务的数据量大小以及执行时间;基础资源监控模块,用于监控存储、内存及CPU的使用情况。2.根据权利要求1所述的运维工单数据导入导出系统,其特征在于,所述运维工单数据包括工单编号、工单名称、工单描述、工单状态、云中心、创建人名称、处理人名称、创建人技能组、处理人技能组、客户名称、客户联系人名称、客户类别、客户联系人电话、客户联系人邮箱、工单级别、工单一级分类、工单二级分类、工单三级分类、工单四级分类、处理沟通记录、修改时间及修改人。3.根据权利要求1或2所述的运维工单数据导入导出系统,其特征在于,所述限流模块包括至少一个请求拦截器,请求拦截器拦截所有文件导入请求,并获取该系统当前存储空间剩余容量以及该系统允许的最小存储剩余容量。4.根据权利要求3所述的运维工单数据导入导出系统,其特征在于,所述导入解析模块利用反射对Java中的实体类字段进行赋值,并支持多级嵌套字段;导入解析模块利用Java注解定义导入文件中列与Java中实体类字段的对应关系、列数据特征以及列处理方式;其中,Java注解包含的列数据特征包括列数据类型及列格式化字符串;Java注解包含的列处理方式包括是否去除列值首尾的空格以及是否进行默认值设置;导入解析模块包括通用的导入接口协议,用户只需要实现将数据插入数据库的逻辑即可实现数据的自动解析和入库;导入解析模块在入库时采用批量入库的方式。5.根据权利要求4所述的运维工单数据导入导出系统,其特征在于,所述导出分发模块获取当前导出数据量的大小,若超过系统设置的单文件大小,则将当前导出按照系统设置的单文件大小拆分为多个子文件导出任务;导出分发模块利用消息队列分发导出子任务;导出分发模块在创建导出子任务时包含主任务的ID以及子任务数据片段的起始值和终止值。6.根据权利要求5所述的运维工单数据导入导出系统,其特征在于,所述导出执行模块监听消息队列的导出任务,并根据导出数据片段的起始值和终止值分页查询数据;导出执行模块监听到导出分发模块发送的消息后,获取消息参数,执行相应的导出任务;导出任务执行完成后将导出主任务编号、导出子任务编号以及导出子任务对应数据文件的信息传递给执行监控模块用于页面显示。7.根据权利要求6所述的运维工单数据导入导出系统,其特征在于,所述执行监控模块记录导入数据文件的大小及耗时和导出数据记录条数及耗时,并提供页面查看;执行监控模块在运维工单导入和导出结束后,通过发送邮件通知用户。8.一种运维工单数据导入导出方法,其特征在于,该方法采用SpringBoot作为应用开
发框架,定义一个ImportFilter实现javax.servlet.Filter接口,并重写doFilter方法,前端上传文件时采用的Content

Type为multiplepart...

【专利技术属性】
技术研发人员:孙光涛陈尧张永皋
申请(专利权)人:浪潮云信息技术股份公司
类型:发明
国别省市:

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

1