CN114416739A - 运维工单数据导入导出系统及方法 - Google Patents
运维工单数据导入导出系统及方法 Download PDFInfo
- Publication number
- CN114416739A CN114416739A CN202210024574.7A CN202210024574A CN114416739A CN 114416739 A CN114416739 A CN 114416739A CN 202210024574 A CN202210024574 A CN 202210024574A CN 114416739 A CN114416739 A CN 114416739A
- Authority
- CN
- China
- Prior art keywords
- export
- data
- import
- work order
- maintenance work
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000008676 import Effects 0.000 title claims abstract description 129
- 238000012423 maintenance Methods 0.000 title claims abstract description 76
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000012544 monitoring process Methods 0.000 claims abstract description 35
- 238000004458 analytical method Methods 0.000 claims abstract description 33
- 238000012545 processing Methods 0.000 claims abstract description 19
- 238000013507 mapping Methods 0.000 claims abstract description 4
- 238000011161 development Methods 0.000 claims description 5
- 238000007405 data analysis Methods 0.000 claims description 4
- 230000004044 response Effects 0.000 claims description 4
- 230000009191 jumping Effects 0.000 claims description 3
- 230000006870 function Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000003607 modifier Substances 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/221—Column-oriented storage; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
- G06F9/4451—User profiles; Roaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了运维工单数据导入导出系统及方法,属于工单数据处理技术领域,本发明要解决的技术问题为如何提高运维工单数据导入导出的处理速度,降低数据导入导出对应用运行的影响,采用的技术方案为:该系统包括,限流模块,用于限制导入请求的运维工单数据文件的大小;导入解析模块,用于解析导入运维工单数据文件,实现导入数据文件列和Java实体类字段的自动映射、赋值和入库;导出分发模块,用于导出运维工单数据任务的调度,并对于大数据量的导出任务进行拆分;导出执行模块,用于执行运维工单数据导出任务;执行监控模块,用于记录运维工单数据导入和导出任务的数据量大小以及执行时间;基础资源监控模块,用于监控存储、内存及CPU的使用情况。
Description
技术领域
本发明涉及工单数据处理技术领域,具体地说是一种运维工单数据导入导出系统及方法。
背景技术
随着互联网技术的飞速发展,各种各样的信息化系统越来越多的应用在日常的工作生活中,与此同时,也积累了大量的运维和运营数据。为了充分挖掘数据的价值,通常会将数据导入到信息化系统进行处理,或将历史数据导出进行分析。由于数据导入和导出是使用频率相对较低的功能,通常未拆分为单独的应用模块。但与此同时带来的一个问题就是导入和导出功能对应用运行性能的影响。尤其是导出功能,有时会涉及到大量的数据的导出,此时会占用应用较多的内存,进而影响应用的响应时间,甚至会造成内存溢出等问题,给用户体验造成不利影响。
运维工单数据导入导出频繁且人工操作工作量大,同时容易出现失误;而通过计算机导入导出效率低且影响计算机正常运行。故如何提高运维工单数据导入导出的处理速度,降低数据导入导出对应用运行的影响是目前亟待解决的技术问题。
发明内容
本发明的技术任务是提供一种运维工单数据导入导出系统及方法,来解决如何提高运维工单数据导入导出的处理速度,降低数据导入导出对应用运行的影响的问题。
本发明的技术任务是按以下方式实现的,一种运维工单数据导入导出系统,该系统包括,
限流模块,用于限制导入请求的运维工单数据文件的大小,避免由于导入对系统存储空间的占用,而导致应用运行的异常;
导入解析模块,用于解析导入运维工单数据文件,实现导入数据文件列和Java实体类字段的自动映射、赋值和入库;
导出分发模块,用于导出运维工单数据任务的调度,并对于大数据量的导出任务进行拆分;
导出执行模块,用于执行运维工单数据导出任务;
执行监控模块,用于记录运维工单数据导入和导出任务的数据量大小以及执行时间;
基础资源监控模块,用于监控存储、内存及CPU的使用情况。
作为优选,所述运维工单数据包括工单编号、工单名称、工单描述、工单状态、云中心、创建人名称、处理人名称、创建人技能组、处理人技能组、客户名称、客户联系人名称、客户类别、客户联系人电话、客户联系人邮箱、工单级别、工单一级分类、工单二级分类、工单三级分类、工单四级分类、处理沟通记录、修改时间及修改人。
更优地,所述限流模块包括至少一个请求拦截器,请求拦截器拦截所有文件导入请求,并获取该系统当前存储空间剩余容量以及该系统允许的最小存储剩余容量。
更优地,所述导入解析模块利用反射对Java中的实体类字段进行赋值,并支持多级嵌套字段;
导入解析模块利用Java注解定义导入文件中列与Java中实体类字段的对应关系、列数据特征以及列处理方式;其中,Java注解包含的列数据特征包括列数据类型及列格式化字符串;Java注解包含的列处理方式包括是否去除列值首尾的空格以及是否进行默认值设置;
导入解析模块包括通用的导入接口协议,用户只需要实现将数据插入数据库的逻辑即可实现数据的自动解析和入库;导入解析模块在入库时采用批量入库的方式。
更优地,所述导出分发模块获取当前导出数据量的大小,若超过系统设置的单文件大小,则将当前导出按照系统设置的单文件大小拆分为多个子文件导出任务;导出分发模块利用消息队列分发导出子任务;导出分发模块在创建导出子任务时包含主任务的ID以及子任务数据片段的起始值和终止值。
更优地,所述导出执行模块监听消息队列的导出任务,并根据导出数据片段的起始值和终止值分页查询数据;导出执行模块监听到导出分发模块发送的消息后,获取消息参数,执行相应的导出任务;导出任务执行完成后将导出主任务编号、导出子任务编号以及导出子任务对应数据文件的信息传递给执行监控模块用于页面显示。
更优地,所述执行监控模块记录导入数据文件的大小及耗时和导出数据记录条数及耗时,并提供页面查看;执行监控模块在运维工单导入和导出结束后,通过发送邮件通知用户。
一种运维工单数据导入导出方法,该方法采用SpringBoot作为应用开发框架,定义一个ImportFilter实现javax.servlet.Filter接口,并重写doFilter方法,前端上传文件时采用的Content-Type为multiplepart/form-data,在doFilter方法内获取请求头中的content-length值,其表示当前上传文件的大小;具体包括:
S1、运维工单数据的导入;
S2、运维工单数据的导出。
作为优选,所述步骤S1中运维工单数据的导入具体如下:
S101、限流模块的请求拦截器拦截应用的所有运维工单数据导入请求,分别从导入请求头中获取当前导入文件的大小;同时从基础资源监控模块中获取当前存储剩余量,基础资源监控模块通过Prometheus的node_exporter采集;从应用配置表中获取该系统允许的最小存储剩余量;
S102、判断当前存储空间剩余容量减去导入文件大小后是否小于该系统允许的最小存储剩余容量:
①、若是,则拒绝当前导入操作,此时的HTTP响应码设置为403;
②、若否,则执行步骤S103;
S103、导入解析模块在开始执行前,记录开始执行时间;并解析Java实体类上的导入注解;其中,解析注解中包含的导入数据列的数据类型及数据格式的数据特征以及是否进行默认值填充及去除首尾空格的处理方式;
S104、注解解析完成后,执行数据导入方法;数据导入方法遍历解析完成后的导入文件列定义,利用Java反射依次解析各列的值,并赋值给Java实体类;
S105、对于嵌套的Java实体属性在赋值前,需要按照嵌套的层级依次进行初始化;数据解析完成后,依次遍历解析后的数据,并根据应用配置表中设置的批量入库条数,执行批量入库操作;
S106、根据导入结束时间和导入开始时间计算导入执行耗时,并将当前导入数据条数和导入耗时发送给执行监控模块。
更优地,所述步骤S2中的运维工单数据的导出具体如下:
S201、导出分发模块获取到运维工单数据导出请求后,查询导出请求对应的数据量大小以及应用配置表中设置的单文件导出数量,并判断当前导出数据数量是否超过了当文件超出数量:
①、若是,则执行步骤S202;
②、若否,则直接创建导出任务,并将任务信息发送到消息队列,下一步跳转至步骤S203;
S202、按照单个导出文件导出数量限制拆分导出子任务,并将子任务信息发送到消息队列;具体为:
S20201、将导出任务进行拆分,拆分后的每个导出子任务对应的导出数据量均小于等于应用设置的单文件数据量;
S20202、任务拆分时,生成一个当前导出任务编号,导出子任务编号由当前导出任务编号和子任务序号两部分组成,子任务序号按照导出数据片段的顺序依次递增;
S20203、导出分发模块将主任务编号、子任务编号、导出数据条件以及导出数据范围的参数通过消息队列的方式发送出去;其中,消息队列采用RabbitMQ,交换器(exchange)采用订阅模式(topic);
S203、导出执行模块监听到导出分发模块发送的消息后,获取消息参数,执行相应的导出任务,并根据导出数据片段的起始值和终止值分页查询数据;
S204、导出任务执行完成后将导出主任务编号、导出子任务编号以及导出子任务对应数据文件的信息传递给执行监控模块用于页面显示。
本发明的运维工单数据导入导出系统及方法具有以下优点:
(一)本发明通过限制导入任务的数量以及对导入进行批量入库操作,对大数据量的导出任务进行拆分,有效的提高了数据导入和导出的处理速度,降低了数据导入和导出对应用运行的影响,改善了用户体验;
(二)本发明实现了的运维工单数据的导入,具有较好的复用性,方便快速实现数据的导入功能开发;
(三)本发明实现了运维工单数据的导出,能够提高大数据量导出的执行效率;
(四)本发明通过限制导入请求的数量以及对导出任务进行拆分,避免了由于文件过大而导致的内存不足问题,提高了系统的稳定性。
附图说明
下面结合附图对本发明进一步说明。
附图1为运维工单数据导入导出系统的结构框图;
附图2为运维工单数据的导入的流程框图;
附图3为运维工单数据的导出的流程框图。
具体实施方式
参照说明书附图和具体实施例对本发明的运维工单数据导入导出系统及方法作以下详细地说明。
实施例1:
如附图1所示,本发明的运维工单数据导入导出系统,该系统包括,
限流模块,用于限制导入请求的运维工单数据文件的大小,避免由于导入对系统存储空间的占用,而导致应用运行的异常;
导入解析模块,用于解析导入运维工单数据文件,实现导入数据文件列和Java实体类字段的自动映射、赋值和入库;
导出分发模块,用于导出运维工单数据任务的调度,并对于大数据量的导出任务进行拆分;
导出执行模块,用于执行运维工单数据导出任务;
执行监控模块,用于记录运维工单数据导入和导出任务的数据量大小以及执行时间;
基础资源监控模块,用于监控存储、内存及CPU的使用情况。
本实施例中的运维工单数据包括工单编号、工单名称、工单描述、工单状态、云中心、创建人名称、处理人名称、创建人技能组、处理人技能组、客户名称、客户联系人名称、客户类别、客户联系人电话、客户联系人邮箱、工单级别、工单一级分类、工单二级分类、工单三级分类、工单四级分类、处理沟通记录、修改时间及修改人。
本实施例中的限流模块包括一个请求拦截器,请求拦截器拦截所有文件导入请求,并获取该系统当前存储空间剩余容量以及该系统允许的最小存储剩余容量。限流模块的工作过程具体如下:
(1)、限流模块拦截应用的所有运维工单数据导入请求,分别从导入请求头中获取当前导入文件的大小;
(2)、从基础资源监控中获取当前存储剩余量;
(3)、从应用配置表中获取系统允许的最小存储剩余量;
(4)、判断当前存储剩余量减去当前导入文件大小后是否小于系统允许的最小存储剩余量:
若是,则拒绝当前导入请求。
本实施例中的导入解析模块利用反射对Java中的实体类字段进行赋值,并支持多级嵌套字段;
导入解析模块利用Java注解定义导入文件中列与Java中实体类字段的对应关系、列数据特征以及列处理方式;其中,Java注解包含的列数据特征包括列数据类型及列格式化字符串;Java注解包含的列处理方式包括是否去除列值首尾的空格以及是否进行默认值设置;
导入解析模块包括通用的导入接口协议,用户只需要实现将数据插入数据库的逻辑即可实现数据的自动解析和入库;导入解析模块在入库时采用批量入库的方式。
导入解析模块的工作过程具体如下:
(1)、导入解析模块在开始执行前,记录开始执行时间;
(2)、解析Java实体类上的导入注解;其中,解析注解中包含的导入数据列的数据类型、数据格式等数据特征以及是否进行默认值填充、去除首尾空格等处理方式;
(3)、注解解析完成后,执行数据导入方法;数据导入方法遍历解析完成后的导入文件列定义,利用Java反射依次解析各列的值,并赋值给Java实体类;
(4)、对于嵌套的Java实体属性在赋值之前需要按照嵌套的层级依次进行初始化;
(5)、数据解析完成后,依次遍历解析后的数据,并根据应用配置表中设置的批量入库条数,执行批量入库操作;
(6)、根据导入结束时间和导入开始时间计算导入执行耗时,并将当前导入数据条数和导入耗时发送给执行监控模块。
本实施例中的导出分发模块获取当前导出数据量的大小,若超过系统设置的单文件大小,则将当前导出按照系统设置的单文件大小拆分为多个子文件导出任务;导出分发模块利用消息队列分发导出子任务;导出分发模块在创建导出子任务时包含主任务的ID以及子任务数据片段的起始值和终止值。
导出分发模块的工作过程具体如下:
(1)、导出分发模块获取到运维工单数据导出请求后,查询导出请求对应的数据量大小以及应用配置表中设置的单文件导出数量;
(2)、判断当前导出数据数量是否超过了当文件超出数量:
若是,则将导出任务进行拆分,拆分后的每个导出子任务对应的导出数据量均小于等于应用设置的单文件数据量;其中,任务拆分时首先生成一个当前导出任务编号,导出子任务编号由当前导出任务编号和子任务序号两部分组成,子任务序号按照导出数据片段的顺序依次递增;导出分发模块将主任务编号、子任务编号、导出数据条件、导出数据范围等参数通过消息队列的方式发送出去。
本实施例中的导出执行模块监听消息队列的导出任务,并根据导出数据片段的起始值和终止值分页查询数据;导出执行模块监听到导出分发模块发送的消息后,获取消息参数,执行相应的导出任务;导出任务执行完成后将导出主任务编号、导出子任务编号以及导出子任务对应数据文件的信息传递给执行监控模块用于页面显示。
本实施例中的执行监控模块记录导入数据文件的大小及耗时和导出数据记录条数及耗时,并提供页面查看;执行监控模块在运维工单导入和导出结束后,通过发送邮件通知用户。
实施例2:
本发明的运维工单数据导入导出方法,该方法采用SpringBoot作为应用开发框架,定义一个ImportFilter实现javax.servlet.Filter接口,并重写doFilter方法,前端上传文件时采用的Content-Type为multiplepart/form-data,在doFilter方法内获取请求头中的content-length值,其表示当前上传文件的大小;具体包括:
S1、运维工单数据的导入;
S2、运维工单数据的导出。
如附图2所示,本实施例步骤S1中运维工单数据的导入具体如下:
S101、限流模块的请求拦截器拦截应用的所有运维工单数据导入请求,分别从导入请求头中获取当前导入文件的大小;同时从基础资源监控模块中获取当前存储剩余量,基础资源监控模块通过Prometheus的node_exporter采集;从应用配置表中获取该系统允许的最小存储剩余量;
S102、判断当前存储空间剩余容量减去导入文件大小后是否小于该系统允许的最小存储剩余容量:
①、若是,则拒绝当前导入操作,此时的HTTP响应码设置为403;
②、若否,则执行步骤S103;
S103、导入解析模块在开始执行前,记录开始执行时间;并解析Java实体类上的导入注解;其中,解析注解中包含的导入数据列的数据类型及数据格式的数据特征以及是否进行默认值填充及去除首尾空格的处理方式;
S104、注解解析完成后,执行数据导入方法;数据导入方法遍历解析完成后的导入文件列定义,利用Java反射依次解析各列的值,并赋值给Java实体类;
S105、对于嵌套的Java实体属性在赋值前,需要按照嵌套的层级依次进行初始化;数据解析完成后,依次遍历解析后的数据,并根据应用配置表中设置的批量入库条数,执行批量入库操作;
S106、根据导入结束时间和导入开始时间计算导入执行耗时,并将当前导入数据条数和导入耗时发送给执行监控模块。
如附图3所示,本实施例步骤S2中的运维工单数据的导出具体如下:
S201、导出分发模块获取到运维工单数据导出请求后,查询导出请求对应的数据量大小以及应用配置表中设置的单文件导出数量,并判断当前导出数据数量是否超过了当文件超出数量:
①、若是,则执行步骤S202;
②、若否,则直接创建导出任务,并将任务信息发送到消息队列,下一步跳转至步骤S203;
S202、按照单个导出文件导出数量限制拆分导出子任务,并将子任务信息发送到消息队列;具体为:
S20201、将导出任务进行拆分,拆分后的每个导出子任务对应的导出数据量均小于等于应用设置的单文件数据量;
S20202、任务拆分时,生成一个当前导出任务编号,导出子任务编号由当前导出任务编号和子任务序号两部分组成,子任务序号按照导出数据片段的顺序依次递增;
S20203、导出分发模块将主任务编号、子任务编号、导出数据条件以及导出数据范围的参数通过消息队列的方式发送出去;其中,消息队列采用RabbitMQ,交换器(exchange)采用订阅模式(topic);
S203、导出执行模块监听到导出分发模块发送的消息后,获取消息参数,执行相应的导出任务,并根据导出数据片段的起始值和终止值分页查询数据;
S204、导出任务执行完成后将导出主任务编号、导出子任务编号以及导出子任务对应数据文件的信息传递给执行监控模块用于页面显示。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
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/form-data,在doFilter方法内获取请求头中的content-length值,其表示当前上传文件的大小;具体包括:
S1、运维工单数据的导入;
S2、运维工单数据的导出。
9.根据权利要求8所述的运维工单数据导入导出方法,其特征在于,所述步骤S1中运维工单数据的导入具体如下:
S101、限流模块的请求拦截器拦截应用的所有运维工单数据导入请求,分别从导入请求头中获取当前导入文件的大小;同时从基础资源监控模块中获取当前存储剩余量,基础资源监控模块通过Prometheus的node_exporter采集;从应用配置表中获取该系统允许的最小存储剩余量;
S102、判断当前存储空间剩余容量减去导入文件大小后是否小于该系统允许的最小存储剩余容量:
①、若是,则拒绝当前导入操作,此时的HTTP响应码设置为403;
②、若否,则执行步骤S103;
S103、导入解析模块在开始执行前,记录开始执行时间;并解析Java实体类上的导入注解;其中,解析注解中包含的导入数据列的数据类型及数据格式的数据特征以及是否进行默认值填充及去除首尾空格的处理方式;
S104、注解解析完成后,执行数据导入方法;数据导入方法遍历解析完成后的导入文件列定义,利用Java反射依次解析各列的值,并赋值给Java实体类;
S105、对于嵌套的Java实体属性在赋值前,需要按照嵌套的层级依次进行初始化;数据解析完成后,依次遍历解析后的数据,并根据应用配置表中设置的批量入库条数,执行批量入库操作;
S106、根据导入结束时间和导入开始时间计算导入执行耗时,并将当前导入数据条数和导入耗时发送给执行监控模块。
10.根据权利要求8或9所述的运维工单数据导入导出方法,其特征在于,所述步骤S2中的运维工单数据的导出具体如下:
S201、导出分发模块获取到运维工单数据导出请求后,查询导出请求对应的数据量大小以及应用配置表中设置的单文件导出数量,并判断当前导出数据数量是否超过了当文件超出数量:
①、若是,则执行步骤S202;
②、若否,则直接创建导出任务,并将任务信息发送到消息队列,下一步跳转至步骤S203;
S202、按照单个导出文件导出数量限制拆分导出子任务,并将子任务信息发送到消息队列;具体为:
S20201、将导出任务进行拆分,拆分后的每个导出子任务对应的导出数据量均小于等于应用设置的单文件数据量;
S20202、任务拆分时,生成一个当前导出任务编号,导出子任务编号由当前导出任务编号和子任务序号两部分组成,子任务序号按照导出数据片段的顺序依次递增;
S20203、导出分发模块将主任务编号、子任务编号、导出数据条件以及导出数据范围的参数通过消息队列的方式发送出去;其中,消息队列采用RabbitMQ,交换器采用订阅模式;
S203、导出执行模块监听到导出分发模块发送的消息后,获取消息参数,执行相应的导出任务,并根据导出数据片段的起始值和终止值分页查询数据;
S204、导出任务执行完成后将导出主任务编号、导出子任务编号以及导出子任务对应数据文件的信息传递给执行监控模块用于页面显示。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210024574.7A CN114416739A (zh) | 2022-01-11 | 2022-01-11 | 运维工单数据导入导出系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210024574.7A CN114416739A (zh) | 2022-01-11 | 2022-01-11 | 运维工单数据导入导出系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114416739A true CN114416739A (zh) | 2022-04-29 |
Family
ID=81270649
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210024574.7A Pending CN114416739A (zh) | 2022-01-11 | 2022-01-11 | 运维工单数据导入导出系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114416739A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116932252A (zh) * | 2023-09-18 | 2023-10-24 | 北京冠群信息技术股份有限公司 | 一种基于批量数据导入流水线的异步任务补偿方法及装置 |
CN116991933A (zh) * | 2023-09-28 | 2023-11-03 | 北京谷器数据科技有限公司 | 一种系统数据的离线导出方法及系统 |
-
2022
- 2022-01-11 CN CN202210024574.7A patent/CN114416739A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116932252A (zh) * | 2023-09-18 | 2023-10-24 | 北京冠群信息技术股份有限公司 | 一种基于批量数据导入流水线的异步任务补偿方法及装置 |
CN116991933A (zh) * | 2023-09-28 | 2023-11-03 | 北京谷器数据科技有限公司 | 一种系统数据的离线导出方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114416739A (zh) | 运维工单数据导入导出系统及方法 | |
CN109039817B (zh) | 一种用于流量监控的信息处理方法、装置、设备及介质 | |
US11954133B2 (en) | Method and apparatus for managing and controlling resource, device and storage medium | |
CN112507029A (zh) | 数据处理系统及数据实时处理方法 | |
CN107688626B (zh) | 慢查询日志处理方法、装置及电子设备 | |
WO2021093365A1 (zh) | 一种gpu显存管理控制方法及相关装置 | |
CN112667405B (zh) | 信息处理方法、装置、设备及存储介质 | |
CN110737717B (zh) | 一种数据库迁移方法及装置 | |
CN114090580A (zh) | 数据处理方法、装置、设备、存储介质及产品 | |
CN113779060A (zh) | 数据查询方法和装置 | |
CN112699098A (zh) | 一种索引数据迁移方法、装置及设备 | |
CN113760677A (zh) | 异常链路分析方法、装置、设备及存储介质 | |
US7203713B2 (en) | Method and apparatus for optimizing extent size | |
EP1704475A1 (en) | System and method for dynamically optimized message processing | |
US10983888B1 (en) | System and method for generating dynamic sparse exponential histograms | |
CN112817687A (zh) | 一种数据同步方法和装置 | |
CN110874349A (zh) | 一种文件整理方法和装置 | |
CN114860449A (zh) | 数据处理方法、装置、设备和存储介质 | |
CN109902067B (zh) | 文件处理方法、装置、存储介质及计算机设备 | |
CN113111083A (zh) | 数据查询的方法、装置、设备、存储介质和程序产品 | |
CN114020446A (zh) | 一种跨多引擎的路由处理方法、装置、设备及存储介质 | |
CN103078766A (zh) | 网络流量的审计方法、装置及网络设备 | |
CN116302178B (zh) | 一种列存数据的加速处理方法和装置 | |
CN110875951B (zh) | 一种调用消息并发量的统计方法及装置 | |
CN117453493B (zh) | 大规模多数据中心的gpu算力集群监控方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |