数据导出方法、装置、设备及存储介质制造方法及图纸

技术编号:37371497 阅读:16 留言:0更新日期:2023-04-27 07:16
本发明专利技术涉及数据处理领域,公开了一种数据导出方法、装置、设备及存储介质,该方法包括:获取用户递交的数据导出指令;基于所述数据导出指令在对应的数据库中生成待导出数据的导出任务记录和指向所述待导出数据的SQL语句文件;通过所述调度脚本基于所述导出任务记录和SQL语句文件对所述待导出数据进行导出,得到CSV文件。通过本方法在数据库中存储导出任务记录并在指定周期内对待导出数据进行批量导出,生成CSV文件,并存储于服务器内的指定位置,实现数据的批量导出,能够减少导出任务记录中数据搜索的时间跨度和空间跨度,降低数据表的检索复杂度,从而提升大批量数据的查询、导出效率。导出效率。导出效率。

【技术实现步骤摘要】
数据导出方法、装置、设备及存储介质


[0001]本专利技术涉及数据处理领域,尤其涉及一种数据导出方法、装置、设备及存储介质。

技术介绍

[0002]快运报表系统中导出系统模块每天都有多用户并行使用,应业务需求需将前端报表查询数据导出成csv格式文件并支持特定报表转换成excel表格文件,并且支持自定义表格样式,实现导出文件的阅读美观性以及多设备的适应性,提高用户体验。Java或者Python等普通方法完成大数据量导出文件转换不仅耗时,而且开发时间长,当并发量上来之后导致服务器压力过大,CPU打满,进程卡死,给用户带来极差的体验。所以我们急需一种方法来处理大数据文件,给用户带来良好的用户体验。

技术实现思路

[0003]本专利技术的主要目的在于解决现有的数据导出方法中,无法在高并发情况下的数据导出耗时过长的技术问题。
[0004]本专利技术第一方面提供了一种数据导出方法,所述数据导出方法应用于数据导出系统,所述数据导出系统包括至少一个数据库和调度脚本,所述数据导出方法包括:获取用户递交的数据导出指令;基于所述数据导出指令在对应的数据库中生成待导出数据的导出任务记录和指向所述待导出数据的SQL语句文件;通过所述调度脚本基于所述导出任务记录和SQL语句文件对所述待导出数据进行导出,得到CSV文件。
[0005]可选的,在本专利技术第一方面的第一种实现方式中,所述基于所述数据导出指令在对应的数据库中生成待导出数据的导出任务记录和指向所述待导出数据的SQL语句文件,包括:基于所述数据导出指令确定待导出数据和所述待导出数据对应的数据库;创建包含所述待导出数据的导出任务记录和SQL语句文件,并将所述导出任务记录和所述SQL语句文件存储于所述待导出数据对应的数据库中。
[0006]可选的,在本专利技术第一方面的第二种实现方式中,所述导出任务记录包括任务执行状态,所述任务执行状态包括未执行和执行中;在所述基于所述数据导出指令在对应的数据库中生成待导出数据的导出任务记录和指向所述待导出数据的SQL语句文件之后,还包括:通过所述调度脚本基于预设的扫描频率对所述待导出数据对应的数据库进行扫描,判断所述数据库中是否存在任务执行状态为未执行的导出任务记录;若存在,则生成批量执行文件,调取所述任务执行状态为未执行的导出任务记录,并写入所述批量执行文件中;将被存储于批量执行文件中的导出任务记录对应的任务执行状态修改为执行中。
[0007]可选的,在本专利技术第一方面的第三种实现方式中,所述生成批量执行文件,调取所述任务执行状态为未执行的导出任务记录,并写入所述批量执行文件中,包括:生成批量执行文件,调取数据库中所有执行状态为未执行的导出任务记录;获取预设排序规则,根据所述预设排序规则的优先级信息,为调取的导出任务记录进行排序;将排序后的导出任务记录写入所述批量执行文件中。
[0008]可选的,在本专利技术第一方面的第四种实现方式中,所述批量执行文件中包括指向所述导出任务记录的数据库的数据库地址;所述通过所述调度脚本基于所述导出任务记录和SQL语句文件对所述待导出数据进行导出,得到CSV文件,包括:通过所述调度脚本基于所述批量执行文件中记录的指向所述导出任务记录的数据库的数据库地址确定对应的数据库;在所述数据库中执行对应于所述导出任务记录的SQL语句文件,对所述待导出数据进行导出得到CSV文件。
[0009]可选的,在本专利技术第一方面的第五种实现方式中,在所述通过所述调度脚本基于所述导出任务记录和SQL语句文件对所述待导出数据进行导出,得到CSV文件之后,还包括:判断所述CSV文件是否需要转换为表格文件;若需要转换,则获取用户定义好的表格文件的版本格式;调起预设的SPL脚本,通过SPL脚本以流方式将所述CSV文件转换成对应于所述版本格式的表格文件。
[0010]可选的,在本专利技术第一方面的第六种实现方式中,所述导出任务记录存在执行状态,所述执行状态还包括已完成;在所述调起预设的SPL脚本,通过SPL脚本以流方式将所述CSV文件转换成对应于所述版本格式的表格文件之后,还包括:将生成的所述表格文件或者所述CSV文件上传至预设的下载目录;当所述表格文件或者所述CSV文件上传至所述下载目录时,通过预设接口将对应的导出任务记录的执行状态从执行中更新为已完成。
[0011]本专利技术第二方面提供了一种数据导出装置,所述数据导出方法应用于数据导出系统,所述数据导出系统包括至少一个数据库和调度脚本,所述数据导出装置运行上述数据导出方法,包括:指令获取模块,用于获取用户递交的数据导出指令;任务记录生成模块,用于基于所述数据导出指令在对应的数据库中生成待导出数据的导出任务记录和指向所述待导出数据的SQL语句文件;数据导出模块,用于通过所述调度脚本基于所述导出任务记录和SQL语句文件对所述待导出数据进行导出,得到CSV文件。
[0012]可选的,在本专利技术第二方面的第一种实现方式中,所述任务记录生成模块具体用于:基于所述数据导出指令确定待导出数据和所述待导出数据对应的数据库;创建包含所述待导出数据的导出任务记录和SQL语句文件,并将所述导出任务记录和所述SQL语句文件存储于所述待导出数据对应的数据库中。
[0013]可选的,在本专利技术第二方面的第二种实现方式中,所述数据导出装置还包括执行状态修改模块,所述执行状态修改模块具体用于:数据库扫描单元,通过所述调度脚本基于预设的扫描频率对所述待导出数据对应的数据库进行扫描,判断所述数据库中是否存在任务执行状态为未执行的导出任务记录;批量执行文件生成单元,若存在,则生成批量执行文件,调取所述任务执行状态为未执行的导出任务记录,并写入所述批量执行文件中;执行状态修改单元,将被存储于批量执行文件中的导出任务记录对应的任务执行状态修改为执行中。
[0014]可选的,在本专利技术第二方面的第三种实现方式中,所述批量执行文件生成单元具体用于:生成批量执行文件,调取数据库中所有执行状态为未执行的导出任务记录;获取预设排序规则,根据所述预设排序规则的优先级信息,为调取的导出任务记录进行排序;将排序后的导出任务记录写入所述批量执行文件中。
[0015]可选的,在本专利技术第二方面的第四种实现方式中,所述数据导出模块具体用于:通过所述调度脚本基于所述批量执行文件中记录的指向所述导出任务记录的数据库的数据
库地址确定对应的数据库;在所述数据库中执行对应于所述导出任务记录的SQL语句文件,对所述待导出数据进行导出得到CSV文件。
[0016]可选的,在本专利技术第二方面的第五种实现方式中,所述数据导出装置还包括版本格式确定模块,所述版本格式确定模块具体用于:判断所述CSV文件是否需要转换为表格文件;若需要转换,则获取用户定义好的表格文件的版本格式;调起预设的SPL脚本,通过SPL脚本以流方式将所述CSV文件转换成对应于所述版本格式的表格文件。
[0017]可选的,在本专利技术第二方面的第六种实现方式中,所述数据导出装置还包括状态完成模块,所述状态完成模块具体用于:将生成的所述表格文件或者所述CSV文件上传本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据导出方法,其特征在于,所述数据导出方法应用于数据导出系统,所述数据导出系统包括至少一个数据库和调度脚本,所述数据导出方法包括:获取用户递交的数据导出指令;基于所述数据导出指令在对应的数据库中生成待导出数据的导出任务记录和指向所述待导出数据的SQL语句文件;通过所述调度脚本基于所述导出任务记录和SQL语句文件对所述待导出数据进行导出,得到CSV文件。2.根据权利要求1所述的数据导出方法,其特征在于,所述基于所述数据导出指令在对应的数据库中生成待导出数据的导出任务记录和指向所述待导出数据的SQL语句文件,包括:基于所述数据导出指令确定待导出数据和所述待导出数据对应的数据库;创建包含所述待导出数据的导出任务记录和SQL语句文件,并将所述导出任务记录和所述SQL语句文件存储于所述待导出数据对应的数据库中。3.根据权利要求1所述的数据导出方法,其特征在于,所述导出任务记录包括任务执行状态,所述任务执行状态包括未执行和执行中;在所述基于所述数据导出指令在对应的数据库中生成待导出数据的导出任务记录和指向所述待导出数据的SQL语句文件之后,还包括:通过所述调度脚本基于预设的扫描频率对所述待导出数据对应的数据库进行扫描,判断所述数据库中是否存在任务执行状态为未执行的导出任务记录;若存在,则生成批量执行文件,调取所述任务执行状态为未执行的导出任务记录,并写入所述批量执行文件中;将被存储于批量执行文件中的导出任务记录对应的任务执行状态修改为执行中。4.根据权利要求3所述的数据导出方法,其特征在于,所述生成批量执行文件,调取所述任务执行状态为未执行的导出任务记录,并写入所述批量执行文件中,包括:生成批量执行文件,调取数据库中所有执行状态为未执行的导出任务记录;获取预设排序规则,根据所述预设排序规则的优先级信息,为调取的导出任务记录进行排序;将排序后的导出任务记录写入所述批量执行文件中。5.根据权利要求3所述的数据导出方法,其特征在于,所述批量执行文件中包括指向所述导出任务记录的数据库的数据库地址;所述通过所述调度脚本基于所述导出任务记录和SQL语句文件对所述待导出数据进行导出,得到CSV文件,包括:通过所述调度脚本基于所述批量执行文件中记录的指向所...

【专利技术属性】
技术研发人员:苏战营曾雨俊洪月夏林强李晓军罗永亮
申请(专利权)人:上海乾臻信息科技有限公司
类型:发明
国别省市:

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

1