CN111460021B - 数据导出方法及装置 - Google Patents
数据导出方法及装置 Download PDFInfo
- Publication number
- CN111460021B CN111460021B CN202010258252.XA CN202010258252A CN111460021B CN 111460021 B CN111460021 B CN 111460021B CN 202010258252 A CN202010258252 A CN 202010258252A CN 111460021 B CN111460021 B CN 111460021B
- Authority
- CN
- China
- Prior art keywords
- data
- export
- information
- configuration
- configuration information
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000012545 processing Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 13
- 238000004422 calculation algorithm Methods 0.000 claims description 12
- 238000013500 data storage Methods 0.000 claims description 3
- 238000011161 development Methods 0.000 abstract description 13
- 230000006870 function Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 9
- 238000012360 testing method Methods 0.000 description 4
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000003238 somatosensory effect Effects 0.000 description 1
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
- G06F16/258—Data format conversion from or to a database
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据导出方法及装置,该方法包括:接收并获取数据导出请求,请求包括:导出配置编号和作业信息;根据导出配置编号获取预先设置的导出配置信息,导出配置信息包括:数据配置信息;根据数据配置信息和作业信息分页获取数据库中的数据并存储至内存,内存存储预定数量的数据;对读取的数据进行分文件操作,以生成多个文件;将多个文件进行压缩处理,以生成导出文件。通过本发明,可以降低开发成本,避免内存溢出的问题。
Description
技术领域
本发明涉及数据处理领域,具体涉及一种数据导出方法及装置。
背景技术
管理类导出明细数据是很常见的需求,由于明细数据可能数据量比较大,因而目前市面上常用的导出方法一般都会限制导出数据量,这类方式一般无法满足用户的实际需求。另一方面,如果采用全量导出,一般会采取一次性将数据加载进内存再进行导出的方式,这种方式在数据量较大的情况下容易造成服务器宕机的风险。对于导出需求比较多的系统,开发导出程序也比较耗时,开发成本较高。
发明内容
有鉴于此,本发明提供一种数据导出方法及装置,以解决上述提及的至少一个问题。
根据本发明的第一方面,提供一种数据导出方法,所述方法包括:接收并获取数据导出请求,所述请求包括:导出配置编号和作业信息;根据所述导出配置编号获取预先设置的导出配置信息,所述导出配置信息包括:数据配置信息;根据所述数据配置信息和所述作业信息获取数据库中的数据并存储至内存,所述内存存储预定数量的数据;根据所述数据配置信息从所述内存读取数据,并对读取的数据进行分文件操作,以生成多个文件;将所述多个文件进行压缩处理,以生成导出文件。
根据本发明的第二方面,提供一种数据导出装置,所述装置包括:请求获取单元,用于接收并获取数据导出请求,所述请求包括:导出配置编号和作业信息;配置信息获取单元,用于根据所述导出配置编号获取预先设置的导出配置信息,所述导出配置信息包括:数据配置信息;数据获取单元,用于根据所述数据配置信息和所述作业信息分页获取数据库中的数据并存储至内存,所述内存存储预定数量的数据;文件生成单元,用于根据所述数据配置信息从所述内存读取数据,并对读取的数据进行分文件操作,以生成多个文件;导出文件生成单元,用于将所述多个文件进行压缩处理,以生成导出文件。
根据本发明的第三方面,提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法的步骤。
根据本发明的第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。
由上述技术方案可知,通过根据接收的数据导出请求中的导出配置编号获取预先设置的数据配置信息,并根据数据配置信息和数据导出请求中的作业信息分页获取数据库中的数据并存储至内存,之后根据数据配置信息从内存读取数据,并对读取的数据进行分文件操作来生成多个文件,通过对多个文件进行压缩处理后生成导出文件,由于预先设置了导出配置信息,因而可以根据配置信息和作业信息获取数据,而无需开发应用,并且,这里的内存设置为存储预定数据量的数据,因而,可以避免内存溢出的问题,克服了现有技术中的开发成本高、内存溢出的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的数据导出方法的流程图;
图2是根据本发明实施例的数据导出流程示意图;
图3是根据本发明实施例的异步导出任务流程图;
图4是根据本发明实施例的数据导出装置的结构框图;
图5是根据本发明实施例的数据获取单元43的结构框图;
图6是根据本发明实施例的数据导出装置的详细结构框图;
图7是根据本发明实施例的电子设备的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前,不同的数据导出需求需要开发不同的导出应用,开发成本比较高,并且很多方法存在内存溢出的风险。鉴于此,本发明实施例提供一种数据导出方案,以解决上述开发成本高、内存溢出等问题。以下结合附图来详细描述本发明实施例。
图1是根据本发明实施例的数据导出方法的流程图,如图1所示,该方法包括:
步骤101,接收并获取数据导出请求,所述请求包括:导出配置编号和作业信息,该作业信息用于表示所要求导出数据的相关信息,例如,项目名称、项目编号等;
步骤102,根据所述导出配置编号获取预先设置的导出配置信息,所述导出配置信息包括:数据配置信息;
步骤103,根据所述数据配置信息和所述作业信息分页获取数据库中的数据并存储至内存,所述内存存储预定数量的数据;
步骤104,根据所述数据配置信息从所述内存读取数据,并对读取的数据进行分文件操作,以生成多个文件;
步骤105,将所述多个文件进行压缩处理,以生成导出文件。
通过根据接收的数据导出请求中的导出配置编号获取预先设置的数据配置信息,并根据数据配置信息和数据导出请求中的作业信息分页获取数据库中的数据并存储至内存,之后根据数据配置信息从内存读取数据,并对读取的数据进行分文件操作来生成多个文件,通过对多个文件进行压缩处理后生成导出文件,由于预先设置了导出配置信息,因而可以根据配置信息和作业信息获取数据,而无需开发应用,降低了开发成本,并且,这里的内存设置为存储预定数据量的数据,因而,可以避免内存溢出的问题,克服了现有技术中的开发成本高、内存溢出的问题。
在实际操作中,还可以根据导出配置编号和作业信息、基于预定算法生成导出信息;之后根据导出信息获取导出文件。也就是说,在生成导出文件后,基于导出信息就可以获取导出文件,避免了重复导出数据操作的问题。
这里的预定算法可以是计算MD5码算法,相应的导出信息为MD5码。
优选地,上述导出配置信息还包括:表头配置信息。
相应地,步骤103的获取数据并存储至内存的过程具体包括:根据所述数据配置信息和所述作业信息、基于预定的数据分页方式获取所述数据库中的数据;基于所述表头配置信息对所述数据进行处理后存储至内存中。
本发明实施例采用配置化实现大数据导出任务的快速开发工作,在实际操作中,开发人员可以根据导出需求设置导出配置信息,每一条导出配置具有唯一的导出配置编号(ID)。导出配置信息包括:导出基本配置信息(即,数据配置信息)以及表头配置信息,以下分别是导出基本配置信息和表头配置信息的配置示例。
(1)导出基本配置信息如下所示:
{
"Exp_cfg_id":"s11.exp_project_inf",//导出配置编号
"Exp_cfg_nm":"项目导出",//导出配置名称
"query_tp":"01",//导出调用类型01:DOS,02:SQL,03:自定义
"Exp_func":"s11.Project.Do-queryList",//query_tp:01时存SQLID,02时存SQL预处理预计,03时存储自定义查询函数名
"Exp_Class":"com.aaa.bbb.ProjectDo",//query_tp:01时存储DO实体类,03时存储自定义函数所属类
"Exp_Obj":"",//存储根据前端传递的参数进行DO实例化后转化为的JSON串信息
"Call_back":"com.aaa.bbb.ProjectDoCallBack",//查询结果回调类
"File_Name":"作业信息",//导出文件名
"Exp_head_id":"project_Exp_header",//导出表头配置编号
"File_Size":10000,
…
}
表1为导出基本配置信息:
名称 | 字段类型 | 描述 |
Exp_cfg_id | Varchar | 导出配置编号,主键 |
query_tp | Varchar | 数据库查询类型(DOS,SQL,自定义) |
Exp_func | Varchar | 查询函数或者SQL语句 |
Exp_Class | Varchar | 导出实体类 |
Exp_Obj | Varchar | 导出实体(导出实体拼接前端传送的条件) |
Call_back | Varchar | 回调函数 |
File_Name | Varchar | 导出文件名 |
Exp_head_id | Varchar | 导出表头配置编号 |
Oth_cfg | Varchar | 自定义配置字段 |
Ahr_eng_nm | Varchar | 导出权限 |
File_Size | Number | 单文件最大条数 |
表1
(2)导出表头配置信息如下所示:
[
{
"Exp_head_id":"project_Exp_header",
"Head_eng_nm":"PRJ_NM",
"Head_chn_nm":"项目名称",
"Col_type":"str",
"Seq_no":"1",
"Pattren":"",
…
},
{
"Exp_head_id":"project_Exp_header",
"Head_eng_nm":"PRJ_ID",
"Head_chn_nm":"项目编号",
"Col_type":"Number",
"Seq_no":"2",
"Pattren":"",
…
},
{
"Exp_head_id":"project_Exp_header",
"Head_eng_nm":"PRJ_STTM",
"Head_chn_nm":"项目开始时间",
"Col_type":"date",
"Seq_no":"3",
"Pattren":"yyyy-MM-dd",
…
},
…
]
表2为导出表头配置信息:
名称 | 字段类型 | 描述 |
Exp_head_id | varchar | 导出表头配置编号 |
Head_eng_nm | varchar | 表头属性名 |
Head_chn_nm | varchar | 表头展示中文名 |
Col_type | varchar | 表头属性 |
Seq_no | varchar | 表头字段顺序 |
Pattren | varchar | 表头适配模式 |
表2
在完成上述配置后,就可以根据上述配置来实现数据导出。以下结合图2来详细描述数据导出过程。
图2是根据本发明实施例的数据导出流程示意图,如图2所示,该流程包括:
步骤201,用户通过前端渠道访问特定的导出任务,例如,导出项目信息,并发出数据导出请求。
步骤202,应用服务器根据用户请求中的导出配置编号到数据库或者缓存中查找对应的导出配置信息。
如果导出操作设置了权限,则会校验用户是否有对应的权限,如果没有权限则会阻止导出操作。
根据导出配置信息(如上述的导出基本配置信息)以及用户请求信息(前端传递的查询参数,例如,项目信息)计算MD5码(系统默认使用MD5码,也可以根据开发人员指定算法计算)。
对于不同的配置,MD5码的计算过程不同。
例如,对于配置为基于DOS(Data Object Service,数据对象服务),前端传递的参数为如下所示:
{
"prjNm":"TEST",
"prjId":"113324123"
}
其中,“"prjNm":"TEST"”表示项目名称,“"prjId":"113324123"”表示项目编号。
基于上述参数,首先将该参数实例化DO对象(比如:com.aaa.bbb.ProjectDo),然后将该对象转化为JSON(JavaScript Object Notation,JS对象简谱)串,并放到配置对象的Exp_Obj中,之后计算MD5码。
对于基于SQL(Structured Query Language,结构化查询语言)的配置,前端传递的参数也为如下所示:
{
"prj_Nm":"TEST",
"prj_Id":"113324123"
}
根据上述参数与预处理的SQL匹配成最终SQL语句,之后将最终SQL语句放置到配置对象的Exp_func中,之后计算MD5码。
步骤203,根据计算的MD5值以及导出配置编号查询异步任务表中在指定时间内是否有相同的异步导出任务,具体可以执行如下之一:
(1)如果有相同的异步导出任务,并且该任务是成功的,则直接返回对应的导出文件。
(2)如果没有满足条件的异步任务,则将本次导出请求存储到异步任务表中,等待异步导出任务守护处理,进行数据导出。
(3)将异步任务编号返回前端,前端会轮询导出任务,用户也可以到指定的文件下载目录下载对应的导出文件。
对于上述(2)的异步导出任务守护处理,在实际操作中,异步导出任务守护从异步任务表中获取对应的异步导出任务。
以下结合图3来详细描述异步导出任务的流程。如图3所示,该流程包括:
步骤301,从异步任务TASK_PARM中获取导出如下所示的处理函数:
{
"Exp_cfg_id":"s11.exp_project_inf",//导出配置编号
"Exp_cfg_nm":"项目导出",//导出配置名称
"query_tp":"01",//导出调用类型01:DOS,02:SQL,03:自定义
"Exp_func":"s11.Project.Do-queryList",//query_tp:01时存SQLID,02时存SQL预处理预计,03时存储自定义查询函数名
"Exp_Class":"com.aaa.bbb.ProjectDo",//query_tp:01时存储DO实体类,03时存储自定义函数所属类
"Exp_Obj":"{\"prjNm\":\"TEST\",\"prjId\":\"113324123\"}",//存储根据前端传递的参数进行DO实例化后转化为的JSON串信息
"Call_back":"com.aaa.bbb.ProjectDoCallBack",//查询结果回调类
"File_Name":"作业信息",//导出文件名
"Exp_head_id":"project_Exp_header",//导出表头配置编号
…
}
步骤302,根据异步任务中的Exp_head_id获取导出文件的表头配置信息,根据表头配置信息处理数据的表头样式、数据格式、数据转换等。
步骤303,调用PIO的流式导出方法,保证内存中只保留默认的100条记录,可以通过如下程序来实现:
int num=100;
num=ParmUtils.getParm("RowStorageNum");
SXSSFWorkbook wb=new SXSSFWorkbook(num);
在实际操作中,也可根据用户需求配置内存中存储的最大记录条数。
步骤304,根据不同的数据获取方式(例如,DOS、SQL、用户自定义查询函数)分页获取数据并存储至内存,可以预先根据实际需求配置每页查询的记录条数。
具体地,基于DOS数据库分页访问数据(比如Mybatis/iBatis等),通过如下程序实现:
public List<T>findListBySqlMap(String id,T parameterObject,int start,intmaxRows)
基于SQL语句的分页访问数据,可以通过如下程序实现:
public List<Map<String,?>>findListBySqlMap(String sql,int start,intmaxRows,Object...values)
步骤305,获取数据后调用回调函数接口,对数据进行处理,例如,数据字典转码翻译等。
步骤306,将获取的数据(List result)写入对应的表格(excel)中,同时将内存中的查询结果(List)删除(result.clear()),之后,根据配置的单文件最大条数(File_Size),进行分文件操作,确保每个文件最大条数为File_Size。
步骤307,待数据全部写完后,对文件进行压缩打包操作,生成导出文件。
导出文件成功后,可以以消息、邮件等形式通知用户。
在实际操作中,当需要配置新的导出任务时,可以根据需求配置对应的DOS或者SQL语句或者自定义分页查询方法、回调函数信息,导出文件名、导出表头配置信息等。
基于相似的发明构思,本发明实施例还提供一种数据导出装置,优选地,该装置用于实现上述方法实施例中的流程。
图4是根据本发明实施例的数据导出装置的结构框图,如图4所示,该数据导出装置包括:请求获取单元41、配置信息获取单元42、数据获取单元43、文件生成单元44以及导出文件生成单元45,其中:
请求获取单元41,用于接收并获取数据导出请求,所述请求包括:导出配置编号和作业信息;
配置信息获取单元42,用于根据所述导出配置编号获取预先设置的导出配置信息,所述导出配置信息包括:数据配置信息;
数据获取单元43,用于根据所述数据配置信息和所述作业信息获取数据库中的数据并存储至内存,所述内存存储预定数量的数据;
文件生成单元44,用于根据所述数据配置信息从所述内存读取数据,并对读取的数据进行分文件操作,以生成多个文件;
导出文件生成单元45,用于将所述多个文件进行压缩处理,以生成导出文件。
通过配置信息获取单元42根据请求获取单元41接收的数据导出请求中的导出配置编号获取预先设置的数据配置信息,数据获取单元43根据数据配置信息和数据导出请求中的作业信息获取数据库中的数据并存储至内存,随后文件生成单元44根据数据配置信息从内存读取数据,并对读取的数据进行分文件操作来生成多个文件,之后导出文件生成单元45对多个文件进行压缩处理后生成导出文件,由于预先设置了导出配置信息,因而可以根据该配置信息和作业信息获取数据,而无需开发应用,并且,这里的内存设置为存储预定数据量的数据,因而,可以避免内存溢出的问题,克服了现有技术中的开发成本高、内存溢出的问题。
在实际操作中,导出配置信息还包括:表头配置信息。
如图5所示,数据获取单元43包括:数据获取模块431、数据处理模块432以及数据存储模块433,其中:
数据获取模块431,用于根据所述数据配置信息和所述作业信息、基于预定的数据分页方式获取所述数据库中的数据;
数据处理模块432,用于基于所述表头配置信息对所述数据进行处理;
数据存储模块433,用于将处理后的数据存储至内存中。
具体而言,如图6所示,上述数据导出装置还包括:导出信息生成单元46和导出文件获取单元47,其中:
导出信息生成单元46,用于根据所述导出配置编号和所述作业信息、基于预定算法生成导出信息;
导出文件获取单元47,用于根据所述导出信息获取所述导出文件。
在一个实施例中,上述数据导出装置还包括:数据删除单元48,用于删除从所述内存读取的数据。从而可以保证内存中的数据不超过预定数据量,以避免内存溢出的问题。
上述各单元、各模块的具体执行过程,可以参见上述方法实施例中的描述,此处不再赘述。
在实际操作中,上述各单元、各模块可以组合设置、也可以单一设置,本发明不限于此。
图7是根据本发明实施例的电子设备的示意图。图7所示的电子设备为通用数据处理装置,其包括通用的计算机硬件结构,其至少包括处理器701和存储器702。处理器701和存储器702通过总线703连接。存储器702适于存储处理器701可执行的一条或多条指令或程序。该一条或多条指令或程序被处理器701执行以实现上述数据导出方法中的步骤。
上述处理器701可以是独立的微处理器,也可以是一个或者多个微处理器集合。由此,处理器701通过执行存储器702所存储的命令,从而执行如上所述的本发明实施例的方法流程实现对于数据的处理和对于其他装置的控制。总线703将上述多个组件连接在一起,同时将上述组件连接到显示控制器704和显示装置以及输入/输出(I/O)装置705。输入/输出(I/O)装置705可以是鼠标、键盘、调制解调器、网络接口、触控输入装置、体感输入装置、打印机以及本领域公知的其他装置。典型地,输入/输出(I/O)装置705通过输入/输出(I/O)控制器706与系统相连。
其中,存储器702可以存储软件组件,例如操作系统、通信模块、交互模块以及应用程序。以上所述的每个模块和应用程序都对应于完成一个或多个功能和在发明实施例中描述的方法的一组可执行程序指令。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时以实现上述数据导出方法方法的步骤。
综上所述,本发明实施例提供了一种基于配置化的大数据量异步导出方案,该方案满足大数据量导出,同时可以实现配置化,可以解决大部分的导出需求,对于特殊的导出需求,可以提供扩展接口以及回调方式,满足定制化需求。本发明实施例基于导出需求通过配置来快速实现数据导出,可以屏蔽掉导出处理细节,只需要预先设置导出配置信息,就可以减少代码错误率,提高开发效率,同时可以统一导出开发规范,提高代码可读性,异步分页查询、分文件压缩导出可以避免内存异常、服务宕机的风险。
以上参照附图描述了本发明的优选实施方式。这些实施方式的许多特征和优点根据该详细的说明书是清楚的,因此权利要求旨在覆盖这些实施方式的落入其真实精神和范围内的所有这些特征和优点。此外,由于本领域的技术人员容易想到很多修改和改变,因此不是要将本发明的实施方式限于所例示和描述的精确结构和操作,而是可以涵盖落入其范围内的所有合适修改和等同物。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (8)
1.一种数据导出方法,其特征在于,所述方法包括:
接收并获取数据导出请求,所述请求包括:导出配置编号和作业信息,该作业信息用于表示所要求导出数据的相关信息;
根据所述导出配置编号获取预先设置的导出配置信息,所述导出配置信息包括:数据配置信息;
根据所述数据配置信息和所述作业信息获取数据库中的数据并存储至内存,所述内存存储预定数量的数据;
根据所述数据配置信息从所述内存读取数据,并对读取的数据进行分文件操作,以生成多个文件;
将所述多个文件进行压缩处理,以生成导出文件;
根据所述导出配置编号和所述作业信息、基于预定算法生成导出信息,所述预定算法为MD5码算法,所述导出信息为MD5码;
根据所述导出信息获取所述导出文件;
所述根据所述导出配置编号和所述作业信息、基于预定算法生成导出信息包括:
对于基于DOS的配置,将所述作业信息实例化为DO对象,将该对象转化为JSON串,并放到配置对象的Exp_Obj中,之后计算Exp_Obj的MD5码;
对于基于SQL的配置,将所述作业信息与预处理的SQL匹配成最终的SQL语句,将最终SQL语句放置到配置对象的Exp_func中,之后计算Exp_func的MD5码;
所述方法还包括:
根据所述导出信息以及所述导出配置编号查询异步任务表中在指定时间内是否有相同的异步导出任务;
如果有相同的异步导出任务,并且该任务是成功的,则直接返回对应的导出文件;
如果没有满足条件的异步任务,则将本次导出请求存储到异步任务表中,等待异步导出任务守护处理,进行数据导出,其中,异步导出任务守护从异步任务表中获取对应的异步导出任务;
将异步任务编号返回前端,前端会轮询导出任务,用户也可以到指定的文件下载目录下载对应的导出文件。
2.根据权利要求1所述的方法,其特征在于,所述导出配置信息还包括:表头配置信息,根据所述数据配置信息和所述作业信息获取数据库中的数据并存储至内存包括:
根据所述数据配置信息和所述作业信息、基于预定的数据分页方式获取所述数据库中的数据;
基于所述表头配置信息对所述数据进行处理后存储至内存中。
3.根据权利要求1所述的方法,其特征在于,从所述内存读取数据之后,所述方法还包括:
删除从所述内存读取的数据。
4.一种数据导出装置,其特征在于,所述装置包括:
请求获取单元,用于接收并获取数据导出请求,所述请求包括:导出配置编号和作业信息,该作业信息用于表示所要求导出数据的相关信息;
配置信息获取单元,用于根据所述导出配置编号获取预先设置的导出配置信息,所述导出配置信息包括:数据配置信息;
数据获取单元,用于根据所述数据配置信息和所述作业信息获取数据库中的数据并存储至内存,所述内存存储预定数量的数据;
文件生成单元,用于根据所述数据配置信息从所述内存读取数据,并对读取的数据进行分文件操作,以生成多个文件;
导出文件生成单元,用于将所述多个文件进行压缩处理,以生成导出文件;
所述装置还包括:
导出信息生成单元,用于根据所述导出配置编号和所述作业信息、基于预定算法生成导出信息,所述预定算法为MD5码算法,所述导出信息为MD5码;
导出文件获取单元,用于根据所述导出信息获取所述导出文件,具体包括:根据所述导出信息以及所述导出配置编号查询异步任务表中在指定时间内是否有相同的异步导出任务;如果有相同的异步导出任务,并且该任务是成功的,则直接返回对应的导出文件;如果没有满足条件的异步任务,则将本次导出请求存储到异步任务表中,等待异步导出任务守护处理,进行数据导出,其中,异步导出任务守护从异步任务表中获取对应的异步导出任务;将异步任务编号返回前端,前端会轮询导出任务,用户也可以到指定的文件下载目录下载对应的导出文件;
所述导出信息生成单元具体用于:
对于基于DOS的配置,将所述作业信息实例化为DO对象,将该对象转化为JSON串,并放到配置对象的Exp_Obj中,之后计算Exp_Obj的MD5码;
对于基于SQL的配置,将所述作业信息与预处理的SQL匹配成最终的SQL语句,将最终SQL语句放置到配置对象的Exp_func中,之后计算Exp_func的MD5码。
5.根据权利要求4所述的装置,其特征在于,所述导出配置信息还包括:表头配置信息,所述数据获取单元:
数据获取模块,用于根据所述数据配置信息和所述作业信息、基于预定的数据分页方式获取所述数据库中的数据;
数据处理模块,用于基于所述表头配置信息对所述数据进行处理;
数据存储模块,用于将处理后的数据存储至内存中。
6.根据权利要求4所述的装置,其特征在于,所述装置还包括:
数据删除单元,用于删除从所述内存读取的数据。
7.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至3中任一项所述方法的步骤。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至3中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010258252.XA CN111460021B (zh) | 2020-04-03 | 2020-04-03 | 数据导出方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010258252.XA CN111460021B (zh) | 2020-04-03 | 2020-04-03 | 数据导出方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111460021A CN111460021A (zh) | 2020-07-28 |
CN111460021B true CN111460021B (zh) | 2024-01-19 |
Family
ID=71685891
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010258252.XA Active CN111460021B (zh) | 2020-04-03 | 2020-04-03 | 数据导出方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111460021B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112463869A (zh) * | 2020-12-15 | 2021-03-09 | 北京首汽智行科技有限公司 | 一种数据导出及发送方法 |
CN113011145A (zh) * | 2021-03-16 | 2021-06-22 | 深圳市麦谷科技有限公司 | 数据导出方法、装置、终端设备和存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102486772A (zh) * | 2009-12-29 | 2012-06-06 | 北京方正阿帕比技术有限公司 | 一种数据的导出方法及装置 |
CN103092993A (zh) * | 2013-02-18 | 2013-05-08 | 五八同城信息技术有限公司 | 数据导出方法及装置 |
CN103500196A (zh) * | 2013-09-22 | 2014-01-08 | 成都交大光芒科技股份有限公司 | 多并发大数据量环境下excel数据导出方法及其导出装置 |
CN104424325A (zh) * | 2013-09-10 | 2015-03-18 | 阿里巴巴集团控股有限公司 | 数据查询方法和装置 |
CN109947789A (zh) * | 2019-01-28 | 2019-06-28 | 平安科技(深圳)有限公司 | 一种多数据库的数据处理的方法、装置、计算机设备及存储介质 |
CN110008262A (zh) * | 2019-02-02 | 2019-07-12 | 阿里巴巴集团控股有限公司 | 一种数据导出方法及装置 |
CN110019437A (zh) * | 2017-07-18 | 2019-07-16 | 北京京东尚科信息技术有限公司 | 一种导出数据的方法和系统 |
CN110413978A (zh) * | 2019-08-02 | 2019-11-05 | 中国工商银行股份有限公司 | 数据分页导出方法、装置、计算机设备和存储介质 |
-
2020
- 2020-04-03 CN CN202010258252.XA patent/CN111460021B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102486772A (zh) * | 2009-12-29 | 2012-06-06 | 北京方正阿帕比技术有限公司 | 一种数据的导出方法及装置 |
CN103092993A (zh) * | 2013-02-18 | 2013-05-08 | 五八同城信息技术有限公司 | 数据导出方法及装置 |
CN104424325A (zh) * | 2013-09-10 | 2015-03-18 | 阿里巴巴集团控股有限公司 | 数据查询方法和装置 |
CN103500196A (zh) * | 2013-09-22 | 2014-01-08 | 成都交大光芒科技股份有限公司 | 多并发大数据量环境下excel数据导出方法及其导出装置 |
CN110019437A (zh) * | 2017-07-18 | 2019-07-16 | 北京京东尚科信息技术有限公司 | 一种导出数据的方法和系统 |
CN109947789A (zh) * | 2019-01-28 | 2019-06-28 | 平安科技(深圳)有限公司 | 一种多数据库的数据处理的方法、装置、计算机设备及存储介质 |
CN110008262A (zh) * | 2019-02-02 | 2019-07-12 | 阿里巴巴集团控股有限公司 | 一种数据导出方法及装置 |
CN110413978A (zh) * | 2019-08-02 | 2019-11-05 | 中国工商银行股份有限公司 | 数据分页导出方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111460021A (zh) | 2020-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109947789B (zh) | 一种多数据库的数据处理的方法、装置、计算机设备及存储介质 | |
US9092408B2 (en) | Data listeners for type dependency processing | |
CN109524070B (zh) | 数据处理方法及装置、电子设备、存储介质 | |
CN111460021B (zh) | 数据导出方法及装置 | |
US9009175B2 (en) | System and method for database migration and validation | |
CN110737689B (zh) | 数据标准符合性检测方法、装置、系统及存储介质 | |
EP3296864A1 (en) | Storing and retrieving documentation | |
JP2022551011A (ja) | データを格納するための方法および装置、並びにそれらのコンピュータデバイスおよび記憶媒体 | |
CN111752959A (zh) | 一种实时数据库跨库sql交互方法和系统 | |
CN111736907B (zh) | 一种自适应低延迟内存计算引擎的数据分析方法 | |
CN110955674A (zh) | 基于java服务的异步导出方法及组件 | |
CN113901078A (zh) | 业务订单关联查询方法、装置、设备及存储介质 | |
CN111625300B (zh) | 一种高效的数据采集加载方法及系统 | |
CN113010542A (zh) | 业务数据处理方法、装置、计算机设备及存储介质 | |
CN111752918A (zh) | 一种历史数据交互系统及其配置方法 | |
CN106776810A (zh) | 一种大数据的数据处理系统及方法 | |
CN107818501B (zh) | 精算方法和装置 | |
CN109977104B (zh) | 数据管理方法及装置 | |
CN115375430A (zh) | 一种银行补录数据的批量解析和加载方法、装置及设备 | |
CN114385145A (zh) | 一种Web系统后端架构设计方法及计算机设备 | |
CN113722296A (zh) | 一种农业信息处理方法、装置、电子设备及存储介质 | |
CN113986951A (zh) | 一种通用etl代码的生成系统及方法 | |
US20130041880A1 (en) | Method and system for generic enterprise search adapter queries | |
CN114153438A (zh) | 一种api自动生成系统 | |
CN112668285A (zh) | 结合rpa和ai的资金日报的生成方法、装置及电子设备 |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220922 Address after: 25 Financial Street, Xicheng District, Beijing 100033 Applicant after: CHINA CONSTRUCTION BANK Corp. Address before: 25 Financial Street, Xicheng District, Beijing 100033 Applicant before: CHINA CONSTRUCTION BANK Corp. Applicant before: Jianxin Financial Science and Technology Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |