本技术涉及计算机,具体而言,涉及一种数据批量导出方法、设备及介质。
背景技术:
1、elasticsearch(简称es)是基于lucene的分布式、高扩展、高实时的搜索与数据分析引擎,支持海量数据的存储和搜索,为各类型的数据提供近乎实时的搜索和分析。
2、目前,利用es进行全量数据导出时存在性能较低、内存溢出以及开发复杂的弊端。
3、因此,如何实现高效、可靠的es全量数据导出是亟需解决的问题。
技术实现思路
1、本技术的目的在于,针对上述现有技术中的不足,提供一种数据批量导出方法、设备及介质,以解决现有技术中利用es导出全量数据时性能较低、内存溢出以及开发复杂的实际需要的问题。
2、为实现上述目的,本技术实施例采用的技术方案如下:
3、第一方面,本技术实施例提供一种数据批量导出方法,所述方法包括:
4、获取数据导出处理接口的输入参数,所述输入参数包括:查询条件构造器、数据获取接口调用子类、数据导出转换接口、导出文件类型、数据页查询数据数量以及导出文件名称;
5、基于所述输入参数调用所述数据导出处理接口,由所述数据导出处理接口根据所述查询条件构造器以及所述数据页查询数据数量调用所述数据获取接口调用子类,得到查询数据,以及,根据所述导出文件类型以及所述查询数据调用所述数据导出转换接口对所述查询数据进行转换,以及,根据所述导出文件名称将转换后数据导出。
6、作为一种可选的实现方式,所述数据导出转换接口中包括转换方法,所述转换方法所属的类为基础导出类的子类,所述基础导出类中包括属性标识,所述属性标识通过预设方式进行标注,且,所述转换方法的返回类型为泛型。
7、作为一种可选的实现方式,所述根据所述导出文件类型以及所述查询数据调用所述数据导出转换接口对所述查询数据进行转换,包括:
8、将所述导出文件类型以及所述查询数据输入所述数据导出转换接口,以运行所述转换方法,所述转换方法运行时,将所述查询数据转换为所述导出文件类型的数据。
9、作为一种可选的实现方式,所述查询数据包括:当前数据页的查询数据;
10、所述根据所述查询条件构造器以及所述数据页查询数据数量调用所述数据获取接口调用子类,得到查询数据之后,还包括:
11、将所述当前数据页的查询数据输入信息获取对象,由所述信息获取对象获取所述当前数据页的查询数据的数据和数据总量以及下一数据页的查询索引。
12、作为一种可选的实现方式,所述根据所述查询条件构造器以及所述数据页查询数据数量调用所述数据获取接口调用子类,得到查询数据,包括:
13、根据所述查询条件构造器、所述数据页查询数据数量以及所述下一数据页的查询索引调用所述数据获取接口调用子类,得到下一数据页的查询数据。
14、作为一种可选的实现方式,所述根据所述导出文件名称将转换后数据导出,包括:
15、根据所述转换后数据的数量、所述数据总量确定是否将所述转换后数据写入临时文件中;
16、若是,则根据所述临时文件中各写入单元的存储数量将所述转换后数据依次写入所述临时文件;
17、确定所述转换后数据是否写入完毕,若是,则将所述临时文件中已存储的数据导出至目标文件中,所述目标文件的名称为所述导出文件名称。
18、作为一种可选的实现方式,所述根据所述转换后数据的数量、所述数据总量确定是否将所述转换后数据写入临时文件中,包括:
19、若所述转换后数据的数量大于或等于预设阈值,则确定将所述转换后数据写入所述临时文件中;
20、或者,若所述转换后数据的数量等于所述数据总量,则确定将所述转换后数据写入所述临时文件中。
21、作为一种可选的实现方式,所述根据所述临时文件中各写入单元的存储数量将所述转换后数据依次写入所述临时文件之后,还包括:
22、运行清除方法,将所述转换后数据清除。
23、第二方面,本技术实施例提供一种数据批量导出装置,所述装置包括:
24、获取模块,用于获取数据导出处理接口的输入参数,所述输入参数包括:查询条件构造器、数据获取接口调用子类、数据导出转换接口、导出文件类型、数据页查询数据数量以及导出文件名称;
25、导出模块,用于基于所述输入参数调用所述数据导出处理接口,由所述数据导出处理接口根据所述查询条件构造器以及所述数据页查询数据数量调用所述数据获取接口调用子类,得到查询数据,以及,根据所述导出文件类型以及所述查询数据调用所述数据导出转换接口对所述查询数据进行转换,以及,根据所述导出文件名称将转换后数据导出。
26、作为一种可选的实现方式,所述数据导出转换接口中包括转换方法,所述转换方法所属的类为基础导出类的子类,所述基础导出类中包括属性标识,所述属性标识通过预设方式进行标注,且,所述转换方法的返回类型为泛型。
27、作为一种可选的实现方式,所述导出模块具体用于:
28、将所述导出文件类型以及所述查询数据输入所述数据导出转换接口,以运行所述转换方法,所述转换方法运行时,将所述查询数据转换为所述导出文件类型的数据。
29、作为一种可选的实现方式,所述查询数据包括:当前数据页的查询数据;所述导出模块还用于:
30、将所述当前数据页的查询数据输入信息获取对象,由所述信息获取对象获取所述当前数据页的查询数据的数据和数据总量以及下一数据页的查询索引。
31、作为一种可选的实现方式,所述导出模块具体用于:
32、根据所述查询条件构造器、所述数据页查询数据数量以及所述下一数据页的查询索引调用所述数据获取接口调用子类,得到下一数据页的查询数据。
33、作为一种可选的实现方式,所述导出模块具体用于:
34、根据所述转换后数据的数量、所述数据总量确定是否将所述转换后数据写入临时文件中;
35、若是,则根据所述临时文件中各写入单元的存储数量将所述转换后数据依次写入所述临时文件;
36、确定所述转换后数据是否写入完毕,若是,则将所述临时文件中已存储的数据导出至目标文件中,所述目标文件的名称为所述导出文件名称。
37、作为一种可选的实现方式,所述导出模块具体用于:
38、若所述转换后数据的数量大于或等于预设阈值,则确定将所述转换后数据写入所述临时文件中;
39、或者,若所述转换后数据的数量等于所述数据总量,则确定将所述转换后数据写入所述临时文件中。
40、作为一种可选的实现方式,所述导出模块还用于:
41、运行清除方法,将所述转换后数据清除。
42、第三方面,本技术实施例提供一种计算机设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当所述计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述处理器执行所述机器可读指令,执行如上述第一方面所述的数据批量导出方法的步骤。
43、第四方面,本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如上述第一方面所述的数据批量导出方法的步骤。
44、本技术的有益效果是:
45、本技术提供了一种数据批量导出方法、设备及介质,将查询条件构造器、数据获取接口调用子类、数据导出转换接口、导出文件类型、数据页查询数据数量以及导出文件名称作为输入参数,传入预先创建的数据导出处理接口。基于输入参数,调用封装的数据导出处理接口,数据导出处理接口将查询条件构造器以及数据页查询数据数量传入数据获取接口调用子类,调用数据获取接口调用之类获取查询数据。数据导出处理接口调用数据导出转换接口,将查询数据转换为预设的导出文件类型的数据,得到转换后数据。数据导出处理接口根据导出文件名称,批量导出转换后数据。通过预先创建的数据导出处理接口,实现数据的高效批量导出,提高了数据批量导出的可靠性。