一种不同数据源的数据导出方法及装置与流程

文档序号:26050391发布日期:2021-07-27 15:25阅读:72来源:国知局
一种不同数据源的数据导出方法及装置与流程
本发明涉及计算机
技术领域
,具体涉及一种不同数据源的数据导出方法及装置。
背景技术
:对于银行业来说,报表相关的业务处理非常频繁,不同的业务有不同的导出需求,导致对不同的业务需要编写不同的实现导出功能的代码,代码的可拓展性和可维护性差。为了提高代码的复用和可拓展性,现有技术中出现了商业智能分析(businessintelligence,简称bi)工具,能够实现不同业务的报表导出。但是,bi工具仅支持同源数据库的报表导出,对于数据来源渠道复杂的应用,例如:数据来源于不同类型的数据库,分布式文件系统以及文档,不能实现数据的导出;对于计算密集型(导出的结果需要较大运算量才能得出)的应用来说,也不能很好的支持。因此,如何提出一种多数据源的数据导出方法,能够实现不同的数据源的数据导出,提高数据导出效率成为本领域需要解决的重要课题。技术实现要素:针对现有技术中的问题,本发明实施例提供一种不同数据源的数据导出方法及装置,能够至少部分地解决现有技术中存在的问题。一方面,本发明提出一种不同数据源的数据导出方法,包括:接收数据导出请求,所述数据导出请求包括业务逻辑标识和业务模版标识;根据所述业务逻辑标识查询对应的业务脚本,并基于所述业务脚本获得数据结果集与对应的信息集;其中,所述业务脚本是预设的,所述数据结果集来源于不同的数据源;根据所述业务模版标识查询获得对应的业务模版,并基于所述业务模版和快照生成规则,在内存中生成模版快照;其中,所述业务模版和所述快照生成规则是预设的;基于所述数据结果集对应的信息集从所述数据结果集中读取数据到模版快照中,并将读取到模版快照中的数据写入到导出文件中。另一方面,本发明提供一种不同数据源的数据导出装置,包括:接收模块,用于接收数据导出请求,所述数据导出请求包括业务逻辑标识和业务模版标识;获得模块,用于根据所述业务逻辑标识查询对应的业务脚本,并基于所述业务脚本获得数据结果集与对应的信息集;其中,所述业务脚本是预设的,所述数据结果集来源于不同的数据源;生成模块,用于根据所述业务模版标识查询获得对应的业务模版,并基于所述业务模版和快照生成规则,在内存中生成模版快照;其中,所述业务模版和所述快照生成规则是预设的;导出模块,用于基于所述数据结果集对应的信息集从所述数据结果集中读取数据到模版快照中,并将读取到模版快照中的数据写入到导出文件中。再一方面,本发明提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一实施例所述不同数据源的数据导出方法的步骤。又一方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任一实施例所述不同数据源的数据导出方法的步骤。本发明实施例提供的不同数据源的数据导出方法及装置,能够接收数据导出请求,数据导出请求包括业务逻辑标识和业务模版标识,根据业务逻辑标识查询对应的业务脚本,并基于业务脚本获得数据结果集与对应的信息集,根据业务模版标识查询获得对应的业务模版,并基于业务模版和快照生成规则,在内存中生成模版快照,基于数据结果集对应的信息集从数据结果集中读取数据到模版快照中,并将读取到模版快照中的数据写入到导出文件中,实现不同数据源的数据的导出,提高了数据的导出效率。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:图1是本发明第一实施例提供的不同数据源的数据导出方法的流程示意图。图2是本发明第二实施例提供的不同数据源的数据导出方法的流程示意图。图3是本发明第三实施例提供的不同数据源的数据导出方法的流程示意图。图4是本发明第四实施例提供的不同数据源的数据导出系统的结构示意图。图5是本发明第五实施例提供的不同数据源的数据导出方法的流程示意图。图6是本发明第六实施例提供的导出数据的流程示意图。图7是本发明第七实施例提供的不同数据源的数据导出装置的结构示意图。图8是本发明第八实施例提供的不同数据源的数据导出装置的结构示意图。图9是本发明第九实施例提供的不同数据源的数据导出装置的结构示意图。图10是本发明第十实施例提供的电子设备的实体结构示意图。具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。下面以服务器作为执行主体为例,来说明本发明实施例提供的不同数据源的数据导出方法的实现过程。可理解的是,本发明实施例提供的不同数据源的数据导出方法的执行主体包括但不限于服务器。图1是本发明第一实施例提供的不同数据源的数据导出方法的流程示意图,如图1所示,本发明实施例提供的不同数据源的数据导出方法,包括:s101、接收数据导出请求,所述数据导出请求包括业务逻辑标识和业务模版标识;具体地,客户端可以向服务器发送数据导出请求,所述服务器会接收所述数据导出请求。其中,所述数据导出请求包括业务逻辑标识、业务模版标识和业务参数等信息,根据实际需要进行设置,本发明实施例不做限定。所述业务逻辑标识与业务脚本一一对应;所述业务模版标识与业务模版一一对应。所述客户端包括但不限于台式机、笔记本电脑等设备。s102、根据所述业务逻辑标识查询对应的业务脚本,并基于所述业务脚本获得数据结果集与对应的信息集;其中,所述业务脚本是预设的,所述数据结果集来源于不同的数据源;具体地,所述服务器在接收到所述数据导出请求之后,可以根据所述业务逻辑标识查询对应的业务脚本,然后基于所述业务脚本获得数据结果集与对应的信息集。所述服务器可以在本地执行所述业务脚本,从不同的数据源获得业务数据进行整合,获得所述数据结果集与对应的信息集。所述服务器还可以将所述业务脚本发送给数据处理服务器,由数据处理服务器执行所述业务脚本,从不同的数据源获得业务数据进行整合,获得所述数据结果集与对应的信息集,然后将所述数据结果集与对应的信息集返回给所述服务器。其中,所述业务脚本是预设的,根据实际业务需求进行设置,本发明实施例不做限定。所述数据结果集来源于不同的数据源。s103、根据所述业务模版标识查询获得对应的业务模版,并基于所述业务模版和快照生成规则,在内存中生成模版快照;其中,所述业务模版和所述快照生成规则是预设的;具体地,所述服务器可以根据所述业务模版标识查询获得对应的业务模版,然后对所述业务模版进行解析,获得业务模版相关信息,然后基于业务模版相关信息和快照生成规则,在内存中生成模版快照。可理解的是步骤s102和步骤s103没有先后顺序关系,本发明实施例提供的对步骤s102和步骤s103的先后顺序不进行限定。其中,所述业务模版是预设的,可以包括所述业务模版关联的数据源以及每列数据的列名称、业务模版的存储地址、用于模板防篡改的模板文件md5码、模板数据的扩展方式、单元格类型、数据拓展单元格的拓展方向和数据类型等信息。单元格类型包括但不限于普通单元格、变量单元格和数据拓展单元格等,根据实际需要进行设置。模版数据的扩展方式包括但不限于锁定扩展或者独立扩展,锁定扩展是指单元格的扩展会锁定整行的单元格向拓展方向平移;独立扩展是指单元格的扩展仅扩展当前单元格,不影响其他行列的单元格。拓展方向可以包括向下拓展和向右拓展,根据实际需要进行设置,本发明实施例不做限定。数据类型可以包括字符型、数字型、空格等,根据实际需要进行设置,本发明实施例不做限定。所述快照生成规则是预设的,可以包括普通单元格的数据获取方式、变量单元格的数据获取方式、数据拓展单元格的数据获取方式。普通单元格的数据直接从所述业务模版中获取,可以包括常量、数字文字或者公式;变量单元格的数据通过变量查询获取,变量可以在业务模版中定义,也可以从数据导出请求中获取业务参数作为变量。数据拓展单元格的数据获取方式可以配置为:[扩展方式|拓展方向|数据类型]=数据源名称.列名1.列名2……列名n,拓展方式、拓展方向、数据类型、数据源名称以及各个列名称可以通过解析所述数据模版获得,在所述数据模版中预先设置了拓展方式、拓展方向、数据类型和列名称。列名称与数据结果对应的信息集包括的数据文件的每列数据的字段名称对应。s104、基于所述数据结果集对应的信息集从所述数据结果集中读取数据到模版快照中,并将读取到模版快照中的数据写入到导出文件中。具体地,所述服务器基于所述数据结果集对应的信息集,将所述数据结果集中的数据读取到模版快照中,再将读取到模版快照中的数据写入到导出文件中。在将所述数据结果集中的数据读取到所述模版快照中时,可以每次读取部分数据,以减少内存占用,避免内存溢出。本发明实施例提供的不同数据源的数据导出方法,能够接收数据导出请求,数据导出请求包括业务逻辑标识和业务模版标识,根据业务逻辑标识查询对应的业务脚本,并基于业务脚本获得数据结果集与对应的信息集,根据业务模版标识查询获得对应的业务模版,并基于业务模版和快照生成规则,在内存中生成模版快照,基于数据结果集对应的信息集从数据结果集中读取数据到模版快照中,并将读取到模版快照中的数据写入到导出文件中,实现不同数据源的数据的导出,提高了数据的导出效率。在上述各实施例的基础上,进一步地,所述根据所述业务逻辑标识查询对应的业务脚本,并基于所述业务脚本获得数据结果集与对应的信息集包括:执行所述业务脚本从n个数据源获取业务数据并进行整合,获得所述数据结果集与对应的信息集;其中,n为大于等于2的正整数。具体地,所述服务器可以执行所述业务脚本从n个数据源中获取业务数据并进行整合,获得所述数据结果集与对应的信息集。其中,n为大于等于2的正整数。例如,业务脚本中设定了获取业务数据的n个数据源,获取业务数据所需的业务字段,对业务数据进行整合所采用的业务逻辑。在执行业务脚本的时候,可以通过n个数据源的访问接口或者访问地址访问每个数据源,根据业务字段从各个数据源获取对应的业务数据,然后根据业务逻辑对业务数据进行整合,获得数据结果集和对应的信息集。所述数据结果集包括至少一个数据文件,所述数据文件中的数据以行和列的形式存储,每列数据之间通过分隔符隔开;数据结果集对应的信息集,可以包括数据文件的描述信息,上述描述信息可以包括数据文件对应的数据源名称,数据文件的各列数据的字段名称,数据文件的大小,数据文件的存储地址。其中,数据源可以是mysql、qracle等不同的数据库,分布式文件系统以及文档。下面通过头寸汇总业务查询的业务脚本的执行过程为例,说明数据结果集与对应的信息集的获得过程。第一步,对业务参数进行校验;其中,所述业务参数包括树标识、节点标识和交易台标识;第二步,加载qracle和mysql数据源对象;第三步,根据数标识和交易台标识查询mysql数据库获取节点层级;第四步,根据节点标识查询mysql数据表获取投资组合树节点数据;其中,投资组合树节点数据包括节点名称字典和节点标识;第五步,根据节点名称字典从qracle数据库获取节点名称字典值;第六步,根据第四步获得的节点标识查询mysql数据表获取对应的节点下挂的所有产品信息;第七步,查询oracle字典项表获取账户类型字典项映射;第八步,查询oracle字典项表获取差评类型字典项;第九步,将第三步至第七步获取的数据作为业务数据按照头寸汇总的业务逻辑规则进行数据汇总,生成数据文件以及数据文件的描述信息。其中,头寸汇总的业务逻辑规则根据实际需要进行设置,本发明实施例不做限定;数据文件可以是csv文件。图2是本发明第二实施例提供的不同数据源的数据导出方法的流程示意图,如图2所示,在上述各实施例的基础上,进一步地,所述执行所述业务脚本从n个数据源获取业务数据并进行整合,获得数据结果集与对应的信息集包括:s201、根据配置文件标识从对应的配置文件中获取n个数据源;其中,所述业务脚本中设置所述配置文件标识;具体地,所述服务器在执行所述业务脚本时,可从业务脚本中获得配置文件标识,根据所述配置文件标识获得对应的配置文件,然后从所述配置文件中获取n个数据源。其中,所述配置文件是预设的,存储有n个数据源。s202、根据各个业务字段通过n个数据源获取对应的业务数据;其中,所述业务脚本中设置各个业务字段;具体地,所述服务器从所述业务脚本中获得需要导出数据的业务字段,然后根据各个业务字段从n个数据源中查询对应的业务数据。其中,所述业务脚本中设置了各个业务字段。s203、根据业务逻辑规则对各个业务字段对应的业务数据进行整合处理,生成至少一个数据文件以及每个数据文件的描述信息;其中,所述业务脚本设置所述业务逻辑规则。具体地,所述服务器在获得各个业务字段对应的业务数据之后,可以根据业务逻辑规则对各个业务字段对应的业务数据进行整合处理,生成至少一个数据文件,并为每个数据文件生成描述信息,所述至少一个数据文件构成所述数据结果集,每个数据文件的描述信息构成所述数据结果集对应的信息集。其中,所述业务脚本设置所述业务逻辑规则,所述业务逻辑规则根据实际需要进行设置,本发明实施例不做限定。图3是本发明第三实施例提供的不同数据源的数据导出方法的流程示意图,如图3所示,在上述各实施例的基础上,进一步地,所述数据文件的描述信息包括所述数据文件中每列数据的字段名称;相应地,所述基于所述数据结果集对应的信息集从所述数据结果集中读取数据到模版快照中包括:s301、根据所述数据文件中每列数据的字段名称和所述模版快照在内存中横向扩展数据拓展单元格;具体地,所述模版快照包括数据拓展单元格,为了节省内存,在生成所述模版快照的时候数据拓展单元格只保留起始位置,在读取数据的时候再从起始位置开始进行单元格的扩展。所述服务器可以根据所述数据文件中每列数据的字段名称,从起始位置开始横向扩展所述数据拓展单元格,使每个字段名称对应一个单元格。s302、从所述数据文件逐行读取数据到所述数据拓展单元格中,并向下扩展所述数据拓展单元格直到完成所述数据文件的读取。具体地,所述服务器在完成数据拓展单元格的横向拓展之后,可以从所述数据文件中逐行读取数据到所述数据拓展单元格中,使每个单元格中存放一个数据,然后再向下扩展一行,继续读取所述数据文件中的下一行数据,然后继续向下扩展一行,以此类推,直到所述数据文件中的所有数据被读取完成。例如,某个数据文件包括如下内容:1,2,3,412,22,32,4213,23,33,4314,24,34,44该数据文件的描述信息包括第一列数据的字段名称:xx1,第二列数据的字段名称:xx2,第三列数据的字段名称:xx3,第四列数据的字段名称:xx4。服务器读取数据文件的上述描述信息,从模版快照的数据拓展单元格的起始位置开始横向扩展单元格,将上述各列数据的字段名称拷贝到对应的单元格中,然后向下扩展一行单元格,使每个数据字段对应一个空的单元格。服务器从上述数据文件中读取第一行数据,复制到对应的单元格中,然后在向下扩展一行单元格,以此类推,直到上述数据文件的4行数据都读取到模版快照中。读取上述数据文件到模版快照之后获得的结果如表1所示。表1读取数据文件后的模版快照xx1xx2xx3xx41234122232421323333414243444在上述各实施例的基础上,进一步地,所述根据所述业务逻辑标识查询对应的业务脚本,并基于所述业务脚本获得数据结果集与对应的信息集包括:发送数据获取请求给数据处理服务器,并接收所述数据处理服务器返回的数据结果集与对应的信息集;其中,所述数据结果集与对应的信息集是所述数据处理服务器执行所述业务脚本从n个数据源获取业务数据并进行整合获得的;所述数据获取请求包括所述业务脚本。具体地,所述服务器可以发送数据获取请求给数据处理服务器,所述数据获取请求包括所述业务脚本。所述数据处理服务器可以从所述数据获取请求中获取所述业务脚本,然后执行所述业务脚本,从n个数据源中获取业务数据并进行整合,获得所述数据结果集与对应的信息集,然后将所述数据结果集与对应的信息集返回给所述服务器。其中,所述数据处理服务器执行所述业务脚本获得所述数据结果集与对应的信息集的具体过程与所述服务器执行所述业务脚本从n个数据源获取业务数据并进行整合,获得所述数据结果集与对应的信息集的具体过程类似,此处不进行赘述。在上述各实施例的基础上,进一步地,所述将读取到模版快照中的数据写入到导出文件中包括:调用excel文件的导出接口将所述模版快照中的数据写入到导出文件中。具体地,所述导出文件可以是excel文件,所述服务器在将调用excel文件的导出接口将所述模版快照中的数据写入到导出文件中。其中,所述数据导出请求可以包括文件名,可以以所述数据导出请求包括的文件名命名所述导出文件。在上述各实施例的基础上,进一步地,所述业务脚本是采用groovy语言编写的。具体地,groovy语言具有可拓展性和热部署能力,可以采用groovy语言编写所述业务脚本。图4是本发明第四实施例提供的不同数据源的数据导出系统的结构示意图,如图4所示,本发明实施例提供的不同数据源的数据导出系统包括交互模块401、调度模块402、数据逻辑信息维护模块403、模板信息维护模块404,数据计算模块405,模版快照处理模块406和数据导出模块407,其中:交互模块401用于接收客户端发送的数据导出请求,数据导出请求可以包括业务逻辑标识、业务模版标识、文件名和业务参数。其中,业务参数根据实际需要进行设置,本发明实施例不做限定。调度模块402用于生成数据导出任务,并将数据导出任务的任务状态登记为运行中。数据逻辑信息维护模块403用于进行业务脚本的维护,相关人员可以通过数据逻辑信息维护模块403生成新的业务脚本、修改业务脚本和删除业务脚本。数据逻辑信息维护模块403可以根据业务逻辑标识查询对应的业务脚本。其中,业务脚本可以通过groovy语言编写。模板信息维护模块404用于维护业务模版的相关信息。业务模版可以包括业务模版所关联的数据源名称,业务模版的存储地址,用于模板防篡改的业务模板文件的md5码、模板数据的扩展方式、单元格类型、数据拓展单元格的拓展方向和数据类型等信息。模板信息维护模块404根据业务模版标识可以查询获得对应的业务模版。数据计算模块405用于执行业务脚本。在执行业务脚本之前,可以数据计算模块405可以加载上下文环境,上下文环境包括数据库连接环境、分布式文件系统环境以及程序所需要的库环境,诸如应用本身的通用api,json处理相关,文件处理相关,数据库处理相关的库环境。数据计算模块405执行业务脚本从n个数据源获取业务数据并进行整合,获得数据结果集与对应的信息集。数据结果集包括至少一个数据文件,数据文件包括需要导出的数据,上述数据在数据文件中可以以行列的形式存储,同一行数据中,相邻的数据以字符分割。数据结果集对应的信息集包括数据文件的描述信息,描述信息可以包括数据文件的数据源名称,数据文件的每列数据的字段名称,数据文件的大小,数据文件的存储地址等信息。模版快照处理模块406用于基于所述业务模版和快照生成规则,在内存中生成模版快照。模版快照可以包括普通单元格、变量单元格和数据拓展单元格。普通单元格的数据直接从所述业务模版中获取,可以包括常量、数字文字或者公式;变量单元格的数据通过变量查询获取,变量可以在业务模版中定义,也可以从数据导出请求中获得。数据拓展单元格的数据获取方式可以配置为:[扩展方式|拓展方向|数据类型]=数据源名称.列名1.列名2……列名n,拓展方式、拓展方向、数据类型、数据源名称以及各个列名称可以通过解析所述数据模版获得。所述业务模版可以是excel模版文件。模版快照处理模块406对所述业务模版进行解析,对所述业务模版中已配置的单元格在内存中生成模版快照,指定不同类型单元格的类型的同时根据原始位置和数据量大小,扩展方向重新定位模版快照的单元格位置。其中,对于普通单元格和变量单元格,其在快照中记录位置为填充拓展单元格后的预测位置;对于数据扩展单元格,其位置为经过样式计算后的数据扩展起始位置。内存中仅保存了模版快照,并且在已知数据源数据量情况下,很容易预测最终单元格所处位置,由此减少了内存的占用,起到了将导出时的格式运算压力提前释放的作用。数据导出模块407用于基于所述数据结果集对应的信息集从所述数据结果集中读取数据到模版快照中,并将读取到模版快照中的数据写入到导出文件中。如果业务模版是excel模版文件,那么导出文件为excel文件。图5是本发明第五实施例提供的不同数据源的数据导出方法的流程示意图,如图5所示,应用于图4所示的不同数据源的数据导出系统的的不同数据源的数据导出方法具体流程如下:第一步、接收数据导出请求。交互模块401接收客户端发送的数据导出请求,数据导出请求可以包括业务逻辑标识、业务模版标识、文件名和业务参数。第二步、生成数据导出任务。调度模块402生成数据导出任务,并将数据导出任务的任务状态登记为运行中。第三步、发送第一查询请求。调度模块402向数据逻辑信息维护模块403发送第一查询请求,第一查询请求包括业务逻辑标识。第四步、返回业务脚本。数据逻辑信息维护模块403根据业务逻辑标识查询对应的业务脚本,将业务脚本返回给调度模块402。第五步、发送数据获取请求。调度模块402向数据计算模块405发送数据获取请求,数据获取请求包括业务脚本。第六步、执行业务脚本。数据计算模块405执行业务脚本从n个数据源获取业务数据并进行整合,获得数据结果集与对应的信息集。第七步、返回结果信息。数据计算模块405将数据结果集与对应的信息集返回给调度模块402。第八步、发送第二查询请求。调度模块402向模版快照处理模块406发送第二查询请求,第二查询请求包括业务模版标识。第九步、生成模版快照。模版快照处理模块406用于基于所述业务模版和快照生成规则,在内存中生成模版快照。第十步、返回模版快照。模版快照处理模块406将模版快照返回给调度模块402。第十一步、导出数据。调度模块402将文件名、业务参数、模版快照和数据结果集与对应的信息集发送给数据导出模块407,数据导出模块407基于所述数据结果集对应的信息集从所述数据结果集中读取数据到模版快照中,并根据业务参数获取数据写入到模版快照中,然后将读取到模版快照中的数据写入到导出文件中,上述文件名作为导出文件的文件名。图6是本发明第六实施例提供的导出数据的流程示意图,如图6所示,数据导出模块407导出数据的具体流程如下:第一步、获取数据文件。数据导出模块407从数据结果集对应的信息集中获取数据文件的存储地址,并根据数据文件的存储地址获取数据文件。第二步、写入变量单元格数据。数据导出模块407根据业务参数获取对应的数据写入到模版快照的变量单元格中。其中,业务参数根据实际需要进行设置,本发明实施例不做限定。第三步、写入一行数据拓展单元格的数据。数据导出模块407从数据文件中读取一行数据,写入到模版快照的数据拓展单元格中。第四步、增加一行数据拓展单元格。数据导出模块407在模版快照中增加一行数据拓展单元格。第五步、判断是否读取完数据文件。数据导出模块407从数据文件中读取下一行数据,如果能够读取到下一行数据,那么回到第三步;如果没有读取到下一行数据,那么进入到第六步。第六步、将数据写入导出文件。数据导出模块407将模版快照中的数据写入到导出文件中。上述过程完成了单个数据文件的数据导出,如果有多个数据文件,重复上述过程。本发明实施例提供的不同数据源的数据导出方法,有效的解决了分析型系统中遇到的导出灵活配置问题,解决了现有系统中存在的无法支持多种类型平台数据源介质,难以实现复杂逻辑导出,导出时资源占用较高的问题,有效的提高了应用开发的敏捷迭代能力,减少了开发工作量,有效适应了日益增长的业务需求和复杂度。图7是本发明第七实施例提供的不同数据源的数据导出装置的结构示意图,如图7所示,本发明实施例提供的不同数据源的数据导出装置包括接收模块701、获得模块702、生成模块703和导出模块704,其中:接收模块701用于接收数据导出请求,所述数据导出请求包括业务逻辑标识和业务模版标识;获得模块702用于根据所述业务逻辑标识查询对应的业务脚本,并基于所述业务脚本获得数据结果集与对应的信息集;其中,所述业务脚本是预设的,所述数据结果集来源于不同的数据源;生成模块703用于根据所述业务模版标识查询获得对应的业务模版,并基于所述业务模版和快照生成规则,在内存中生成模版快照;其中,所述业务模版和所述快照生成规则是预设的;导出模块704用于基于所述数据结果集对应的信息集从所述数据结果集中读取数据到模版快照中,并将读取到模版快照中的数据写入到导出文件中。具体地,客户端可以向接收模块701发送数据导出请求,接收模块701会接收所述数据导出请求。其中,所述数据导出请求包括业务逻辑标识、业务模版标识和业务参数等信息,根据实际需要进行设置,本发明实施例不做限定。所述业务逻辑标识与业务脚本一一对应;所述业务模版标识与业务模版一一对应。所述客户端包括但不限于台式机、笔记本电脑等设备。在接收到所述数据导出请求之后,获得模块702可以根据所述业务逻辑标识查询对应的业务脚本,然后基于所述业务脚本获得数据结果集与对应的信息集。获得模块702可以在本地执行所述业务脚本,从不同的数据源获得业务数据进行整合,获得所述数据结果集与对应的信息集。获得模块702还可以将所述业务脚本发送给数据处理服务器,由数据处理服务器执行所述业务脚本,从不同的数据源获得业务数据进行整合,获得所述数据结果集与对应的信息集,然后将所述数据结果集与对应的信息集返回给获得模块702。其中,所述业务脚本是预设的,根据实际业务需求进行设置,本发明实施例不做限定。所述数据结果集来源于不同的数据源。生成模块703可以根据所述业务模版标识查询获得对应的业务模版,然后对所述业务模版进行解析,获得业务模版相关信息,然后基于业务模版相关信息和快照生成规则,在内存中生成模版快照。导出模块704基于所述数据结果集对应的信息集,将所述数据结果集中的数据读取到模版快照中,再将读取到模版快照中的数据写入到导出文件中。在将所述数据结果集中的数据读取到所述模版快照中时,可以每次读取部分数据,以减少内存占用,避免内存溢出。本发明实施例提供的不同数据源的数据导出装置,能够接收数据导出请求,数据导出请求包括业务逻辑标识和业务模版标识,根据业务逻辑标识查询对应的业务脚本,并基于业务脚本获得数据结果集与对应的信息集,根据业务模版标识查询获得对应的业务模版,并基于业务模版和快照生成规则,在内存中生成模版快照,基于数据结果集对应的信息集从数据结果集中读取数据到模版快照中,并将读取到模版快照中的数据写入到导出文件中,实现不同数据源的数据的导出,提高了数据的导出效率。在上述各实施例的基础上,进一步地,获得模块702具体用于:执行所述业务脚本从n个数据源获取业务数据并进行整合,获得所述数据结果集与对应的信息集;其中,n为大于等于2的正整数。图8是本发明第八实施例提供的不同数据源的数据导出装置的结构示意图,如图8所示,在上述各实施例的基础上,进一步地,获得模块702包括第一获取单元7021、第二获取单元7022和生成单元7023,其中:第一获取单元7021用于根据配置文件标识从对应的配置文件中获取n个数据源;其中,所述业务脚本中设置所述配置文件标识;第二获取单元7022用于根据各个业务字段通过n个数据源获取对应的业务数据;其中,所述业务脚本中设置所述业务字段;生成单元7023用于根据业务逻辑规则对各个业务字段对应的业务数据进行整合处理,生成至少一个数据文件以及每个数据文件的描述信息;其中,所述业务脚本设置所述业务逻辑规则。图9是本发明第九实施例提供的不同数据源的数据导出装置的结构示意图,如图9所示,在上述各实施例的基础上,进一步地,所述数据文件的描述信息包括所述数据文件中每列数据的字段名称;相应地,导出模块704包括第一扩展单元7041和读取单元7042,其中:第一扩展单元7041用于根据所述数据文件中每列数据的字段名称和所述模版快照在内存中横向扩展数据拓展单元格;读取单元7042用于从所述数据文件逐行读取数据到所述数据拓展单元格中,并向下扩展所述数据拓展单元格直到完成所述数据文件的读取。在上述各实施例的基础上,进一步地,获得模块702具体用于:发送数据获取请求给数据处理服务器,并接收所述数据处理服务器返回的数据结果集与对应的信息集;其中,所述数据结果集与对应的信息集是所述数据处理服务器执行所述业务脚本从n个数据源获取业务数据并进行整合获得的;所述数据获取请求包括所述业务脚本。在上述各实施例的基础上,进一步地,导出模块704具体用于:调用excel文件的导出接口将所述模版快照中的数据写入到导出文件中。在上述各实施例的基础上,进一步地,所述业务脚本是采用groovy语言编写的。本发明实施例提供的装置的实施例具体可以用于执行上述各方法实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。需要说明的是,本发明实施例提供的不同数据源的数据导出方法及装置可用于金融领域,也可用于除金融领域之外的任意
技术领域
,本发明实施例对不同数据源的数据导出方法及装置的应用领域不做限定。图10是本发明一实施例提供的电子设备的实体结构示意图,如图10所示,该电子设备可以包括:处理器(processor)1001、通信接口(communicationsinterface)1002、存储器(memory)1003和通信总线1004,其中,处理器1001,通信接口1002,存储器1003通过通信总线1004完成相互间的通信。处理器1001可以调用存储器1003中的逻辑指令,以执行如下方法:接收数据导出请求,所述数据导出请求包括业务逻辑标识和业务模版标识;根据所述业务逻辑标识查询对应的业务脚本,并基于所述业务脚本获得数据结果集与对应的信息集;其中,所述业务脚本是预设的,所述数据结果集来源于不同的数据源;根据所述业务模版标识查询获得对应的业务模版,并基于所述业务模版和快照生成规则,在内存中生成模版快照;其中,所述业务模版和所述快照生成规则是预设的;基于所述数据结果集对应的信息集从所述数据结果集中读取数据到模版快照中,并将读取到模版快照中的数据写入到导出文件中。此外,上述的存储器1003中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:接收数据导出请求,所述数据导出请求包括业务逻辑标识和业务模版标识;根据所述业务逻辑标识查询对应的业务脚本,并基于所述业务脚本获得数据结果集与对应的信息集;其中,所述业务脚本是预设的,所述数据结果集来源于不同的数据源;根据所述业务模版标识查询获得对应的业务模版,并基于所述业务模版和快照生成规则,在内存中生成模版快照;其中,所述业务模版和所述快照生成规则是预设的;基于所述数据结果集对应的信息集从所述数据结果集中读取数据到模版快照中,并将读取到模版快照中的数据写入到导出文件中。本实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储计算机程序,所述计算机程序使所述计算机执行上述各方法实施例所提供的方法,例如包括:接收数据导出请求,所述数据导出请求包括业务逻辑标识和业务模版标识;根据所述业务逻辑标识查询对应的业务脚本,并基于所述业务脚本获得数据结果集与对应的信息集;其中,所述业务脚本是预设的,所述数据结果集来源于不同的数据源;根据所述业务模版标识查询获得对应的业务模版,并基于所述业务模版和快照生成规则,在内存中生成模版快照;其中,所述业务模版和所述快照生成规则是预设的;基于所述数据结果集对应的信息集从所述数据结果集中读取数据到模版快照中,并将读取到模版快照中的数据写入到导出文件中。本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。在本说明书的描述中,参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1