本发明涉及计算机
技术领域:
,特别是涉及一种基于excel配置的数据采集方法、装置、计算机设备及存储介质。
背景技术:
:目前,随着计算机技术的发展,计算机技术的应用场景越来越广泛,例如越来越多的计算机技术应用到了金融行业中,因为金融行业中涉及大量的数据处理,采用计算机技术可以提高数据处理的效率。在传统技术中,面向券商的金融类装置通常会依赖于券商的基础金融数据,而目前市面上有万德、聚源、东财等不同的数据提供商,券商选择的数据提供商各有不同。不同的数据提供商,存储同一种数据的格式、表字段名等差异很大。在传统技术中,已有很多数据采集或etl程序,然而对多数据源的场景,主要缺点体现在:首先,由于大多是基于xml或json的采集配置,不便于多数据源之间的横向对比和查错。其次,由于采集过程中都是单字段采集,因此,不能在配置里直接做加减乘除运算导致后续的数据处理效率降低。技术实现要素:基于此,有必要针对上述技术问题,提供一种可以对接不同的数据提供商并实现高效的数据采集以及处理方法、装置、计算机设备和存储介质。一种基于excel配置的数据采集方法,所述方法包括:获取excel中的配置文件,所述配置文件包括:本地字段名称、本地存储类型以及lambda表达式;根据所述本地字段名称和本地存储类型配置生成本地表对应的实体类;根据所述本地字段名称和lambda表达式配置生成本地字段到lambda表达式的映射关系;根据所述lambda表达式配置生成数据源查询语句;根据所述数据源查询语句查询到原始数据初始化实体;将已初始化的实体存储到数据库中。在其中一个实施例中,所述lambda表达式包括:单字段表达式;常量表达式;字段和字段、字段和常量的四则运算表达式;函数表达式。在其中一个实施例中,所述根据所述lambda表达式配置生成数据源查询语句的步骤包括:根据所述lambda表达式配置生成sql语句;根据所述sql语句从mongodb查询数据的sql解析。在其中一个实施例中,所述配置文件还包括:字典配置;在所述根据所述数据源查询语句查询到原始数据初始化实体的步骤之后还包括:根据所述字典配置对已初始化的实体进行字典类型转换。在其中一个实施例中,所述字典配置包括:值到值映射关系,所述值到值映射关系记为valuemap;数据源到valuemap的映射关系,所述数据源到valuemap的映射关系记为sourcemap;字典类型到sourcemap的映射关系,所述字典类型到sourcemap的映射关系记为dictmap。在其中一个实施例中,所述根据所述字典配置对已初始化的实体进行字典类型转换的步骤包括:根据所述字典配置中的映射关系,将不同的字典定义统一为标准的字典定义。一种基于excel配置的数据采集装置,所述装置包括:获取模块,所述获取模块用于获取excel中的配置文件,所述配置文件包括:本地字段名称、本地存储类型以及lambda表达式;第一生成模块,所述第一生成模块用于根据所述本地字段名称和本地存储类型配置生成本地表对应的实体类;第二生成模块,所述第二生成模块用于根据所述本地字段名称和lambda表达式配置生成本地字段到lambda表达式的映射关系;第三生成模块,所述第三生成模块用于根据所述lambda表达式配置生成数据源查询语句;初始化模块,所述查询模块用于根据所述数据源查询语句查询到原始数据初始化实体;存储模块,所述存储模块用于将已初始化的实体存储到数据库中。在其中一个实施例中,所述配置文件还包括:字典配置;所述装置还包括:转换模块,所述转换模块用于根据所述字典配置对已初始化的实体进行字典类型转换。一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意一项方法的步骤。一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项方法的步骤。上述基于excel配置的数据采集方法、装置、计算机设备和存储介质,通过获取excel中的配置文件,所述配置文件包括:本地字段名称、本地存储类型以及lambda表达式;根据所述本地字段名称和本地存储类型配置生成本地表对应的实体类;根据所述本地字段名称和lambda表达式配置生成本地字段到lambda表达式的映射关系;根据所述lambda表达式配置生成数据源查询语句;根据所述数据源查询语句查询到原始数据初始化实体;将已初始化的实体存储到数据库中。本发明通过直接做字段四则运算的lambda表达式解析,实现了对excel中数据采集与清洗功能,提高了数据采集效率,降低了人力成本,同时也便于进行数据的横向对比。附图说明图1为一个实施例中基于excel配置的数据采集方法的流程示意图;图2为一个实施例中根据lambda表达式配置生成数据源查询语句的步骤的流程示意图;图3为另一个实施例中基于excel配置的数据采集方法的流程示意图;图4为一个实施例中基于excel配置的数据采集装置的结构框图;图5为另一个实施例中基于excel配置的数据采集装置的结构框图;图6为一个实施例中计算机设备的内部结构图。具体实施方式为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本申请的范围的情况下,可以将第一生成模块称为第二生成模块,且类似地,可将第二生成模块称为第一生成模块。第一生成模块和第二生成模块两者都是生成模块,但其不是同一生成模块。在一个实施例中,如图1所示,提供了一种基于excel配置的数据采集方法,该方法包括:步骤102,获取excel中的配置文件,配置文件包括:本地字段名称、本地存储类型以及lambda表达式;步骤104,根据本地字段名称和本地存储类型配置生成本地表对应的实体类;步骤106,根据本地字段名称和lambda表达式配置生成本地字段到lambda表达式的映射关系;步骤108,根据lambda表达式配置生成数据源查询语句;步骤110,根据数据源查询语句查询到原始数据初始化实体;步骤112,将已初始化的实体存储到数据库中。具体地,excel中配置有本地字段名称、本地存储类型以及对应的lambda表达式;lambda表达式可以是一个常量、数据源的单个字段名、数据源多个字段做四则运算,也可以是一个函数调用。首先,由本地字段名称和本地存储类型配置,生成本地表对应的实体类(entity类)。接着,由本地字段名称和lambda表达式配置,生成本地字段到lambda表达式的映射关系。然后,由lambda表达式配置,生成从数据源查询数据的sql语句;以查询到的原始数据(rawdata),初始化实体(entity)。可以理解的是,可以由字典配置,对已初始化的实体做字典类型转换,并存库。该方法可以通过计算机程序执行,包括4个配置:采集配置(excel)、索引配置(excel)、字典配置(excel)和执行任务配置(xml)。在本实施例中,通过获取excel中的配置文件,配置文件包括:本地字段名称、本地存储类型以及lambda表达式;根据本地字段名称和本地存储类型配置生成本地表对应的实体类;根据本地字段名称和lambda表达式配置生成本地字段到lambda表达式的映射关系;根据lambda表达式配置生成数据源查询语句;根据数据源查询语句查询到原始数据初始化实体;将已初始化的实体存储到数据库中。本实施例通过直接做字段四则运算的lambda表达式解析,实现了对excel中数据采集与清洗功能,提高了数据采集效率,降低了人力成本,同时也便于进行数据的横向对比。在一个实施例中,lambda表达式包括:单字段表达式;常量表达式;字段和字段、字段和常量的四则运算表达式;函数表达式。具体地,将采集字段抽象为lambda表达式,使得加减乘除运算可以直接配置,不需要写程序。表达式(expression)共有4种形式,以大写字母表示字段,小写字母表示数据源表,可分别表示为:单字段采集(unaryexpression),形如:a←b。字段和字段、字段和常量的四则运算(binaryexpression),形如:a←(t1.aasa1+t2.aasa2-t1.b+300)/t1.c–50。常量(immediateexpression),形如:a←“constants”。函数调用(functionexpression),入参可以是字段和常量,形如:a←&function_name(t1.aasa1,t2.aasa2,”2”,t1.b)以上4种表达式,都是expression的不同实现,当程序解析excel时,根据配置生成对应的表达式(expression)对象,保存于一个映射关系(map)中,形如:map<a,expression>。从数据源查询到一行数据后,通过表达式(expression)自身的求值函数,得出字段a应存储的值。在其中一个实施例中,参考图2,该方法中根据lambda表达式配置生成数据源查询语句的步骤包括:步骤202,根据lambda表达式配置生成sql语句;步骤204,根据sql语句从mongodb查询数据的sql解析。在本实施例中,实现了可以用sql语句从mongodb查询数据的sql解析。此外,还可以将处理后的实体数据存入mongodb或者jdbc中。在一个实施例中,提供了一种基于excel配置的数据采集方法,如图3所示,该方法包括:步骤302,获取excel中的配置文件,配置文件包括:本地字段名称、本地存储类型、lambda表达式以及字典配置;步骤304,根据本地字段名称和本地存储类型配置生成本地表对应的实体类;步骤306,根据本地字段名称和lambda表达式配置生成本地字段到lambda表达式的映射关系;步骤308,根据lambda表达式配置生成数据源查询语句;步骤310,根据数据源查询语句查询到原始数据初始化实体;步骤312,根据字典配置对已初始化的实体进行字典类型转换;步骤314,将已初始化的实体存储到数据库中。在一个具体的实施例中,该字典配置包括:值到值映射关系,值到值映射关系记为valuemap;数据源到valuemap的映射关系,数据源到valuemap的映射关系记为sourcemap;字典类型到sourcemap的映射关系,字典类型到sourcemap的映射关系记为dictmap。在一个具体实施例中,步骤312具体包括:根据字典配置中的映射关系,将不同的字典定义统一为标准的字典定义。具体地,通过使用字典配置,将不同数据提供商的字典定义转换为统一的定义;数据厂商,对同一个事物,定义了不同的代码表示,称之为字典定义。以交易所为例,各厂商的定义如下(同一个厂商的多个定义,用竖线“|”隔开):exchange标准(统一)万德(wd)聚源(jy)东财(dc)深交所xsheszse|sz90cnsesz上交所xshgsse|sh83cnsesh在采集数据时,需要将不同的字典定义统一为标准的字典定义。为此,设计了3层映射关系,分别为:值到值映射,valuemap<数据源值,标准值>,例如:map1<90,xshe>;数据源到valuemap的映射,sourcemap<数据源编码,valuemap>,例如:map2<jy,map1>;字典类型到sourcemap的映射,dictmap<字典类型编码,sourcemap>,例如:map3<exchange,map2>;程序解析字典配置的excel时,生成所有字典类型的3层映射关系,用于字典转换。在本实施例中,采用excel作为配置工具,方便对接新的数据提供商时做横向对比,并实现了对接不同的数据提供商,只需要写少量代码,甚至不写代码,就能从一个全新的数据提供商采集数据到现有的表。应该理解的是,虽然图1-3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。在一个实施例中,如图4所示,提供了一种基于excel配置的数据采集装置400,该装置包括:获取模块401用于获取excel中的配置文件,所述配置文件包括:本地字段名称、本地存储类型以及lambda表达式;第一生成模块402用于根据本地字段名称和本地存储类型配置生成本地表对应的实体类;第二生成模块403用于根据本地字段名称和lambda表达式配置生成本地字段到lambda表达式的映射关系;第三生成模块404用于根据lambda表达式配置生成数据源查询语句;初始化模块405用于根据数据源查询语句查询到原始数据初始化实体;存储模块406用于将已初始化的实体存储到数据库中。在一个实施例中,该装置中lambda表达式包括:单字段表达式;常量表达式;字段和字段、字段和常量的四则运算表达式;函数表达式。在一个实施例中,该装置中第三生成模块404还用于:根据lambda表达式配置生成sql语句;根据sql语句从mongodb查询数据的sql解析。在一个实施例中,如图5所示,提供了一种基于excel配置的数据采集装置400,该装置中配置文件还包括:字典配置;该装置还包括:转换模块407用于根据字典配置对已初始化的实体进行字典类型转换。在一个实施例中,该装置中字典配置包括:值到值映射关系,值到值映射关系记为valuemap;数据源到valuemap的映射关系,数据源到valuemap的映射关系记为sourcemap;字典类型到sourcemap的映射关系,字典类型到sourcemap的映射关系记为dictmap。在一个实施例中,该装置中转换模块407还用于:根据字典配置中的映射关系,将不同的字典定义统一为标准的字典定义。关于基于excel配置的数据采集装置的具体限定可以参见上文中对于基于excel配置的数据采集方法的限定,在此不再赘述。在一个实施例中,提供了一种计算机设备,其内部结构图可以如图6所示。该计算机设备包括通过装置总线连接的处理器、存储器及网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作装置、计算机程序和数据库。该内存储器为非易失性存储介质中的操作装置和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于excel配置的数据采集方法。本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以上各个方法实施例中的步骤。在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上各个方法实施例中的步骤。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。当前第1页12