本技术涉及计算机领域,具体而言,涉及一种数据离线导出方法、装置、电子设备和存储介质。
背景技术:
1、目前,现有导出功能基本上是基于poi技术实现,其中,基于poi技术实现这一方式需要每个开发人员额外编写下载任务执行过程的处理层,这样一来,就会耗时大量的人力物力,而且易出bug,开发效率低,而且不同的开发人员有不同的开发习惯,各自为战,代码无法做到统一,增加了开发人员的学习成本。此外,现有的下方方式不兼容实时和离线两种方式。
技术实现思路
1、本技术实施例的目的在于提供一种数据离线导出方法、装置、电子设备和存储介质,用以实现数据下载,其可兼容实时下载和离线下载两种数据导出方式。同时,本技术在使用时,只需要开发人员指示查询条件的表头、指示处理逻辑的数据体,而不需要对所有的处理过程进行二次开发,进而降低了其工作量,提高了开发效率,此外,还能够避免二次开发过程,不同开发人员的风格不同所导致的代码差异很大这一问题。
2、第一方面,本发明提供一种数据离线导出方法,所述方法包括:
3、响应用户针对目标数据库触发的数据导出请求,其中,所述数据导出请求携带下载参数,所述下载参数包括指示查询条件的表头、指示处理逻辑的数据体;
4、基于数据总数计算接口和所述查询条件确定下载数据总量,其中,所述查询条件作为所述数据总数计算接口的输入参数,所述数据总数计算接口基于所述查询条件返回所述下载数据总量;
5、判断所述下载数据总量是否大于离线阈值;
6、当所述下载数据总量大于等于所述离线阈值时,则基于所述查询条件和所述数据体创建离线下载任务,并将所述离线下载任务加入至离线下载表中;
7、当所述下载数据总量小于所述离线阈值时,并基于所述查询条件和所述数据体创建实时下载任务,并开启导出队列,以基于所述导出队列执行所述下载任务,其中,所述导出队列基于线程池执行所述下载任务。
8、本技术的方法通过响应用户针对目标数据库触发的数据导出请求,进而能够基于数据总数计算接口和所述查询条件确定下载数据总量,进而能够判断所述下载数据总量是否大于离线阈值,进而能够在所述下载数据总量大于等于所述离线阈值时,则基于所述查询条件和所述数据体创建离线下载任务,并将所述离线下载任务加入至离线下载表中,而在所述下载数据总量小于所述离线阈值时,基于所述查询条件和所述数据体创建实时下载任务,并开启导出队列,以基于所述导出队列执行所述下载任务,其中,所述导出队列基于线程池执行所述下载任务,这样一来能够基于离线阈值,兼容实时下载和离线下载两种方式。同时,用户只需要自定义下载参数,而对于大部分的处理逻辑不需要进行二次开发,从而降低代码差异而降低学习成本,并降低开发人员的工作量。
9、在可选的实施方式中,所述方法还包括:
10、创建定时器并基于所述定时器轮询所述离线下载表,以判断所述离线下载表是否存在待处理的下载任务,如果存在所述待处理的下载任务,则启动所述导出队列执行所述待处理的下载任务,其中,所述定时器每隔2分钟轮询所述离线下载表。
11、本可选的实施方式能够基于定时器轮询方式执行离线下载表中的所有待处理的下载任务。
12、在可选的实施方式中,所述方法还包括:
13、基于第一预设阈值将所述下载任务划分为至少两条子下载任务,以基于所述导出队列执行所述子下载任务,其中,所述子下载任务的下载数据量小于所述下载任务对应的所述下载数据总量。
14、本可选的实施方式能够基于第一预设阈值将所述下载任务划分为至少两条子下载任务,以基于所述导出队列执行所述子下载任务,其中,所述子下载任务的下载数据量小于所述下载任务对应的所述下载数据总量。
15、在可选的实施方式中,所述方法还包括:
16、获取所述导出队列执行所述下载任务得到的目标数据;
17、基于第二预设阈值将所述目标数据将所述目标数据存在若干个文件中。
18、本可选的实施方式能够自动获取所述导出队列执行所述下载任务得到的目标数据,进而能够自动基于第二预设阈值将所述目标数据将所述目标数据存在若干个文件中。
19、第二方面,本发明提供一种数据离线导出装置,所述装置包括:
20、响应模块,用于响应用户针对目标数据库触发的数据导出请求,其中,所述数据导出请求携带下载参数,所述下载参数包括指示查询条件的表头、指示处理逻辑的数据体;
21、计算模块,用于基于数据总数计算接口和所述查询条件确定下载数据总量,其中,所述查询条件作为所述数据总数计算接口的输入参数,所述数据总数计算接口基于所述查询条件返回所述下载数据总量;
22、判断模块,用于判断所述下载数据总量是否大于离线阈值;
23、第一创建模块,用于当所述下载数据总量大于等于所述离线阈值时,则基于所述查询条件和所述数据体创建离线下载任务,并将所述离线下载任务加入至离线下载表中;
24、第二创建模块,用于当所述下载数据总量小于所述离线阈值时,并基于所述查询条件和所述数据体创建实时下载任务,并开启导出队列,以基于所述导出队列执行所述下载任务,其中,所述导出队列基于线程池执行所述下载任务。
25、本技术的装置通过响应用户针对目标数据库触发的数据导出请求,进而能够基于数据总数计算接口和所述查询条件确定下载数据总量,进而能够判断所述下载数据总量是否大于离线阈值,进而能够在所述下载数据总量大于等于所述离线阈值时,则基于所述查询条件和所述数据体创建离线下载任务,并将所述离线下载任务加入至离线下载表中,而在所述下载数据总量小于所述离线阈值时,基于所述查询条件和所述数据体创建实时下载任务,并开启导出队列,以基于所述导出队列执行所述下载任务,其中,所述导出队列基于线程池执行所述下载任务,这样一来能够基于离线阈值,兼容实时下载和离线下载两种方式。同时,用户只需要自定义下载参数,而对于大部分的处理逻辑不需要进行二次开发,从而降低代码差异而降低学习成本,并降低开发人员的工作量。
26、在可选的实施方式中,所述装置还包括:
27、第三创建模块,用于创建定时器并基于所述定时器轮询所述离线下载表,以判断所述离线下载表是否存在待处理的下载任务,如果存在所述待处理的下载任务,则启动所述导出队列执行所述待处理的下载任务,其中,所述定时器每隔2分钟轮询所述离线下载表。
28、本可选的实施方式能够基于定时器轮询方式执行离线下载表中的所有待处理的下载任务。
29、在可选的实施方式中,所述装置还包括:
30、任务划分模块,用于基于第一预设阈值将所述下载任务划分为至少两条子下载任务,以基于所述导出队列执行所述子下载任务,其中,所述子下载任务的下载数据量小于所述下载任务对应的所述下载数据总量。
31、本可选的实施方式能够基于第一预设阈值将所述下载任务划分为至少两条子下载任务,以基于所述导出队列执行所述子下载任务,其中,所述子下载任务的下载数据量小于所述下载任务对应的所述下载数据总量。
32、在可选的实施方式中,所述装置还包括:
33、获取模块,用于获取所述导出队列执行所述下载任务得到的目标数据;
34、存储模块,用于基于第二预设阈值将所述目标数据将所述目标数据存在若干个文件中。
35、本可选的实施方式能够自动获取所述导出队列执行所述下载任务得到的目标数据,进而能够自动基于第二预设阈值将所述目标数据将所述目标数据存在若干个文件中。
36、第三方面,本发明提供一种电子设备,包括:
37、处理器;以及
38、存储器,配置用于存储机器可读指令,所述指令在由所述处理器执行时,执行如前述实施方式任一项所述的数据离线导出方法。
39、本技术的设备通过执行数据离线导出方法,能够响应用户针对目标数据库触发的数据导出请求,进而能够基于数据总数计算接口和所述查询条件确定下载数据总量,进而能够判断所述下载数据总量是否大于离线阈值,进而能够在所述下载数据总量大于等于所述离线阈值时,则基于所述查询条件和所述数据体创建离线下载任务,并将所述离线下载任务加入至离线下载表中,而在所述下载数据总量小于所述离线阈值时,基于所述查询条件和所述数据体创建实时下载任务,并开启导出队列,以基于所述导出队列执行所述下载任务,其中,所述导出队列基于线程池执行所述下载任务,这样一来能够基于离线阈值,兼容实时下载和离线下载两种方式。同时,用户只需要自定义下载参数,而对于大部分的处理逻辑不需要进行二次开发,从而降低代码差异而降低学习成本,并降低开发人员的工作量。
40、第四方面,本发明提供一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行如前述实施方式任一项所述的数据离线导出方法。
41、本技术的存储介质通过执行数据离线导出方法,能够响应用户针对目标数据库触发的数据导出请求,进而能够基于数据总数计算接口和所述查询条件确定下载数据总量,进而能够判断所述下载数据总量是否大于离线阈值,进而能够在所述下载数据总量大于等于所述离线阈值时,则基于所述查询条件和所述数据体创建离线下载任务,并将所述离线下载任务加入至离线下载表中,而在所述下载数据总量小于所述离线阈值时,基于所述查询条件和所述数据体创建实时下载任务,并开启导出队列,以基于所述导出队列执行所述下载任务,其中,所述导出队列基于线程池执行所述下载任务,这样一来能够基于离线阈值,兼容实时下载和离线下载两种方式。同时,用户只需要自定义下载参数,而对于大部分的处理逻辑不需要进行二次开发,从而降低代码差异而降低学习成本,并降低开发人员的工作量。