CN114398441A - 数据导出方法、装置、计算机设备和存储介质 - Google Patents
数据导出方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN114398441A CN114398441A CN202210073521.4A CN202210073521A CN114398441A CN 114398441 A CN114398441 A CN 114398441A CN 202210073521 A CN202210073521 A CN 202210073521A CN 114398441 A CN114398441 A CN 114398441A
- Authority
- CN
- China
- Prior art keywords
- data
- preset
- file
- export
- target
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000009795 derivation Methods 0.000 claims abstract description 11
- 230000015654 memory Effects 0.000 claims description 72
- 238000012545 processing Methods 0.000 claims description 57
- 238000004140 cleaning Methods 0.000 claims description 54
- 238000013500 data storage Methods 0.000 claims description 47
- 238000012216 screening Methods 0.000 claims description 30
- 238000006243 chemical reaction Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 13
- 230000001960 triggered effect Effects 0.000 claims description 11
- 238000013473 artificial intelligence Methods 0.000 abstract description 6
- 230000008569 process Effects 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 10
- 238000007726 management method Methods 0.000 description 9
- 230000004044 response Effects 0.000 description 7
- 230000002159 abnormal effect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000002411 adverse Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000012550 audit Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000009432 framing Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 210000001503 joint Anatomy 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000010453 quartz Substances 0.000 description 2
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N silicon dioxide Inorganic materials O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000003862 health status Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012954 risk control Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000000007 visual effect Effects 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/25—Integrating or interfacing systems involving database management systems
-
- 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/174—Redundancy elimination performed by the file system
- G06F16/1744—Redundancy elimination performed by the file system using compression, e.g. sparse files
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及人工智能技术领域,提供一种数据导出方法、装置、计算机设备和存储介质,方法包括:接收数据导出请求,从数据库确定与请求参数对应的待导出数据,查询待导出数据的数据量;若数据量大于数据量阈值,从数据库获取与请求参数对应的待导出数据,将待导出数据存储至导出数据表;向客户端返回携带有预设主键的文件下载url;基于导出数据表、任务调度工具与框架工具生成与待导出数据对应的目标文件,并基于与预设主键对应的id信息将目标文件上传至目标存储盘内;接收文件下载url的点击操作,从所述目标存储盘中将目标文件导出至客户端。本申请能提高数据导出的智能性。本申请还可以应用于区块链领域,上述目标文件等数据可以存储于区块链上。
Description
技术领域
本申请涉及人工智能技术领域,具体涉及一种数据导出方法、装置、计算机设备和存储介质。
背景技术
随着网络信息技术的发展,基于业务的需求,越来越多的用户需要对业务文件进行导出,例如在薪酬管理的业务场景中需要对销售保单数据进行以文件形式导出以供后续的数据分析,且每次的导出数据量从千级数据到百万级数据不等。目前,在进行数据导出时,如果需要导出的数据较少,可以直接将数据以文件形式导出。但是,当需要导出的数据量较大时,如果一次性将数据导出,则会造成导出时间变久,且数据导出系统的性能会存在极大的压力,容易导致出现内存溢出异常。并且由于页面http请求特性,当导出时间超出一定时间时会造成超时的情况,则会导致数据导出失败,从而影响用户体验。
发明内容
本申请的主要目的为提供一种数据导出方法、装置、计算机设备和存储介质,旨在解决当需要导出的数据量较大时,采用现有的数据导出方式容易出现数据导出失败的情况的技术问题。
本申请提出一种数据导出方法,所述方法包括步骤:
接收客户端提交的数据导出请求;其中,所述数据导出请求携带请求参数;
从预设数据库中确定出与所述请求参数对应的待导出数据,并查询出所述待导出数据的数据量;
判断所述数据量是否大于预设的数据量阈值;
若大于所述数据量阈值,从所述预设数据库中获取与所述请求参数对应的所述待导出数据,并将所述待导出数据存储至预设的导出数据表;
向所述客户端返回携带有预设主键的文件下载url;
基于所述导出数据表、预设的任务调度工具与预设的框架工具生成与所述待导出数据对应的目标文件,并基于与所述预设主键对应的id信息将所述目标文件上传至预设的目标存储盘内;
在所述目标文件成功上传至所述目标存储盘内后,若接收到所述客户端触发的对于所述文件下载url的点击操作,基于所述文件下载url从所述目标存储盘中查询出所述目标文件,并将所述目标文件返回给所述客户端。
可选地,所述基于所述导出数据表、预设的任务调度工具与预设的框架工具生成与所述待导出数据对应的目标文件,并基于与所述预设主键对应的id信息将所述目标文件上传至预设的目标存储盘内的步骤,包括:
步骤A:获取与所述预设数据库对应的预设的导出数据阈值;
步骤B:判断所述数据量是否大于所述导出数据阈值;
步骤C:若是,基于所述导出数据阈值与所述数据量将所述导出数据表内的待导出数据划分成多个分页数据集,并基于所述分页数据集的数量分别对各所述分页数据集设置导出编号;其中,所述导出编号为整数,且所述导出编号的数值范围为1至n,所述n为所述分页数据集的数量;
步骤D:基于所述任务调度工具扫描出导出编号为i的指定分页数据集,并将所述指定分页数据集存储至预设列表内;其中,所述i为整数且所述i的初始值为1;
步骤E:基于所述框架工具对所述预设列表内的指定分页数据集进行数据转换得到对应的字节流文件,并基于所述预设主键为所述字节流文件生成指定id信息;
步骤F:基于所述指定id信息将所述字节流文件上传至所述目标存储盘内,并删除所述预设列表内的数据;
步骤G:令i=i+1,重复执行步骤D-步骤F直至i=n,以完成将所有所述分页数据集对应的所有字节流文件上传至所述目标存储盘内。
可选地,所述基于所述任务调度工具扫描出导出编号为i的指定分页数据集,并将所述指定分页数据集存储至预设列表内的步骤,包括:
获取预设的数据数量;
基于所述数据数量将所述指定分页数据集划分为多个子数据集合;
生成与所述各子数据集合分别对应的数据存储任务,并从预设的所有处理线程中为每一个所述数据存储任务配置对应的指定处理线程;
对于每一个所述数据存储任务,通过所述任务调度工具对所述数据存储任务进行解析,获取所述数据存储任务的业务逻辑和执行时间;
在所述执行时间到达时,控制与所述数据存储任务对应的指定处理线程按照所述业务逻辑执行所述数据存储任务,以将所述数据存储任务存储至所述预设列表内。
可选地,所述基于与所述预设主键对应的id信息将所述目标文件上传至预设的目标存储盘内的步骤之前,包括:
获取与所述数据量对应的占用内存数值;
从所述存储系统中包含的所有存储盘中筛选出剩余内存大于所述占用内存数值的第一存储盘;
从所有所述第一存储盘中筛选出在预设时间周期内的文件存储次数大于预设的次数阈值的第二存储盘;
从所有所述第二存储盘中筛选出在预设时间周期内的存储内存值大于预设的内存阈值的第三存储盘;
计算各所述第三存储盘在所述预设时间周期内的文件清理分值;
从所有所述第三存储盘中筛选出文件清理分值最小的存储盘,得到所述目标存储盘。
可选地,所述计算各所述第三存储盘在所述预设时间周期内的文件清理分值的步骤,包括:
获取第四存储盘在所述预设时间周期内的文件清理数量;其中,所述第四存储盘为所有所述第三存储盘中的任意一个存储盘;
获取所述第四存储盘在所述预设时间周期内每一次清理文件的文件大小;
从所有所述文件大小中筛选出数值大于预设的清理大小阈值的指定文件大小;
计算每一个所述指定文件大小与所述清理大小阈值之间的差值,并计算所有所述差值的和值得到超出总量;
获取所述指定文件大小的数量;
获取与所述文件清理数量对应的第一预设权重,与所述指定文件大小对应的第二预设权重,以及与所述超出总量对应的第三预设权重;
基于所述第一预设权重、所述第二预设权重与所述预设第三权重,调用预设公式对所述文件清理数量、所述指定文件大小的数量以及所述超出总量进行计算得到对应的结果数值;
将所述结果数值作为所述第四存储盘的文件清理分值。
可选地,所述判断所述数据量是否大于预设的数据量阈值的步骤之后,包括:
若所述数据量小于所述数据量阈值,从所述数据导出请求中提取出所述请求参数;
从所述预设数据库中获取与所述请求参数对应的所述待导出数据;
调用预设的导出工具,基于所述导出工具对所述数据库中的所述待导出数据进行数据转换得到相应的指定文件;
将所述指定文件返回至所述客户端。
可选地,所述基于所述文件下载url从所述目标存储盘中查询出所述目标文件,并将所述目标文件返回给所述客户端的步骤,包括:
从所述文件下载url中提取出所述预设主键;
从所述目标存储盘内查询出与所述预设主键对应的目标id信息;
基于所述目标id信息,将所述目标存储盘内与所述目标id信息对应的所述目标文件下载至内存中;
对所述内存中的所述目标文件进行压缩处理与加密处理,得到处理后的目标文件;
向所述客户端返回所述处理后的目标文件。
本申请还提供一种数据导出装置,包括:
接收模块,用于接收客户端提交的数据导出请求;其中,所述数据导出请求携带请求参数;
查询模块,用于从预设数据库中确定出与所述请求参数对应的待导出数据,并查询出所述待导出数据的数据量;
第一判断模块,用于判断所述数据量是否大于预设的数据量阈值;
第一返回模块,用于若大于所述数据量阈值,从所述预设数据库中获取与所述请求参数对应的所述待导出数据,并将所述待导出数据存储至预设的导出数据表;
第一获取模块,用于向所述客户端返回携带有预设主键的文件下载url;
第一处理模块,用于基于所述导出数据表、预设的任务调度工具与预设的框架工具生成与所述待导出数据对应的目标文件,并基于与所述预设主键对应的id信息将所述目标文件上传至预设的目标存储盘内;
第二处理模块,用于在所述目标文件成功上传至所述目标存储盘内后,若接收到所述客户端触发的对于所述文件下载url的点击操作,基于所述文件下载url从所述目标存储盘中查询出所述目标文件,并将所述目标文件返回给所述客户端。
本申请还提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
本申请中提供的数据导出方法、装置、计算机设备和存储介质,具有以下有益效果:
本申请中提供的数据导出方法、装置、计算机设备和存储介质,在接收到客户端提交的数据导出请求后,会先确定出与请求参数对应的待导出数据,并查询出待导出数据的数据量,如果数据量大于预设的数据量阈值,便会判定该待导出数据的数据量级别较大,此时会先从预设数据库中获取与所述请求参数对应的待导出数据,并将待导出数据存储至预设的导出数据表,再向所述客户端返回携带有预设主键的文件下载url,进而基于导出数据表、预设的任务调度工具与预设的框架工具生成与待导出数据对应的目标文件,并基于与预设主键对应的id信息将目标文件上传至预设的目标存储盘内,并在所述目标文件成功上传至所述目标存储盘内后,若接收到所述客户端触发的对于所述文件下载url的点击操作,基于所述文件下载url从所述目标存储盘中查询出所述目标文件,并将所述目标文件返回给所述客户端。本申请在接收到用户提交的数据导出请求后,通过采用异步响应方式提前将目标文件的文件下载url发送至客户端,从而可以优化对于客户端发出的请求的响应速度,实现了通过异步处理的方式来完成目标文件导出的同时,还可以解决了目标文件导出的超时问题,且服务器也不会出现内存溢出异常的问题,从而避免了数据导出失败的情况,有效地提高了数据导出处理的智能性,保证数据导出的可靠性,以及提高了用户的使用体验。
附图说明
图1是本申请一实施例的数据导出方法的流程示意图;
图2是本申请一实施例的数据导出装置的结构示意图;
图3是本申请一实施例的计算机设备的结构示意图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用于解释本申请,并不用于限定本申请。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
本申请实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
参照图1,本申请一实施例的数据导出方法,包括:
S10:接收客户端提交的数据导出请求;其中,所述数据导出请求携带请求参数;
S20:从预设数据库中确定出与所述请求参数对应的待导出数据,并查询出所述待导出数据的数据量;
S30:判断所述数据量是否大于预设的数据量阈值;
S40:若大于所述数据量阈值,从所述预设数据库中获取与所述请求参数对应的所述待导出数据,并将所述待导出数据存储至预设的导出数据表;
S50:向所述客户端返回携带有预设主键的文件下载url;
S60:基于所述导出数据表、预设的任务调度工具与预设的框架工具生成与所述待导出数据对应的目标文件,并基于与所述预设主键对应的id信息将所述目标文件上传至预设的目标存储盘内;
S70:在所述目标文件成功上传至所述目标存储盘内后,若接收到所述客户端触发的对于所述文件下载url的点击操作,基于所述文件下载url从所述目标存储盘中查询出所述目标文件,并将所述目标文件返回给所述客户端。
如上述步骤S10至S70所述,本方法实施例的执行主体为一种数据导出装置,具体可为服务器。在实际应用中,上述数据导出装置可以通过虚拟装置,例如软件代码实现,也可以通过写入或集成有相关执行代码的实体装置实现,且可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。本实施例中的数据导出装置能够解决目标文件导出的超时问题,且服务器也不会出现内存溢出异常的问题,有效地提高了数据导出处理的智能性,保证数据导出的可靠性。具体地,首先接收客户端提交的数据导出请求。其中,所述数据导出请求携带请求参数。具体的,当服务器接收到数据导出请求时,可提取出数据导出请求对应的请求参数,所述请求参数可指待导出数据的标识信息,如昨天的业绩信息,当月的保费等。通过该请求参数可在相应的数据库中查找或者统计与该请求参数对应的待导出数据,并且可以根据待导出数据的数据量确定该待导出数据的数量级别。
在接收到所述数据导出请求后,从预设数据库中确定出与所述请求参数对应的待导出数据,并查询出所述待导出数据的数据量。其中,所述预设数据库为与服务器对接的数据库,且该数据库内存储有与所述请求参数对应的业务数据,即所述待导出数据。具体的,在确定出待导出数据后,可进一步查询出待导出数据的数据量,例如昨天的业绩信息有10万条,那么待导出数据的数据量为10万条。然后判断所述数据量是否大于预设的数据量阈值。其中,对于所述预设的数据量阈值的取值不做具体限定,可根据实际需求进行设置。通过将待导出数据的大小与预设的数据量阈值进行比较,若待导出数据的数据量超过数据量阈值,则可判定待导出数据为大数据,即待导出数据的数量级别较大;若待导出数据的大小未超过数据量阈值,即待导出数据的数据量小于或者等于数据量阈值,则待导出数据不属于大数据,即待导出数据的数量级别较小。举例地,假如预设的数据量阈值为1万条,待导出数据为2万条,则待导出数据为属于数量级别较大的大数据。若大于所述数据量阈值,从所述预设数据库中获取与所述请求参数对应的所述待导出数据,并将所述待导出数据存储至预设的导出数据表。其中,可先生成包含所述请求参数的消息,并基于所述消息从预设数据库中获取与所述请求参数对应的所述导出数据,并将所述导出数据存储至预设的导出数据表。具体的,服务器在得到了请求参数后,可先发出包含预设主题的消息,所述预设主题可为与所述请求参数相关的数据导出任务所对应的主题。同时服务器可以接收该消息,进而执行从预设数据库中获取与所述请求参数对应的所述导出数据,并将所述导出数据存储至预设的导出数据表的处理。
之后向所述客户端返回携带有预设主键的文件下载url。其中,所述预设主键可为随机生成的,在生成了预设主键后,还会存储该预设主键信息,并将该预设主键与后续生成的目标文件的id信息建立映射关系。以便利用该预设主键可以查询出存储系统内与该预设主键对应的id信息,进而可以基于id信息查找到相应的目标文件,使得用户可以利用所述文件下载url包含的预设主键,通过所述客户端从所述存储系统导出所述目标文件。后续基于所述导出数据表、预设的任务调度工具与预设的框架工具生成与所述待导出数据对应的目标文件,并基于与所述预设主键对应的id信息将所述目标文件上传至预设的目标存储盘内。其中,所述任务调度工具具体可为quartz任务调度工具。所述框架工具具体可为EASYEXCEL框架工具。另外,对于所述基于所述导出数据表、预设的任务调度工具与预设的框架工具生成与所述待导出数据对应的目标文件,并基于与所述预设主键对应的id信息将所述目标文件上传至预设的目标存储盘内的具体实现过程,本申请将在后续的具体实施例中对此作进一步的描述,在此不予赘述。最后在所述目标文件成功上传至所述目标存储盘内后,若接收到所述客户端触发的对于所述文件下载url的点击操作,基于所述文件下载url从所述目标存储盘中查询出所述目标文件,并将所述目标文件返回给所述客户端。其中,在完成所述目标文件的上传后,所述用户可以利用所述文件下载url,通过所述客户端从所述存储系统中导出所述目标文件,以通过该目标文件实现待导出数据的异步导出处理。
本实施例中,在接收到客户端提交的数据导出请求后,会先确定出与请求参数对应的待导出数据,并查询出待导出数据的数据量,如果数据量大于预设的数据量阈值,便会判定该待导出数据的数据量级别较大,此时会先从预设数据库中获取与所述请求参数对应的待导出数据,并将待导出数据存储至预设的导出数据表,再向所述客户端返回携带有预设主键的文件下载url,进而基于导出数据表、预设的任务调度工具与预设的框架工具生成与待导出数据对应的目标文件,并基于与预设主键对应的id信息将目标文件上传至预设的目标存储盘内,并在所述目标文件成功上传至所述目标存储盘内后,若接收到所述客户端触发的对于所述文件下载url的点击操作,基于所述文件下载url从所述目标存储盘中查询出所述目标文件,并将所述目标文件返回给所述客户端。本实施例在接收到用户提交的数据导出请求后,通过采用异步响应方式提前将目标文件的文件下载url发送至客户端,从而可以优化对于客户端发出的请求的响应速度,实现了通过异步处理的方式来完成目标文件导出的同时,还可以解决了目标文件导出的超时问题,且服务器也不会出现内存溢出异常的问题,从而避免了数据导出失败的情况,有效地提高了数据导出处理的智能性,保证数据导出的可靠性,以及提高了用户的使用体验。
进一步地,本申请一实施例中,上述步骤S60,包括:
S600:步骤A:获取与所述预设数据库对应的预设的导出数据阈值;
S601:步骤B:判断所述数据量是否大于所述导出数据阈值;
S602:步骤C:若是,基于所述导出数据阈值与所述数据量将所述导出数据表内的待导出数据划分成多个分页数据集,并基于所述分页数据集的数量分别对各所述分页数据集设置导出编号;其中,所述导出编号为整数,且所述导出编号的数值范围为1至n,所述n为所述分页数据集的数量;
S603:步骤D:基于所述任务调度工具扫描出导出编号为i的指定分页数据集,并将所述指定分页数据集存储至预设列表内;其中,所述i为整数且所述i的初始值为1;;
S604:步骤E:基于所述框架工具对所述预设列表内的指定分页数据集进行数据转换得到对应的字节流文件,并基于所述预设主键为所述字节流文件生成指定id信息;
S605:步骤F:基于所述指定id信息将所述字节流文件上传至所述目标存储盘内,并删除所述预设列表内的数据;
S606:步骤G:令i=i+1,重复执行步骤D-步骤F直至i=n,以完成将所有所述分页数据集对应的所有字节流文件上传至所述目标存储盘内。
如上述步骤S600至S606所述,所述基于所述导出数据表、预设的任务调度工具与预设的框架工具生成与所述待导出数据对应的目标文件,并基于与所述预设主键对应的id信息将所述目标文件上传至预设的目标存储盘内的步骤,具体可包括:步骤A:获取与所述预设数据库对应的预设的导出数据阈值。其中,所述导出数据阈值是指预设数据库的单次导出数据阈值,对于所述预设的导出数据阈值的取值不做具体限定,可根据实际需求进行设置。具体的,导出数据阈值可以事先通过测试得到,如多次测试当前的数据导出设备,即该预设数据库在不卡顿不崩溃的情况下一次性最多能导出多大的数据,并取平均值,作为数据库的导出数据阈值。步骤B:判断所述数据量是否大于所述导出数据阈值。步骤C:若是,基于所述导出数据阈值与所述数据量将所述导出数据表内的待导出数据划分成多个分页数据集,并基于所述分页数据集的数量分别对各所述分页数据集设置导出编号;其中,所述导出编号为整数,且所述导出编号的数值范围为1至n,所述n为所述分页数据集的数量。另外,分页数据集的划分过程可包括:获取预设数据库的导出数据阈值;基于所述导出数据阈值与所述数据量,确定与所述待导出数据对应的分页数;基于所述分页数量将所述待导出数据划分成多个分页数据集。具体的,在该步骤中,根据待导出数据的数据量和导出数据阈值,确定每一批次要导出的数据大小,从而根据待导出数据的大小和每一批次要导出的数据大小,计算对应的分页数。举例地,如果待导出数据的数据量为3万条,导出数据阈值为1万条,则可确定每一批次要导出的数据大小为1万条,从而计算得出对应的分页数为3页,相应的待导出数据会被划分成3分页数据集,即该待导出数据分为三批次导出,每次导出包含1万条数据的分页数据集。或者还可以预设一个固定值,根据待导出数据的数据量和固定值,计算得出待导出数据对应的分页数,例如预设一个固定值为6千条,那么当待导出数据的数据量为3万条时,对应的分页数为5页,即该待导出数据分为五批次导出,每次6千条。此外,对于基于所述分页数据集的数量分别对各所述分页数据集设置导出编号的处理方式不作限定,可随机为各分页数据集设置导出编号。所述导出编号为用于确定后续各分页数据集的数据导出顺序的号码数据。举例地,假如分页数据集有3个,则可将该3个分页数据集分别设置为导出编号为1的指定分页数据集,导出编号为2的分页数据集以及导出编号为3的分页数据集.。且后续在将分页数据集导出时,会先将导出编号为1的指定分页数据集导出,再将编号为2的指定分页数据集导出,最后将编号为3的指定分页数据集导出。
步骤D:基于所述任务调度工具扫描出导出编号为i的指定分页数据集,并将所述指定分页数据集存储至预设列表内;其中,所述i为整数且所述i的初始值为1。其中,所述任务调度工具具体可为quartz任务调度工具。另外,所述预设列表具体可为list列表。此外,对于所述基于所述任务调度工具扫描出指定分页数据集,并将所述指定分页数据集存储至预设列表内的具体实现过程,本申请将在后续的具体实施例中对此作进一步的描述,在此不予赘述。步骤E:基于所述框架工具对所述预设列表内的指定分页数据集进行数据转换得到对应的字节流文件,并基于所述预设主键为所述字节流文件生成指定id信息。其中,所述框架工具具体可为EASYEXCEL框架工具,可以支持海量数据的导出,也不会出现内存溢出,开发人员只需要关注业务的开发即可,再也不用关注EXCEL数据的获取、解析、验证了。1)性能上因为EASYEXCEL框架工具是在POI的基础上再封装,它重写了POI对EXCEL的解析,一个3M的EXCEL数据用POI解析需要100M左右内存,改用EASYEXCEL进行解析可以降低到几M,并且再大的EXCEL也不会出现内存溢出。2)缓存上因为EASYEXCEL内部使用缓存机制,开发人员可根据实际需要设计读取多少数据时给缓存数据刷到磁盘中去,这样就保证了永远不会出现读取海量数据时出现内存溢出问题。3)EASYEXCEL和POI文件解压和读取方式的不同,不管文件的压缩和读取EASYEXCEL都是在磁盘中进行的,而POI永远都是在内存中,一但数据量增大肯定撑爆内存。而在模型转换方面EASYEXCEL直接就是JAVA模型,这对开发人员来说无疑是再友好不过了。4)维护上EASYEXCEL使开发者只关注业务逻辑,不用关注对EXCEL的操作、验证,所以代码的复杂度会大大减少,维护成本大幅降低。另外,所述指定id信息基于与所述预设主键对应的id信息生成。如果所述id信息的数量为1个,则所述指定id信息与所述id信息相同,如果所述id信息的数量为多个,则会对应有多个指定id信息,且所述id信息内包括的id与所述指定id信息内包括的id一一匹配。
步骤F:基于所述指定id信息将所述字节流文件上传至所述目标存储盘内,并删除所述预设列表内的数据。步骤G:令i=i+1,重复执行步骤D-步骤F直至i=n,以完成将所有所述分页数据集对应的所有字节流文件上传至所述目标存储盘内。具体的,每一个分页数据集对应一个导出编号,可根据该导出编号从小到大的顺序依次将与导出编号对应的分页数据集上传至存储系统的目标存储盘内。举例地,假如有三批分页数据集,则会依次分别将这三批分页数据集分批存储至list列表内,进而再上传到存储系统。实施过程中,先对导出编号最小的第一批分页数据集存储至list列表内,再上传到存储系统的目标存储盘内,并在上传完成后,即该批分页数据集数据处理完成后,对list进行手动释放内存,进行垃圾回收,从而进一步优化内存。然后参考第一批分页数据集的处理方式再对第二批分页数据集进行处理,同理在第二批分页数据集处理完后再对第三批分页数据集进行处理,进而完成对所有所述分页数据集的上传处理。本实施例中,在判别出待导出数据的数据量大于预设的数据量阈值后,通过基于所述导出数据表生成与所述待导出数据对应的目标文件后,如果再判别出数据量大于预设的导出数据阈值,则会智能地使用quartz任务调度工具与预设列表来将该待导出数据进行分批导出,即将待导出数据分为若干份小数据导出,从而可以减轻数据库在导出数据时的压力,避免对待导出数据进行一次性导出从而对数据库产生不良影响,如导出缓慢,阻塞,超时等,有效地实现了对于待导出数据的智能导出。
进一步地,本申请一实施例中,上述步骤S603,包括:
S6030:获取预设的数据数量;
S6031:基于所述数据数量将所述指定分页数据集划分为多个子数据集合;
S6032:生成与所述各子数据集合分别对应的数据存储任务,并从预设的所有处理线程中为每一个所述数据存储任务配置对应的指定处理线程;
S6033:对于每一个所述数据存储任务,通过所述任务调度工具对所述数据存储任务进行解析,获取所述数据存储任务的业务逻辑和执行时间;
S6034:在所述执行时间到达时,控制与所述数据存储任务对应的指定处理线程按照所述业务逻辑执行所述数据存储任务,以将所述数据存储任务存储至所述预设列表内。
如上述步骤S6030至S6034所述,所述基于所述任务调度工具扫描出导出编号为i的指定分页数据集,并将所述指定分页数据集存储至预设列表内的步骤,具体可包括:首先获取预设的数据数量。其中,对于所述数据数量的取值不作具体限定,可根据实际需求进行设置。然后基于所述数据数量将所述指定分页数据集划分为多个子数据集合。举例地,如果所述指定分页数据集的数据量为2w条,所述数据数量为1k条,则可以将所述指定分页数据集划分为20个子数据集合,且每一个子数据集合内包含有1k条的数据。之后生成与所述各子数据集合分别对应的数据存储任务,并从预设的所有处理线程中为每一个所述数据存储任务配置对应的指定处理线程。其中,可通过将生成的数据存储任务放置到预设的消息中间件内。所述消息中间件可为RABBITMQ。并且,可通过该消息中间件将消息队列内的数据存储任务按照消息队列中各个数据存储任务的排序均匀分配给对应的消费者,即预设的线程池内的所有处理线程,且每各处理线程不会被分配到重复的任务。另外,当需要增加处理速度的时候,还可以给线程池进行线程的扩容。后续对于每一个所述数据存储任务,通过所述任务调度工具对所述数据存储任务进行解析,获取所述数据存储任务的业务逻辑和执行时间。在所述执行时间到达时,控制与所述数据存储任务对应的指定处理线程按照所述业务逻辑执行所述数据存储任务,以将所述数据存储任务存储至所述预设列表内。本实施例中,在使用任务调度工具扫描出指定分页数据集后,通过进一步通过任务调度工具控制各处理线程来并行执行数据存储任务以实现将所述指定分页数据集存储至预设列表内,通过采用多线程的方法,各线程相互独立运行,互不影响,即可实现多线程定时并行执行多种数据存储任务,从而实现了对各种数据存储任务的统一处理,进而极大提升了数据存储任务的执行效率,为后续实现快速将所述指定分页数据集存储至预设列表内奠定了基础,有效地提高了将所述指定分页数据集存储至预设列表内的处理效率。
进一步地,本申请一实施例中,上述步骤S60之前,包括:
S610:获取与所述数据量对应的占用内存数值;
S611:从所述存储系统中包含的所有存储盘中筛选出剩余内存大于所述占用内存数值的第一存储盘;
S612:从所有所述第一存储盘中筛选出在预设时间周期内的文件存储次数大于预设的次数阈值的第二存储盘;
S613:从所有所述第二存储盘中筛选出在预设时间周期内的存储内存值大于预设的内存阈值的第三存储盘;
S614:计算各所述第三存储盘在所述预设时间周期内的文件清理分值;
S615:从所有所述第三存储盘中筛选出文件清理分值最小的存储盘,得到所述目标存储盘。
如上述步骤S610至S615所述,所述基于与所述预设主键对应的id信息将所述目标文件上传至预设的目标存储盘内的步骤之前,还可包括所述目标存储盘的确定过程。具体地,首先获取与所述数据量对应的占用内存数值。然后从所述存储系统中包含的所有存储盘中筛选出剩余内存大于所述占用内存数值的第一存储盘。在得到第一存储盘后,从所有所述第一存储盘中筛选出在预设时间周期内的文件存储次数大于预设的次数阈值的第二存储盘。其中,对所述预设时间周期的取值不作具体限定,可根据实际需求进行设置,例如可为距离当前时间的前一个月内。另外,所述文件存储次数是指存储盘在该预设时间周期内进行文件存储的次数。此外,对所述预设的次数阈值的取值也不作具体限定,可根据实际需求进行设置。之后从所有所述第二存储盘中筛选出在预设时间周期内的存储内存值大于预设的内存阈值的第三存储盘。其中,所述存储内存值是指存储盘在该预设时间周期内进行的所有文件存储处理所花费的内存使用量。另外,对于所述内存阈值的取值不作具体限定,可根据实际需求进行设置。后续计算各所述第三存储盘在所述预设时间周期内的文件清理分值。其中,所述文件清理分值为用于表征存储盘在该预设时间周期内的存储的文件被清理的可能性的数值,文件清理分值的数值越大则文件被清理的可能性越大,文件清理分值的数值越小则文件被清理的可能性越小。具体的,若存储盘的当前剩余内存越大,文件存储次数越大,存储内存值越大,文件清理分值越小,则表示该存储盘为用户常用的存储盘,且该存储盘内存储的文件被清理的可能性越小,故使用该存储盘进行文件存储可以保证用户的使用满意度,进而可以提高对于目标文件的存储智能性。最后从所有所述第三存储盘中筛选出文件清理分值最小的存储盘,得到所述目标存储盘。本实施例中,首先会根据存储系统中包含的所有存储盘的剩余内存,在预设时间周期内的文件存储次数与存储内存值从所有存储盘中筛选出第三存储盘,使得后续只需对第三存储盘进行文件清理分值的数据计算处理,有效地减少了数据处理量,提高了目标存储盘的生成速率。另外,通过根据存储盘的剩余内存,在预设时间周期内的文件存储次数与存储内存值从所有存储盘中筛选出第三存储盘,后续再计算出各所述第三存储盘的文件清理分值,进而将与数值最小的文件清理分值对应的第三存储盘作为所述目标存储盘,以实现根据存储盘的存储情况和清理情况合理选取相应的存储盘来进行对导出的目标文件的存储,有效的保证了得到的目标存储盘的准确性,减少了目标文件被清理的可能性,提高了目标文件的存储效率与存储智能性,并且可以方便用户快速查询,有利于提高用户使用体验。
进一步地,本申请一实施例中,上述步骤S614,包括:
S6140:获取第四存储盘在所述预设时间周期内的文件清理数量;其中,所述第四存储盘为所有所述第三存储盘中的任意一个存储盘;
S6141:获取所述第四存储盘在所述预设时间周期内每一次清理文件的文件大小;
S6142:从所有所述文件大小中筛选出数值大于预设的清理大小阈值的指定文件大小;
S6143:计算每一个所述指定文件大小与所述清理大小阈值之间的差值,并计算所有所述差值的和值得到超出总量;
S6144:获取所述指定文件大小的数量;
S6145:获取与所述文件清理数量对应的第一预设权重,与所述指定文件大小对应的第二预设权重,以及与所述超出总量对应的第三预设权重;
S6146:基于所述第一预设权重、所述第二预设权重与所述预设第三权重,调用预设公式对所述文件清理数量、所述指定文件大小的数量以及所述超出总量进行计算得到对应的结果数值;
S6147:将所述结果数值作为所述第四存储盘的文件清理分值。
如上述步骤S6140至S6147所述,所述计算各所述第三存储盘在所述预设时间周期内的文件清理分值的步骤,具体可包括:首先获取第四存储盘在所述预设时间周期内的文件清理数量。其中,所述第四存储盘为所有所述第三存储盘中的任意一个存储盘。另外,所述文件清理数量是指该第四存储盘在所述预设时间周期内被清理的文件的数量。以及获取所述第四存储盘在所述预设时间周期内每一次清理文件的文件大小。在得到文件大小后,从所有所述文件大小中筛选出数值大于预设的清理大小阈值的指定文件大小。其中,对于所述清理大小阈值的取值不作具体限定,可根据实际需求进行设置。然后计算每一个所述指定文件大小与所述清理大小阈值之间的差值,并计算所有所述差值的和值得到超出总量。之后获取所述指定文件大小的数量。后续获取与所述文件清理数量对应的第一预设权重,与所述指定文件大小对应的第二预设权重,以及与所述超出总量对应的第三预设权重。其中,对于所述第一预设权重、第二预设权重以及第三预设权重的取值不作具体限定,可根据实际需求进行设置或根据大量数据模拟得到。最后基于所述第一预设权重、所述第二预设权重与所述预设第三权重,调用预设公式对所述文件清理数量、所述指定文件大小的数量以及所述超出总量进行计算得到对应的结果数值,并将所述结果数值作为所述第四存储盘的文件清理分值。具体的,所述预设公式可为:S=W*a+D*b+Z*c,S为文件清理分值,P为文件清理数量、a为文件清理数量的第一预设权重,D为指定文件大小的数量,b为指定文件大小的第二预设权重,Z为超出总量,Z为超出总量的第三预设权重。本实施例中,通过获取预设时间周期内的各第四存储盘的文件清理数量、指定文件大小的数量以及超出总量来快速准确地计算出每一个第四存储盘的文件清理分值,有利于后续能够基于该文件清理分值来实现快速准确地完成目标存储盘的确定,从而可以实现根据存储盘的存储情况和清理情况合理选取相应的存储盘来进行对导出的目标文件的存储,有效的保证了得到的目标存储盘的准确性,同时也可以减少目标文件被清理的可能性,提高了目标文件的存储效率,以方便用户能够快速查询,有利于提高用户使用体验。
进一步地,本申请一实施例中,上述步骤S30之后,包括:
S300:若所述数据量小于所述数据量阈值,从所述数据导出请求中提取出所述请求参数;
S301:从所述预设数据库中获取与所述请求参数对应的所述待导出数据;
S302:调用预设的导出工具,基于所述导出工具对所述数据库中的所述待导出数据进行数据转换得到相应的指定文件;
S303:将所述指定文件返回至所述客户端。
如上述步骤S300至S303所述,所述判断所述数据量是否大于预设的数据量阈值的步骤之后,还可包括数据量小于数据量阈值的情况下的数据导出处理过程。具体地,若所述数据量小于所述数据量阈值,首先从所述数据导出请求中提取出所述请求参数。然后从所述预设数据库中获取与所述请求参数对应的所述待导出数据。其中,所述预设数据库为与服务器对接的数据库,且该数据库内存储有与所述请求参数对应的业务数据,即所述待导出数据。后续调用预设的导出工具,基于所述导出工具对所述数据库中的所述待导出数据进行数据转换得到相应的指定文件。其中,所述导出工具具体可为Easypoi工具。poi是一个专门给Java程序提供格式文档读写功能的API接口,包括各种微软的格式文档如Excel、Word等,而最常用的还是Excel格式导入导出。而Easypoi在poi接口基础上进行了封装和简化的操作,使用Easypoi导出仅需以下几步:添加依赖项;改造模型,添加注解;从数据库查询数据,使用Easypoi工具类生成Workbook对象,存储为文件导出。Easypoi注解包含:Excel,这个是最基本常用的注解,注解在模型字段上,可添加列名、列的排序、列宽、格式等属性;ExcelTarget,用于外层的模型实体,可注解行高、字体大小等属性;ExcelEnity,用于标记实体内部类是否继续穿透;ExcelCollection,用于注解集合字段。另外,若判定待导出数据为小数据,说明直接导出对当前导出设备,即服务器不会产生不良影响,则此时可将待导出数据直接导出以生成对应的文件,且通过Easypoi工具导出生成的文件的格式为文件流。最后将所述指定文件返回至所述客户端。本实施例中,在待导出数据的数量级别较小的情况下,通过采用预设的导出工具对数据库中的待导出数据进行数据转换得到相应的指定文件并返回给客户端,实现了以同步响应的方式对接收到的数据导出请求进行处理,使得在不会对服务器造成内存溢出的问题,还可以获取更好的用户体验,有利于提高了数据导出处理的智能性。
进一步地,本申请一实施例中,上述步骤S70,包括:
S700:从所述文件下载url中提取出所述预设主键;
S701:从所述目标存储盘内查询出与所述预设主键对应的目标id信息;
S702:基于所述目标id信息,将所述目标存储盘内与所述目标id信息对应的所述目标文件下载至内存中;
S703:对所述内存中的所述目标文件进行压缩处理与加密处理,得到处理后的目标文件;
S704:向所述客户端返回所述处理后的目标文件。
如上述步骤S700至S704所述,所述基于所述文件下载url从所述目标存储盘中查询出所述目标文件,并将所述目标文件返回给所述客户端的步骤,具体可包括:首先从所述文件下载url中提取出所述预设主键。然后从所述目标存储盘内查询出与所述预设主键对应的目标id信息。其中,所述预设主键与id信息之间可为一对多的映射关系。所述id信息指文件的文件id。基于所述主键信息与所述映射关系可以从存储系统中查找出与该预设主键相对应的id信息。之后基于所述目标id信息,将所述目标存储盘内与所述目标id信息对应的所述目标文件下载至内存中。其中。由于目标id信息是指目标文件的文件id,进而可以根据该目标id信息从存储系统的目标存储盘内查找出与该目标id信息相应的目标文件以供后续下载,即将该目标文件下载至内存中。另外,如果目标id信息为多个,则所述目标文件的数量也为多个,则会将多个该目标文件均下载至内存中。后续对所述内存中的所述目标文件进行压缩处理与加密处理,得到处理后的目标文件。其中,可先将所有目标文件组合为压缩文件,再对得到的压缩文件进行加密处理。另外,生成的所述处理后的目标文件的格式为文件流。向所述客户端返回所述处理后的目标文件。本实施例中,在接收到用户提交的数据导出请求后,通过采用异步响应方式提前将目标文件的文件下载url发送至客户端,从而可以优化对于客户端发出的请求的响应速度。另外,在利用预设的存储系统完成了目标文件的上传后,使得后续用户可以通过客户端,利用该文件下载url从该存储系统上导出相应的目标文件,实现了通过异步处理的方式来完成目标文件导出的同时,还可以解决了目标文件导出的超时问题,且服务器也不会出现内存溢出异常的问题,有效地提高了数据导出处理的智能性。
本申请实施例中的数据导出方法还可以应用于区块链领域,如将上述目标文件等数据存储于区块链上。通过使用区块链来对上述目标文件进行存储和管理,能够有效地保证上述目标文件的安全性与不可篡改性。
上述区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等第一处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监控网络情况、监控节点设备健康状态等。
参照图2,本申请一实施例中还提供了一种数据导出装置,包括:
接收模块1,用于接收客户端提交的数据导出请求;其中,所述数据导出请求携带请求参数;
查询模块2,用于从预设数据库中确定出与所述请求参数对应的待导出数据,并查询出所述待导出数据的数据量;
第一判断模块3,用于判断所述数据量是否大于预设的数据量阈值;
第一返回模块4,用于若大于所述数据量阈值,从所述预设数据库中获取与所述请求参数对应的所述待导出数据,并将所述待导出数据存储至预设的导出数据表;
第一获取模块5,用于向所述客户端返回携带有预设主键的文件下载url;
第一处理模块6,用于基于所述导出数据表、预设的任务调度工具与预设的框架工具生成与所述待导出数据对应的目标文件,并基于与所述预设主键对应的id信息将所述目标文件上传至预设的目标存储盘内;
第二处理模块7,用于在所述目标文件成功上传至所述目标存储盘内后,若接收到所述客户端触发的对于所述文件下载url的点击操作,基于所述文件下载url从所述目标存储盘中查询出所述目标文件,并将所述目标文件返回给所述客户端。
本实施例中,上述模块或单元分别用于执行的操作与前述实施方式的数据导出方法的步骤一一对应,在此不再赘述。
进一步地,本申请一实施例中,上述第一处理模块6,包括:
第一获取单元,用于获取与所述预设数据库对应的预设的导出数据阈值;
判断单元,用于判断所述数据量是否大于所述导出数据阈值;
划分单元,用于若是,基于所述导出数据阈值与所述数据量将所述导出数据表内的待导出数据划分成多个分页数据集,并基于所述分页数据集的数量分别对各所述分页数据集设置导出编号;其中,所述导出编号为整数,且所述导出编号的数值范围为1至n,所述n为所述分页数据集的数量;
存储单元,用于基于所述任务调度工具扫描出导出编号为i的指定分页数据集,并将所述指定分页数据集存储至预设列表内;其中,所述i为整数且所述i的初始值为1;;
转换单元,用于基于所述框架工具对所述预设列表内的指定分页数据集进行数据转换得到对应的字节流文件,并基于所述预设主键为所述字节流文件生成指定id信息;
第一处理单元,用于基于所述指定id信息将所述字节流文件上传至所述目标存储盘内,并删除所述预设列表内的数据;
第二处理单元,用于令i=i+1,重复执行存储单元-第一处理单元直至i=n,以完成将所有所述分页数据集对应的所有字节流文件上传至所述目标存储盘内。
本实施例中,上述模块或单元分别用于执行的操作与前述实施方式的数据导出方法的步骤一一对应,在此不再赘述。
进一步地,本申请一实施例中,上述存储单元,包括:
获取子单元,用于获取预设的数据数量;
划分子单元,用于基于所述数据数量将所述指定分页数据集划分为多个子数据集合;
生成子单元,用于生成与所述各子数据集合分别对应的数据存储任务,并从预设的所有处理线程中为每一个所述数据存储任务配置对应的指定处理线程;
解析子单元,用于对于每一个所述数据存储任务,通过所述任务调度工具对所述数据存储任务进行解析,获取所述数据存储任务的业务逻辑和执行时间;
处理子单元,用于在所述执行时间到达时,控制与所述数据存储任务对应的指定处理线程按照所述业务逻辑执行所述数据存储任务,以将所述数据存储任务存储至所述预设列表内。
本实施例中,上述模块或单元分别用于执行的操作与前述实施方式的数据导出方法的步骤一一对应,在此不再赘述。
进一步地,本申请一实施例中,上述数据导出装置,包括:
第二获取模块,用于获取与所述数据量对应的占用内存数值;
第一筛选模块,用于从所述存储系统中包含的所有存储盘中筛选出剩余内存大于所述占用内存数值的第一存储盘;
第二筛选模块,用于从所有所述第一存储盘中筛选出在预设时间周期内的文件存储次数大于预设的次数阈值的第二存储盘;
第三筛选模块,用于从所有所述第二存储盘中筛选出在预设时间周期内的存储内存值大于预设的内存阈值的第三存储盘;
计算模块,用于计算各所述第三存储盘在所述预设时间周期内的文件清理分值;
第四筛选模块,用于从所有所述第三存储盘中筛选出文件清理分值最小的存储盘,得到所述目标存储盘。
本实施例中,上述模块或单元分别用于执行的操作与前述实施方式的数据导出方法的步骤一一对应,在此不再赘述。
进一步地,本申请一实施例中,上述计算模块,包括:
第二获取单元,用于获取第四存储盘在所述预设时间周期内的文件清理数量;其中,所述第四存储盘为所有所述第三存储盘中的任意一个存储盘;
第三获取单元,用于获取所述第四存储盘在所述预设时间周期内每一次清理文件的文件大小;
筛选单元,用于从所有所述文件大小中筛选出数值大于预设的清理大小阈值的指定文件大小;
第一计算单元,用于计算每一个所述指定文件大小与所述清理大小阈值之间的差值,并计算所有所述差值的和值得到超出总量;
第四获取单元,用于获取所述指定文件大小的数量;
第五获取单元,用于获取与所述文件清理数量对应的第一预设权重,与所述指定文件大小对应的第二预设权重,以及与所述超出总量对应的第三预设权重;
第二计算单元,用于基于所述第一预设权重、所述第二预设权重与所述预设第三权重,调用预设公式对所述文件清理数量、所述指定文件大小的数量以及所述超出总量进行计算得到对应的结果数值;
确定单元,用于将所述结果数值作为所述第四存储盘的文件清理分值。
本实施例中,上述模块或单元分别用于执行的操作与前述实施方式的数据导出方法的步骤一一对应,在此不再赘述。
进一步地,本申请一实施例中,上述数据导出装置,包括:
提取模块,用于若所述数据量小于所述数据量阈值,从所述数据导出请求中提取出所述请求参数;
第三获取模块,用于从所述预设数据库中获取与所述请求参数对应的所述待导出数据;
转换模块,用于调用预设的导出工具,基于所述导出工具对所述数据库中的所述待导出数据进行数据转换得到相应的指定文件;
第二返回模块,用于将所述指定文件返回至所述客户端。
本实施例中,上述模块或单元分别用于执行的操作与前述实施方式的数据导出方法的步骤一一对应,在此不再赘述。
进一步地,本申请一实施例中,上述第二处理模块7,包括:
提取单元,用于从所述文件下载url中提取出所述预设主键;
查询单元,用于从所述目标存储盘内查询出与所述预设主键对应的目标id信息;
下载单元,用于基于所述目标id信息,将所述目标存储盘内与所述目标id信息对应的所述目标文件下载至内存中;
第三处理单元,用于对所述内存中的所述目标文件进行压缩处理与加密处理,得到处理后的目标文件;
返回单元,用于向所述客户端返回所述处理后的目标文件。
本实施例中,上述模块或单元分别用于执行的操作与前述实施方式的数据导出方法的步骤一一对应,在此不再赘述。
参照图3,本申请实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏、输入装置和数据库。其中,该计算机设备设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括存储介质、内存储器。该存储介质存储有操作系统、计算机程序和数据库。该内存储器为存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储请求参数、待导出数据、数据量、文件下载url、导出数据表、id信息以及目标文件。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机设备的显示屏是计算机中必不可少的一种图文输出设备,用于将数字信号转换为光信号,使文字与图形在显示屏的屏幕上显示出来。该计算机设备的输入装置是计算机与用户或其他设备之间进行信息交换的主要装置,用于把数据、指令及某些标志信息等输送到计算机中去。该计算机程序被处理器执行时以实现一种数据导出方法。
上述处理器执行上述数据导出方法的步骤:
接收客户端提交的数据导出请求;其中,所述数据导出请求携带请求参数;
从预设数据库中确定出与所述请求参数对应的待导出数据,并查询出所述待导出数据的数据量;
判断所述数据量是否大于预设的数据量阈值;
若大于所述数据量阈值,从所述预设数据库中获取与所述请求参数对应的所述待导出数据,并将所述待导出数据存储至预设的导出数据表;
向所述客户端返回携带有预设主键的文件下载url;
基于所述导出数据表、预设的任务调度工具与预设的框架工具生成与所述待导出数据对应的目标文件,并基于与所述预设主键对应的id信息将所述目标文件上传至预设的目标存储盘内;
在所述目标文件成功上传至所述目标存储盘内后,若接收到所述客户端触发的对于所述文件下载url的点击操作,基于所述文件下载url从所述目标存储盘中查询出所述目标文件,并将所述目标文件返回给所述客户端。
本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的装置、计算机设备的限定。
本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现一种数据导出方法,具体为:
接收客户端提交的数据导出请求;其中,所述数据导出请求携带请求参数;
从预设数据库中确定出与所述请求参数对应的待导出数据,并查询出所述待导出数据的数据量;
判断所述数据量是否大于预设的数据量阈值;
若大于所述数据量阈值,从所述预设数据库中获取与所述请求参数对应的所述待导出数据,并将所述待导出数据存储至预设的导出数据表;
向所述客户端返回携带有预设主键的文件下载url;
基于所述导出数据表、预设的任务调度工具与预设的框架工具生成与所述待导出数据对应的目标文件,并基于与所述预设主键对应的id信息将所述目标文件上传至预设的目标存储盘内;
在所述目标文件成功上传至所述目标存储盘内后,若接收到所述客户端触发的对于所述文件下载url的点击操作,基于所述文件下载url从所述目标存储盘中查询出所述目标文件,并将所述目标文件返回给所述客户端。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM通过多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种数据导出方法,其特征在于,包括:
接收客户端提交的数据导出请求;其中,所述数据导出请求携带请求参数;
从预设数据库中确定出与所述请求参数对应的待导出数据,并查询出所述待导出数据的数据量;
判断所述数据量是否大于预设的数据量阈值;
若大于所述数据量阈值,从所述预设数据库中获取与所述请求参数对应的所述待导出数据,并将所述待导出数据存储至预设的导出数据表;
向所述客户端返回携带有预设主键的文件下载url;
基于所述导出数据表、预设的任务调度工具与预设的框架工具生成与所述待导出数据对应的目标文件,并基于与所述预设主键对应的id信息将所述目标文件上传至预设的目标存储盘内;
在所述目标文件成功上传至所述目标存储盘内后,若接收到所述客户端触发的对于所述文件下载url的点击操作,基于所述文件下载url从所述目标存储盘中查询出所述目标文件,并将所述目标文件返回给所述客户端。
2.根据权利要求1所述的数据导出方法,其特征在于,所述基于所述导出数据表、预设的任务调度工具与预设的框架工具生成与所述待导出数据对应的目标文件,并基于与所述预设主键对应的id信息将所述目标文件上传至预设的目标存储盘内的步骤,包括:
步骤A:获取与所述预设数据库对应的预设的导出数据阈值;
步骤B:判断所述数据量是否大于所述导出数据阈值;
步骤C:若是,基于所述导出数据阈值与所述数据量将所述导出数据表内的待导出数据划分成多个分页数据集,并基于所述分页数据集的数量分别对各所述分页数据集设置导出编号;其中,所述导出编号为整数,且所述导出编号的数值范围为1至n,所述n为所述分页数据集的数量;
步骤D:基于所述任务调度工具扫描出导出编号为i的指定分页数据集,并将所述指定分页数据集存储至预设列表内;其中,所述i为整数且所述i的初始值为1;
步骤E:基于所述框架工具对所述预设列表内的指定分页数据集进行数据转换得到对应的字节流文件,并基于所述预设主键为所述字节流文件生成指定id信息;
步骤F:基于所述指定id信息将所述字节流文件上传至所述目标存储盘内,并删除所述预设列表内的数据;
步骤G:令i=i+1,重复执行步骤D-步骤F直至i=n,以完成将所有所述分页数据集对应的所有字节流文件上传至所述目标存储盘内。
3.根据权利要求2所述的数据导出方法,其特征在于,所述基于所述任务调度工具扫描出导出编号为i的指定分页数据集,并将所述指定分页数据集存储至预设列表内的步骤,包括:
获取预设的数据数量;
基于所述数据数量将所述指定分页数据集划分为多个子数据集合;
生成与所述各子数据集合分别对应的数据存储任务,并从预设的所有处理线程中为每一个所述数据存储任务配置对应的指定处理线程;
对于每一个所述数据存储任务,通过所述任务调度工具对所述数据存储任务进行解析,获取所述数据存储任务的业务逻辑和执行时间;
在所述执行时间到达时,控制与所述数据存储任务对应的指定处理线程按照所述业务逻辑执行所述数据存储任务,以将所述数据存储任务存储至所述预设列表内。
4.根据权利要求1所述的数据导出方法,其特征在于,所述基于与所述预设主键对应的id信息将所述目标文件上传至预设的目标存储盘内的步骤之前,包括:
获取与所述数据量对应的占用内存数值;
从所述存储系统中包含的所有存储盘中筛选出剩余内存大于所述占用内存数值的第一存储盘;
从所有所述第一存储盘中筛选出在预设时间周期内的文件存储次数大于预设的次数阈值的第二存储盘;
从所有所述第二存储盘中筛选出在预设时间周期内的存储内存值大于预设的内存阈值的第三存储盘;
计算各所述第三存储盘在所述预设时间周期内的文件清理分值;
从所有所述第三存储盘中筛选出文件清理分值最小的存储盘,得到所述目标存储盘。
5.根据权利要求4所述的数据导出方法,其特征在于,所述计算各所述第三存储盘在所述预设时间周期内的文件清理分值的步骤,包括:
获取第四存储盘在所述预设时间周期内的文件清理数量;其中,所述第四存储盘为所有所述第三存储盘中的任意一个存储盘;
获取所述第四存储盘在所述预设时间周期内每一次清理文件的文件大小;
从所有所述文件大小中筛选出数值大于预设的清理大小阈值的指定文件大小;
计算每一个所述指定文件大小与所述清理大小阈值之间的差值,并计算所有所述差值的和值得到超出总量;
获取所述指定文件大小的数量;
获取与所述文件清理数量对应的第一预设权重,与所述指定文件大小对应的第二预设权重,以及与所述超出总量对应的第三预设权重;
基于所述第一预设权重、所述第二预设权重与所述预设第三权重,调用预设公式对所述文件清理数量、所述指定文件大小的数量以及所述超出总量进行计算得到对应的结果数值;
将所述结果数值作为所述第四存储盘的文件清理分值。
6.根据权利要求1所述的数据导出方法,其特征在于,所述判断所述数据量是否大于预设的数据量阈值的步骤之后,包括:
若所述数据量小于所述数据量阈值,从所述数据导出请求中提取出所述请求参数;
从所述预设数据库中获取与所述请求参数对应的所述待导出数据;
调用预设的导出工具,基于所述导出工具对所述数据库中的所述待导出数据进行数据转换得到相应的指定文件;
将所述指定文件返回至所述客户端。
7.根据权利要求1所述的数据导出方法,其特征在于,所述基于所述文件下载url从所述目标存储盘中查询出所述目标文件,并将所述目标文件返回给所述客户端的步骤,包括:
从所述文件下载url中提取出所述预设主键;
从所述目标存储盘内查询出与所述预设主键对应的目标id信息;
基于所述目标id信息,将所述目标存储盘内与所述目标id信息对应的所述目标文件下载至内存中;
对所述内存中的所述目标文件进行压缩处理与加密处理,得到处理后的目标文件;
向所述客户端返回所述处理后的目标文件。
8.一种数据导出装置,其特征在于,包括:
接收模块,用于接收客户端提交的数据导出请求;其中,所述数据导出请求携带请求参数;
查询模块,用于从预设数据库中确定出与所述请求参数对应的待导出数据,并查询出所述待导出数据的数据量;
第一判断模块,用于判断所述数据量是否大于预设的数据量阈值;
第一返回模块,用于若大于所述数据量阈值,从所述预设数据库中获取与所述请求参数对应的所述待导出数据,并将所述待导出数据存储至预设的导出数据表;
第一获取模块,用于向所述客户端返回携带有预设主键的文件下载url;
第一处理模块,用于基于所述导出数据表、预设的任务调度工具与预设的框架工具生成与所述待导出数据对应的目标文件,并基于与所述预设主键对应的id信息将所述目标文件上传至预设的目标存储盘内;
第二处理模块,用于在所述目标文件成功上传至所述目标存储盘内后,若接收到所述客户端触发的对于所述文件下载url的点击操作,基于所述文件下载url从所述目标存储盘中查询出所述目标文件,并将所述目标文件返回给所述客户端。
9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210073521.4A CN114398441B (zh) | 2022-01-21 | 2022-01-21 | 数据导出方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210073521.4A CN114398441B (zh) | 2022-01-21 | 2022-01-21 | 数据导出方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114398441A true CN114398441A (zh) | 2022-04-26 |
CN114398441B CN114398441B (zh) | 2024-03-19 |
Family
ID=81233009
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210073521.4A Active CN114398441B (zh) | 2022-01-21 | 2022-01-21 | 数据导出方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114398441B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114969098A (zh) * | 2022-06-21 | 2022-08-30 | 中银金融科技有限公司 | 一种数据处理方法、装置、电子设备、及计算机存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110309217A (zh) * | 2019-05-30 | 2019-10-08 | 平安科技(深圳)有限公司 | 数据的导入导出方法、装置、终端及计算机可读存储介质 |
CN111104448A (zh) * | 2019-12-17 | 2020-05-05 | 深圳前海环融联易信息科技服务有限公司 | 大数据量Excel文件导出方法、装置、计算机设备及存储介质 |
CN111143462A (zh) * | 2019-12-31 | 2020-05-12 | 广州酷旅旅行社有限公司 | 数据导出的方法、装置、计算机设备和存储介质 |
CN113609226A (zh) * | 2021-08-09 | 2021-11-05 | 平安国际智慧城市科技股份有限公司 | 一种数据导出方法、装置、计算机设备及存储介质 |
CN113806305A (zh) * | 2020-09-30 | 2021-12-17 | 北京沃东天骏信息技术有限公司 | 数据导出方法及装置、计算机可读存储介质及电子设备 |
-
2022
- 2022-01-21 CN CN202210073521.4A patent/CN114398441B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110309217A (zh) * | 2019-05-30 | 2019-10-08 | 平安科技(深圳)有限公司 | 数据的导入导出方法、装置、终端及计算机可读存储介质 |
CN111104448A (zh) * | 2019-12-17 | 2020-05-05 | 深圳前海环融联易信息科技服务有限公司 | 大数据量Excel文件导出方法、装置、计算机设备及存储介质 |
CN111143462A (zh) * | 2019-12-31 | 2020-05-12 | 广州酷旅旅行社有限公司 | 数据导出的方法、装置、计算机设备和存储介质 |
CN113806305A (zh) * | 2020-09-30 | 2021-12-17 | 北京沃东天骏信息技术有限公司 | 数据导出方法及装置、计算机可读存储介质及电子设备 |
CN113609226A (zh) * | 2021-08-09 | 2021-11-05 | 平安国际智慧城市科技股份有限公司 | 一种数据导出方法、装置、计算机设备及存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114969098A (zh) * | 2022-06-21 | 2022-08-30 | 中银金融科技有限公司 | 一种数据处理方法、装置、电子设备、及计算机存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114398441B (zh) | 2024-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112540811B (zh) | 缓存数据的检测方法、装置、计算机设备和存储介质 | |
CN110275861B (zh) | 数据存储方法及装置、存储介质、电子装置 | |
CN108628748B (zh) | 自动化测试管理方法和自动化测试管理系统 | |
CN111737963B (zh) | 基于配置文件的表单填写方法、装置和计算机设备 | |
CN113642039B (zh) | 单证模板的配置方法、装置、计算机设备和存储介质 | |
CN113326081A (zh) | 静态资源的处理方法、装置、计算机设备和存储介质 | |
CN112668041A (zh) | 单证文件的生成方法、装置、计算机设备和存储介质 | |
CN113918526B (zh) | 日志处理方法、装置、计算机设备和存储介质 | |
CN112597158A (zh) | 数据匹配方法、装置、计算机设备和存储介质 | |
CN113742776A (zh) | 基于生物识别技术的数据校验方法、装置和计算机设备 | |
CN114090408A (zh) | 数据监控分析方法、装置、计算机设备和存储介质 | |
CN113327037A (zh) | 基于模型的风险识别方法、装置、计算机设备和存储介质 | |
CN113986581A (zh) | 数据聚合处理方法、装置、计算机设备和存储介质 | |
CN114398441B (zh) | 数据导出方法、装置、计算机设备和存储介质 | |
CN112965981B (zh) | 数据核对方法、装置、计算机设备和存储介质 | |
CN113656588B (zh) | 基于知识图谱的数据对码方法、装置、设备和存储介质 | |
CN112650659B (zh) | 埋点设置方法、装置、计算机设备和存储介质 | |
CN113051372B (zh) | 材料数据的处理方法、装置、计算机设备和存储介质 | |
CN113900955A (zh) | 自动化测试方法、装置、设备及存储介质 | |
CN112947911A (zh) | 接口脚本生成方法、装置、设备及存储介质 | |
CN112632634B (zh) | 签名数据的处理方法、装置、计算机设备和存储介质 | |
CN115809241A (zh) | 数据存储方法、装置、计算机设备及存储介质 | |
CN114579398A (zh) | 一种日志的存储方法、装置、设备及存储介质 | |
CN113191146A (zh) | 诉求数据的分配方法、装置、计算机设备和存储介质 | |
CN113703687B (zh) | 数据入库处理方法、装置、计算机设备和存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |