一种金融数据的存取方法及存取装置
技术领域
本发明属于信息处理技术领域,尤其涉及一种金融数据的存取方法及存取装置。
背景技术
目前,在金融数据的访问过程中,通常是基于固定的数据结构定义按行进行的。然而,按固定的数据结构以行方式访问品种繁多、结构多样的金融数据,会导致大量的数据结构和接口定义。随着业务的扩张,数据结构和接口的数量会越来越多,对于动辄上千张数据库表的系统来说其复杂性不言而喻,非常不利于下游系统和用户使用。同时,由于数据结构和接口已经确立便不能随意修改以免影响既有系统(上述数据结构和接口所在的系统),系统的扩展性和灵活性非常受限。
故,有必要提出一种新的技术方案,以解决上述技术问题。
发明内容
鉴于此,本发明实施例提供一种金融数据的存取方法及存取装置,以较少的接口满足下游系统及用户的应用需求,并提高系统的扩展性和灵活性。
本发明实施例的第一方面,提供一种金融数据的存取方法,所述存取方法包括:
获取多个金融数据模型;
根据预设条件对所述多个金融数据模型中的金融数据进行分类,并对每个分类设置相应的接口;
对每个接口所支持的金融数据进行预处理,以获取所述每个接口所支持的数据字段名字典,所述数据字段名字典包括多个数据字段名;
根据所述每个接口所支持的数据字段名字典、用户输入的数据字段名以及查询参数,获取所要访问的金融数据。
本发明实施例的第二方面,提供一种金融数据的存取装置,所述存取装置包括:
模型获取模块,用于获取多个金融数据模型;
分类模块,用于根据预设条件对所述多个金融数据模型中的金融数据进行分类,并对每个分类设置相应的接口;
预处理模块,用于对每个接口所支持的金融数据进行预处理,以获取所述每个接口所支持的数据字段名字典,所述数据字段名字典包括多个数据字段名;
数据获取模块,用于根据所述每个接口所支持的数据字段名字典、用户输入的数据字段名以及查询参数,获取所要访问的金融数据。
本发明实施例与现有技术相比存在的有益效果是:本发明实施例通过获取多个金融数据模型,根据预设条件对所述多个金融数据模型中的金融数据进行分类,并对每个分类设置相应的接口,对每个接口所支持的金融数据进行预处理,以获取所述每个接口所支持的数据字段名字典,根据所述每个接口所支持的数据字段名字典、用户输入的数据字段名以及查询参数,获取所要访问的金融数据。本发明实施例以一个接口实现一类金融数据的访问,从而能够以为数不多的接口满足下游系统及用户的应用需求,且每个接口所支持的金融数据可在不影响系统的前提下灵活扩展,提高了系统的兼容性和扩展性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的一种金融数据的存取方法的实现流程图;
图2是本发明实施例二提供的一种金融数据的存取方法的实现流程图;
图3是本发明实施例三提供的一种金融数据的存取装置的组成示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例一:
图1示出了本发明实施例一提供的一种金融数据的存取方法的实现流程,所述实现流程详述如下:
步骤S101,获取多个金融数据模型。
在本发明实施例中,可以根据实际需求获取某些类型的金融数据模型(例如TeraData金融数据模型、Oracle金融数据模型等,在此不作限定),为了更全面地满足用户的访问需求,也可以获取现有的所有金融数据模型。
步骤S102,根据预设条件对所述多个金融数据模型中的金融数据进行分类,并对每个分类设置相应的接口。
在本发明实施例中,所述预设条件可以是指业务需求。即根据业务需求对所述多个金融数据模型中的金融数据所组成的金融数据集进行分类,并对每个分类设置一个相应的接口。其中,所述业务需求包括但不限于股票、基金、债券、权证、银行等。将上述金融数据集分成几类,就需要设置几个接口,例如为所有的股票数据设置一个接口A,所有的基金数据设置一个接口B,所有的债券数据设置一个接口C等。
步骤S103,对每个接口所支持的金融数据进行预处理,以获取所述每个接口所支持的数据字段名字典,所述数据字段名字典包括多个数据字段名。
在本发明实施例中,所述每个接口所支持的金融数据是指所述每个接口所对应的分类中的金融数据。由于每个分类中的金融数据又可以细化为多种类型的金融数据,并为每个分类中每种类型的金融数据命名一个数据字段名,每个分类中的多种类型的金融数据的数据字段名组成该分类的数据字段名字典,即与该分类对应的接口所支持的数据字段名字典。例如,债券的多个数据字段名可以为开盘价和收盘价等。
需要说明的是,若每个接口所支持的数据字段名字典中的每个数据字段名所对应的金融数据的数量过大,则可以将该金融数据按照预设条件存储在多个数据库中。例如将2001至2005年的开盘价存储在数据库A中,将2006年至2010年的开盘价存储在数据库B中。
可选的,所述对每个接口所支持的金融数据进行预处理包括:
对所述每个接口所支持的金融数据进行统一的编码、映射和命名。
在本发明实施例中,在所述多个金融数据模型中属于同一分类的金融数据的名称可能不同,为了向用户提供标准统一的金融数据,需要在存储每一分类的金融数据时,先对每一分类中的金融数据进行统一的编码,映射和命名。所述映射是指统一编码前的金融数据与统一编码后的金融数据之间的对应关系,所述统一编码前的金融数据与对应的统一编码后的金融数据实质上是指同一金融数据,例如将金融数据A编码为金融数据B,则该映射是指金融数据A与金融数据B之间的对应关系。所述命名是指按照统一的标准对每一分类中的金融数据进行命名,便于用户识别。
步骤S104,根据所述每个接口所支持的数据字段名字典、用户输入的数据字段名以及查询参数,获取所要访问的金融数据。
在本发明实施例中,所述查询参数是指对金融数据的筛选条件,例如时间区间,市场类型等,在此不作限定。需要说明的是,其他可以对金融数据进行筛选的参数均在本发明的保护范围内。
可选的,所述根据所述每个接口所支持的数据字段名字典、用户输入的数据字段名以及查询参数,获取所要查询的金融数据包括:
根据所述每个接口所支持的数据字段名字典,查找用户输入的数据字段名所属的接口;
根据所述查询参数,从该接口所支持的金融数据中获取所要访问的金融数据。
在本发明实施例中,所述用户输入的数据字段名可以是指用户在金融数据的查询页面通过触控键盘或者虚拟键盘输入的数据字段名,也可以是指用户在金融数据的查询页面点击下拉按钮,显示数据字段名列表,从该列表中点击选择数据字段名。
需要说明的是,在步骤S104中获取所要访问的金融数据后,将该金融数据返回给用户,便于用户查看;若在所有接口所支持的数据字段名字典中,均未查找到用户输入的数据字段名,则可以向用户返回提示信息,以提示用户输入的字段名错误或该字段名不存在。
在本发明实施例中,每个接口按其所支持的数据字段名字典提供服务,数据访问时不以固定的数据结构进行,而是根据用户任意指定或输入的数据字段名,结合必要的查询参数进行,从而使得每个接口所支持的数据字段名可在不影响系统的前提下灵活扩展,提高了系统的兼容性和扩展性。
本发明实施例以一个接口实现一类金融数据的访问,从而能够以为数不多的接口满足下游系统及用户的应用需求,且每个接口所支持的金融数据可在不影响系统的前提下灵活扩展,提高了系统的兼容性和扩展性。
实施例二:
图2示出了本发明实施例二提供的一种金融数据的存取方法的实现流程,所述实现流程详述如下:
步骤S201,获取多个金融数据模型。
该步骤与步骤S101相同,具体可参见步骤S101的相关描述,在此不再赘述。
步骤S202,根据预设条件对所述多个金融数据模型中的金融数据进行分类,并对每个分类设置相应的接口。
该步骤与步骤S102相同,具体可参见步骤S102的相关描述,在此不再赘述。
步骤S203,对每个接口所支持的金融数据进行预处理,以获取所述每个接口所支持的数据字段名字典,所述数据字段名字典包括多个数据字段名。
该步骤与步骤S103相同,具体可参见步骤S103的相关描述,在此不再赘述。
可选的,本发明实施例还包括:
将所述每个接口所支持的数据字段名字典中每个数据字段名所对应的金融数据,以列式数据格式进行存取,其中,一个数据字段名对应一个数据列。
具体地,在存储所述每个接口所支持的数据字段名字典中每个数据字段名所对应的金融数据时,可以以列式数据格式进行存储(即步骤S204);在提取所述每个接口所支持的数据字段名字典中每个数据字段名所对应的金融数据时,可以以列式数据格式进行提取(即步骤S205)。所述列式数据格式是指按列存储数据。一个数据字段名所对应的金融数据存储在一个数据列中,所述每列数据包含完整的定义信息,如字段名、数据类型、数据长度以及实际的数据列等,以保证每列数据可以独立的进行解析和使用。
可选的,在将所述每个接口所支持的数据字段名字典中每个数据字段名所对应的金融数据,以列式数据格式进行存取之后,还包括:
获取列式数据的长度;
若所述列式数据的长度超过预设长度,则对所述列式数据进行压缩处理。
在本发明实施例中,所述列式数据是指以列式数据格式存储的金融数据和以列式数据格式提取的金融数据。若以列式数据格式存储的金融数据的长度超过预设长度,则对该金融数据进行压缩处理;若以列式数据格式提取的金融数据的长度超过预设长度,则对该金融数据进行压缩处理。对超过预设长度的列式数据进行压缩处理,可降低传输带宽和存储空间的占用,且列式数据可以充分利用金融历史数据的相关性(每个列式数据是指在不同时间点上的同一数据字段名下的金融数据,例如一个列式数据是2001至2010的开盘价)支持更加的压缩传输效率。其中,所述预设长度可以根据实际需要自行设定。
步骤S204,将所述每个接口所支持的数据字段名字典中的每个数据字段名所对应的金融数据以列式数据格式进行存储。
步骤S205,根据所述每个接口所支持的数据字段名字典、用户输入的数据字段名以及查询参数,获取所要访问的金融数据,并以列式数据格式提取所要访问的金融数据。
需要说明的是,对于海量数据,支持列式数据的分段传输,即每次出传输指定长度的数据,经多次交互完成整个数据的传输,以降低对系统造成的压力和带宽的占用。
本发明实施例在实施例一的基础上增加了“将所述每个接口所支持的数据字段名字典中每个数据字段名所对应的金融数据,以列式数据格式进行存取”,列式数据可实现更高效的数据压缩和数组式直接高效访问。
实施例三:
图3示出了本发明实施例三提供的一种金融数据的存取装置的组成示意图,为了便于说明,仅示出了与本发明实施例相关的部分,详述如下:
所述存取装置包括:
模型获取模块31,用于获取多个金融数据模型;
分类模块32,用于根据预设条件对所述多个金融数据模型中的金融数据进行分类,并对每个分类设置相应的接口;
预处理模块33,用于对每个接口所支持的金融数据进行预处理,以获取所述每个接口所支持的数据字段名字典,所述数据字段名字典包括多个数据字段名;
数据获取模块34,用于根据所述每个接口所支持的数据字段名字典、用户输入的数据字段名以及查询参数,获取所要访问的金融数据。
可选的,所述预处理模块33用于:
对所述每个接口所支持的金融数据进行统一的编码、映射和命名。
可选的,所述数据获取模块34包括:
查询单元341,用于根据所述每个接口所支持的数据字段名字典,查找用户输入的数据字段名所属的接口;
获取单元342,用于根据所述查询参数,从该接口所支持的金融数据中获取所要访问的金融数据。
所述存取装置还包括:
存取模块35,用于将所述每个接口所支持的数据字段名字典中每个数据字段名所对应的金融数据,以列式数据格式进行存取,其中,一个数据字段名对应一个数据列。
所述存取装置还包括:
长度获取模块36,用于获取列式数据的长度;
压缩模块37,用于若所述列式数据的长度超过预设长度,则对所述列式数据进行压缩处理。
需要说明的是,所述存取模块35在以列式数据格式对金融数据进行存储时,所述长度获取模块36获取列式数据的长度,若该列式数据的长度超过预设长度,则所述压缩模块37对该列式数据进行压缩处理。其中,该列式数据是指以列式数据格式进行存储的金融数据。
在所述数据获取模块34获取所要访问的金融数据过程中,所述存取模块35在以列式数据格式对金融数据进行提取时,所述长度获取模块36获取列式数据的长度,若该列式数据的长度超过预设长度,则所述压缩模块37对该列式数据进行压缩处理,并将压缩处理后的列式数据返回给用户。其中,该列式数据是指以列式数据格式进行提取的金融数据。
本发明实施例提供的金融数据的存取装置可以使用在前述对应的方法实施例一和实施例二中,详情参见上述实施例一和实施例二的描述,在此不再赘述。
所述领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即所述装置的内部结构划分成不同的功能模块,上述功能模块既可以采用硬件的形式实现,也可以采用软件的形式实现。另外,各功能模块的具体名称也只是为了便于相互区别,并不用于限制本申请的保护范围。
综上所述,本发明实施例以一个接口实现一类金融数据的访问,从而能够以为数不多的接口满足下游系统及用户的应用需求,且每个接口所支持的金融数据可在不影响相关系统的前提下灵活扩展,提高了系统的兼容性和扩展性。
本领域普通技术人员还可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以在存储于一计算机可读取存储介质中,所述的存储介质,包括ROM/RAM、磁盘、光盘等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。