数据管理方法及相关产品
技术领域
本申请涉及数据处理技术领域,具体涉及一种数据管理方法及相关产品。
背景技术
随着科学技术的飞速发展,网络源源不断的产生新的数据,当产生新数据后,需将一些重要数据存储,以备后续使用。目前,一般将数据存储到Oracle数据库中进行保存,当后续需要使用该数据时,可以向Oracle数据库发起数据获取请求,在该数据获取请求中携带数据标识,遍历Oracle数据库中存储的数据,依据该数据标识获取该数据标识对应的数据,实现对存储数据的调用。但是,当频繁访问Oracle数据库时,每次访问都需要与Oracle数据库建立通信连接,遍历Oracle数据库中存储的数据,导致Oracle数据库服务器对访问开销极大,容易造成Oracle数据库服务器调取数据速度变慢甚至宕机,降低用户体验。
发明内容
本申请实施例提供了一种数据管理方法及相关产品,以期通过Oracle数据库和ES数据库的协同工作,降低访问次数,提高数据获取速度。
第一方面,本申请实施例提供一种数据管理方法,该方法包括:
接收数据存储请求,提取所述数据存储请求中的待存储数据信息,按照预设存储规则将所述待存储数据信息存储至Oracle数据库;
获取所述待存储数据信息在所述Oracle数据库中对应的索引标识,将所述索引标识同步至ES数据库;
接收至少一个数据获取请求,将所述至少一个数据获取请求加入消息队列,通过所述消息队列获取与所述至少一个数据获取请求对应的数据信息。
第二方面,本申请实施例提供一种数据管理装置,该装置包括:
存储单元,用于接收数据存储请求,提取所述数据存储请求中的待存储数据信息,按照预设存储规则将所述待存储数据信息存储至Oracle数据库;
同步单元,用于获取所述待存储数据信息在所述Oracle数据库中对应的索引标识,将所述索引标识同步至ES数据库;
获取单元,用于接收至少一个数据获取请求,将所述至少一个数据获取请求加入消息队列,通过所述消息队列获取与所述至少一个数据获取请求对应的数据信息。
第三方面,本申请实施例提供一种电子设备,包括处理器、存储器、通信接口以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置由所述处理器执行,所述程序包括用于执行如第一方面所述的方法中的步骤的指令。
第四方面,本申请实施例提供一种计算机可读存储介质,其存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行如第一方面所述的方法。
第五方面,本申请实施例提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机可操作来使计算机执行如第一方面所述的方法。
实施本申请实施例,具有如下有益效果:
可以看出,在本申请实施例中,首先按照预设存储规则将数据存储至Oracle数据库,将索引标识同步至ES数据库,充分利用ES数据库搜索索引标识速度快的优点,从而实现快速获得数据获取请求的索引标识,提高数据访问速度;而且,将数据获取请求加入消息队列,通过消息队列的方式,同步获取批量数据获取请求的数据信息,减少数据库的开销,降低对数据库的访问压力,提高数据库工作稳定性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A为本申请实施例提供的一种数据管理方法的网络架构的示意图;
图1B为本申请实施例提供的一种数据管理方法的流程示意图;
图1C为本申请实施例提供的一种树模型存储数据的示意图;
图1D为本申请实施例提供的一种融合数据获取请求的示意图;
图2为本申请实施例提供的另一种数据管理方法的的流程示意图;
图3为本申请实施例提供的一种数据管理装置的结构示意图;
图4为本申请实施例提供的一种数据管理装置的功能单元组成框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结果或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本申请中的数据管理装置可以包括智能手机(如Android手机、iOS手机、WindowsPhone手机等)、平板电脑、掌上电脑、笔记本电脑、移动互联网设备MID(Mobile InternetDevices,简称:MID)或穿戴式设备等,上述电子设备仅是举例,而非穷举,包含但不限于上述电子设备,例如还可以包括:智能车载终端、计算机设备等等。
以下,对本申请中的部分用语进行解释说明,以便于本领域技术人员理解。
Oracle数据库,一种关系型数据库,采用关系模型来组织数据的数据库,其关系模型指的就是二维表格模型,故Oracle关系型数据库由二维表及其之间的联系所组成的一个数据组织;ES数据库,一种非关系型数据库,存储理念以键值对存储,且结构不固定,每一个元组有不一样的字段,每个元组可以根据需要增加自己的键值对,不局限于固定的结构,减少时间和空间的开销;用户可以根据需求添加自己需要的字段。
优缺点比较:从非关系型数据库中获取数据信息时,不需像关系型数据库中获取数据时,需对多个表进行关联查询。仅需要根据id取出相应的value就可以查询数据信息,查询速度快。由于非关系型数据库存在很少的约束,很难提供像关系型数据库所提供的where这种对于字段属性值情况的查询,故只适合存储一些较为简单的数据,例如,存储索引标识;对于需要进行较复杂查询的数据、逻辑关系较复杂的数据信息,需要存放在关系型数据库。
首先,参阅图1A,图1A为本申请实施例提供的一种数据管理的网络架构示意图,该网络架构包括客户端10、数据管理装置20、消息队列30、Oracle数据库40和ES数据库50,其中,Oracle数据库40和ES数据库50为封装组件;
客户端10,用于向数据管理装置20发送数据获取请求,该数据获取请求中携带有待存储数据信息;
数据管理装置20,用于接收该数据存储请求,提取该数据存储请求中的待存储数据信息,按照预设存储规则将该待存储数据信息存储至Oracle数据库40;
数据管理装置20,还用于获取该待存储数据信息在Oracle数据库40中对应的索引标识,将该索引标识同步至ES数据库50,其中,将该索引标识同步40ES数据库50可通过消息队列30进行同步,也可不通过消息队列30进行同步,本申请不做唯一限定;
客户端10,还用于向数据管理装置20发送至少一个数据获取请求,其中,该数据请求中携带有待获取数据信息;
数据管理装置20,还用于接收该至少一个数据获取请求,将该至少一个数据获取请求加入消息队列30,通过消息队列30获取与该至少一个数据获取请求对应的待获取数据信息。
可以看出,在本申请实施例中,通过Oracle数据库和ES数据库的封装组件,将数据保存在Oracle数据库,将索引标识保存在ES数据库,充分利用Oracle数据库和ES数据库保存数据的特性,提高数据的访问速度;另外,按照预设规则将数据保存,在获取数据时,无需遍历数据库即可得到待获取的数据,进一步提高数据的获取速度;而且,将数据获取请求加入到消息队列,通过消息队列批量获取数据,减少了对数据库的访问开销,降低了对数据库的访问压力。
参阅图1B,图1B为本申请实施例提供的一种数据管理方法的流程示意图,该方法应用于数据管理系统,该数据管理系统包括数据管理装置以及Oracle数据库和ES数据库的封装组件,该方法包括如步骤S101~S103中所示的内容:
步骤S101、所述数据管理装置接收数据存储请求,提取所述数据存储请求中的待存储数据信息,按照预设存储规则将所述待存储数据信息存储至所述Oracle数据库。
其中,该数据存储请求可以为针对任意客户数据信息的存储请求,该数据信息包含若干项数据信息,具体包括客户ID(例如,注册账号或者会员号)、银行卡信息(例如,银行卡号、开户行、开户类型)、信用等级、身份信息(如,年龄、职业)。
其中,该数据存储请求携带待存储数据信息。
可选的,按照预设存储规则将所述待存储数据信息存储至所述Oracle数据库的实现过程可以为:对所述待存储数据信息中的各项数据信息进行关键词识别,确定每项数据信息对应的关键词集群;将属于同一关键词集群的数据信息划分到同一数据维度,得到多个数据维度;获取所述多个数据维度中每个数据维度相对于所述待存储数据信息的重要等级;将重要等级最高的数据维度作为根节点,将所述多个数据维度中除重要等级最高的数据维度之外的其他数据维度作为子节点创建第一树模型;将所述多个数据维度各自对应的待存储数据信息存储在对应的节点上,其中,所述节点包括所述第一树模型的根节点和子节点;将存储数据信息后的第一树模型存储至所述Oracle数据库。
具体来讲,首先预设关键词集群,每个关键词集群中包含若干个关键词,例如,预设身份信息关键词集群,其可以包括关键词:“姓名”、“性别”、“身份证号”、“身高”、“体重”,等等,在对各项数据信息进行关键词识别时,需对识别到的关键词进行属性分析,确定每个关键词的源属性,即源信息,判断该源属性对应的关键词集群,将该源属性对应的关键词集群作为该关键词对应的关键词集群,例如,识别出的关键词为138×××8733时,确定其对应的源属性为电话号码,再如,识别出的关键词为“张三”时,确定其对应的源属性为姓名,故在确定各项信息对应的关键词集群后,将属于同一个关键词集群的各项数据信息划分到同一数据维度,得到多个数据维度;例如,将“姓名”、“性别”、“身份证号”对应的数据信息划分到身份信息维度。
进一步地,获取所述多个数据维度中每个数据维度相对于所述待存储数据信息的重要等级的实现过程可以为:获取各个数据维度的标识信息,确定该标识信息是否具有唯一性,依据该标识信息是否具有唯一性确定每个数据维度的重要等级,其重要等级可以划分为高和低,如标识信息具有唯一性,确定该数据维度的重要等级为高,否则确定该数据维度的重要等级为低。举例来说,对于客户来说,客户ID和客户的身份证号的标识作用均具有唯一性,故其对应的重要等级为高,本申请中以客户ID作为具有唯一性的数据维度为例作具体说明,并不做唯一限定。可以看出,本申请构建的第一树模型与现有的随机森林算法构建的决策树模型相比,本申请中的子节点之间无重要性排序,即子节点处存储的数据信息之间无耦合关系。
进一步地,将所述多个数据维度各自对应的待存储数据信息存储在对应的节点上的实现过程可以为:确定所述多个数据维度中每个数据维度对应的主题域;获取该主题域中主题数量;获取该主题域中每个主题对应的待存储数据信息的数量,确定该主题域中待存数据信息的数量最多的第一主题;以所述主题数量为行数,以所述第一主题对应的待存储数据信息的数量作为列数,创建该主题域对应的Excel表;将该主题域对应的待存储数据信息添加到所述Excel表中;将添加数据信息后的Excel表挂接在每个数据维度对应的节点处。
具体来讲,结合数据仓库理念,预先设置数据维度与主题域的对应关系,依据该对应关系获取每个数据维度对应的主题域,每个主题域中包含至少一个主题,每个主题在该数据维度下对应至少一项数据信息,举例来说,如数据维度为银行卡维度时,其对应的主题域为银行卡,该主题域中主题包括卡号、开户行、银行卡类型(例如,借记卡、信用卡、储蓄卡),等,故可以主题的数量为Excel表的行数,获取每个主题对应的待存储数据信息的数量,以待存储数据信息的最大数量作为Excel表的行数,构建Excel表,可以理解的是,如该Excel表中第一行存储的待存储数据信息和第二行存储的待存储数据信息之间存在依赖关系时,在将相关待存储数据信息添加至第一行和第二行时,将存在依赖关系的数据信息添加在该Excel表的同一列,以在获取数据信息时,从该列中提取出一份完整的数据信息。
举例来说,如图1C所示,数据维度包括客户ID维度、身份信息维度、申请信息维度以及银行卡信息维度,故以客户ID作为根节点,将ID号存储在该根节点处的Excel表,分别以身份信息维度、申请信息维度以及银行卡信息维度作为子节点,创建第一树模型,并将各个数据维度对应的待存储数据信息存储在各个节点处的Excel表,由于每张银行卡的卡号和开户行存在依赖关系,所以存储银行卡维度节点对应的数据信息时,将每张银行卡的卡号和开户行存储在Excel表的同一列,如第一列,表明该列数据信息为每张银行卡的完整信息。
步骤S102、所述数据管理装置获取所述待存储数据信息在所述Oracle数据库中对应的索引标识,将所述索引标识同步至所述ES数据库。
可选的,获取所述待存储数据信息在所述Oracle数据库中对应的索引标识具体包括:获取每个节点的Excel表的主键信息,将该主键信息作为每个节点的索引标识,得到存储该待存储数据信息存储的索引标识;如图1C所示,将每个节点的索引标识挂接各自对应的节点处,得到与索引标识对应的第二树模型,将该第二树模型同步至该ES数据库。
进一步地,将该第二树模型同步至该ES数据库的实现过程可以为:直接将该第二树模型同步至ES数据库或者将该第二树模型加入预先建立的消息队列,通过该消息队列将该第二树模型同步至ES数据库,下面详细叙述通过消息队列将第二树模型同步至ES数据库的方式。
数据管理装置预先建立消息队列,在建立消息队列后,将消息队列的数据传输方式发送给ES数据库服务器,其中,所述数据传输方式包括用户名、密码、访问路径、端口号以及数据传输顺序,以使ES数据库服务器根据所述用户名、密码、访问路径以及端口号从消息队列中消费索引标识,该数据传输顺序包括先入先出FIFO顺序或者后入先出LIFO顺序;然后,利用开发工具包SDK组件封装该第二树模型,得到封装好的数据包,根据数据传输方式将封装好的数据包发布至消息队列;在发布成功后,即接收到消息队列装置反馈的确认字符ACK后,向ES数据库服务器发送数据消费请求,请求ES数据库服务器根据接收到的数据传输方式从消息队列中依次消费封装好的数据包,解析该封装好的数据包,得到该第二树模型,将该第二树模型存储至该ES数据库;当然,在将该第二树模型存储至消息队列后,获取向该消息队列发布的第二树模型的数量,当该数量达到该消息队列的容量时,向ES数据库服务器发送数据消费请求,实现批量同步索引标识。
步骤S103、所述数据管理装置接收至少一个数据获取请求,将所述至少一个数据获取请求加入消息队列,通过所述消息队列获取与所述至少一个数据获取请求对应的数据信息。
可选的,在将该至少一个数据获取请求加入消息队列之前,获取当前该至少一个数据获取请求对应的数据信息的访问量,在该访问量大于阈值时,根据预先建立的消息队列的数据传输方式,将该至少一个数据获取请求依次发布至消息队列,即当前接收到的至少一个数据获取请求为批量数据获取请求,需要获取多个客户的数据信息时,将该批量数据获取请求加入到消息队列中,通过消息队列的方式,同步获取到该多个客户的数据信息。举例来说,数据管理装置当前接收到多个客户端同步发送的数据获取请求时,通过消息队列的方式,只需与数据库建立一次数据访问链接,即可调取该多个数据获取请求对应的多个数据信息,从而减少了对数据库的访问开销,降低数据库的访问压力。
其中,该阈值可以为20、30、50或者其他值。
可选的,所述通过所述消息队列获取与所述数据获取请求对应的数据信息的实现过程可以为:将所述消息队列中的至少一个数据获取请求发送至所述ES数据库;从所述ES数据库中获取与所述至少一个数据获取请求对应的索引标识;从所述Oracle数据库中获取与所述索引标识对应的数据信息。当然,在得到该至少一个数据获取请求对应的索引标识时,也可将该索引标识加入到该消息队列,通过该消息队列从Oracle数据库中获取与该索引标识对应的数据信息,同理,在加入该消息队列前,也可判断该索引标识的数量是否大于阈值,如是,加入该消息队列,如否,直接基于该索引标识从Oracle数据库中获取与该索引标识对应的数据信息。
可以看出,在本申请实施例中,过Oracle数据库和ES数据库的封装组件,将数据保存在Oracle数据库中,将索引标识保存在ES数据库,充分利用Oracle数据库和ES数据库保存数据的特性,由于从ES数据库搜索索引标识速度快,从而提高数据的访问速度;另外,按照预设规则存储数据,在获取数据时,无需遍历数据库即可得到待获取的数据,进一步提高数据的获取速度;而且,将数据获取请求加入到消息队列,在接收到批量数据获取请求时,只需与数据库建立一次访问链接,即可调取该多个数据获取请求对应的多个数据信息,从而减少了对数据库的访问开销,降低数据库的访问压力。
在一可能的示例中,在按照预设存储规则将待存储数据信息存储至Oracle数据库时,所述方法还包括:获取该Oracle数据库中已存储的第一树模型的数量;在所述数量大于1时,将该Oracle数据库已存储的数据信息分层存储。
可选的,在上述可能的示例中,将该Oracle数据库存储的数据信息分层存储的实现过程可以为:将该Oracle数据库中已存储的第一树模型的根节点存放在同一数据存储层;确定已存储的第一树模型中每个第一树模型上各个子节点对应的主题域,将已存储的第一树模型中属于同一主题域的子节点存放在同一数据存储层,将不存在相同主题域的子节点单独存放在一数据存储层,实现对数据信息的分层存储。
进一步地,在对已存储的数据信息分层存储之前,预先对数据存储层进行空间分配,其分配过程包括如下步骤:获取每个数据存储层待存储的数据维度;获取该数据维度对应的数据信息类型;获取该数据信息类型对应的存储概率,该存储概率为存储数据信息的所有客户中,存储有该数据维度对应的数据信息的客户在所有客户中的占比;根据该数据类型以及该存储概率计算每个数据存储层所需的存储空间;例如,数据维度为身份信息维度,该身份信息的数据信息类型包含面部图像,相比于其他的数据维度,该数据维度下的数据信息占空间较大,所以,预先划分出一个内存空间较大的数据存储层,以完全存储该数据维度下的数据信息,所以,对数据存储层预先划分存储空间,从而合理利用该存储资源,提高存储利用率。
每个数据存储层所需的存储空间的计算公式如下:
其中,Sj为第j个数据存储层所需的存储空间,pj为第j个数据存储层对应的数据信息类型的存储概率,N为当前时刻在第j个数据存储层存储数据信息的客户数量,Mj为每个客户第j个数据存储层中所需的存储空间,Sj为j个数据存储层中存储的数据信息中的字符数量,aij为该数据信息中第i个图片的像素宽度,bij为该数据信息中第i个图片的像素高度,ki为第i个图片中每个像素点所占的字节大小,n为第j个数据存储层中存储的数据信息中的图片数量,其中,当i=0时,表示不存在图片,即a0j=b0j=k0=0,i和j均为大于1的整数。
进一步地,基于对数据信息分层存储的方式,将与索引标识对应的第二树模型进行相同模式的分层存储,在此不再详细叙述,并将分层存储后的第二树模型同步至ES数据库,同步方式与上述同步一致,不再叙述。
所以,通过所述消息队列获取与所述至少一个数据获取请求对应的数据信息的实现过程可以为:遍历ES数据库中存储根节点层中所有根节点,查询与该至少一个数据获取请求对应的根节点,获取该根节点存储的索引标识(即一级索引标识)得到,确定该标识信息对应的主题域,确定该根节点所在的树模型中与该主题域对应的存储层,在该数据存储层中查询与该数据获取请求对应的子节点,获取该子节点存储的索引标识(即二级索引标识),同理,基于该在根节点的数据存储层中查询与所述根节点的索引标识对应的根节点;基于一级索引标识在Oracle数据库中存储根节点层确定出目标树模型;在相应的存储层获取与二级索引标识对应的子节点处挂接的Excel表,从该Excel表中提取提取与数据获取请求对应的数据信息。故通过分层存储,在从Oracle数据库调取数据时,无需遍历Oracle数据库,只需在相应的存储层中查询与数据获取请求对应的数据信息,从而实现快速调取数据,提高了数据的访问速度。
在一可能的示例中,所述将所述至少一个数据获取请求加入消息队列的实现过程可以为:获取所述至少一个数据获取请求中每个数据获取请求的数据标识;根据数据标识确定每个数据获取请求对应的待访问用户,其中,该待访问用户为数据库中已存储有其相应数据信息的用户;获取对每个待访问用户的预设重要等级;按照预设重要等级的高低顺序依次将每个数据获取请求加入消息队列。
在上述可能的示例中,解析该至少一个数据获取请求中每个数据获取请求,得到每个数据获取请求的一级数据标识(例如,客户ID);确定该一级数据标识对应的待访问用户;获取对每个待访问用户的预设重要等级,其中,该预设重要等级可以按照预设标准进行划分,该预设标准可以为:信用等级,信用等级越高,其预设重要等级越高;或者,存储金额的数量,数量越大,其信用等级越高;或者,是否为VIP,如是,其信用等级越高,等等,本申请不做限定。
可以理解的是,如该消息队列的数据传输顺序为先入先出时,在本示例中,通过对用户进行等级划分,在获取接收到批量数据获取请求时,使等级相对较高用户的数据优先被调取出来,增加数据的获取方式,提高用户体验。
在一可能的示例中,所述将所述至少一个数据获取请求加入消息队列的实现过程可以为:获取所述至少一个数据获取请求中每个数据获取请求的数据标识,所述数据标识至少包括一级数据标识和二级数据标识,其中,所述二级数据标识为所述一级数据标识的子数据标识;获取所述至少一个数据获取请求中一级数据标识相同的多个数据获取请求,将所述多个数据获取请求进行融合,得到至少一个第二树模型,其中,每个第二树模型的根节点与所述多个数据获取请求的一级数据标识对应、各个子节点与所述多个数据获取请求的多个二级数据标识对应;获取每个第二树模型的根节点对应的待访问用户;获取对每个待访问用户的预设重要等级;根据预设重要等级的高低顺序将每个第二树模型依次加入消息队列。
在上述可能的示例中,在将该至少一个数据获取请求加入消息队列之前,根据数据获取请求的数据标识对至少一个数据获取请求进行关联性融合,得到至少一个第二树模型。举例来说,如数据获取请求1,对应的一级数据标识为客户1,二级数据标识为银行卡,数据获取请求2,对应的一级数据标识为客户1,二级数据标识为申请信息,故两者的一级数据标识相同,故该至少一个数据请求中一级标识相同的数据获取请求进行融合,得到如图1D所示的树模型。故将第二树模型与ES数据库中保存的树模型进行比对,可同步获取该第二树模型上所有数据获取请求对应的索引标识,无需将每个数据获取请求与该ES数据库中保存的树模型进行一一比对,从而实现第一次获取到多个数据获取请求对应的索引标识,提高了数据的访问速度,提高用户体验。
参阅图2,图2为本申请实施例提供的另一种数据管理方法的流程示意图,该方法应用于数据管理装置,该方法包括如步骤S201~S210中所示内容:
步骤S201、所述数据管理装置接收数据存储请求,提取所述数据存储请求中的待存储数据信息,按照预设存储规则将所述待存储数据信息存储至所述Oracle数据库。
步骤S202、所述数据管理装置获取所述待存储数据信息在所述Oracle数据库中对应的索引标识,将所述索引标识同步至所述ES数据库。
步骤S203、所述数据管理装置接收至少一个数据获取请求,获取所述至少一个数据获取请求对应的数据信息的访问量。
步骤S204、所述数据管理装置判断所述访问量是否大于阈值;
如是,执行步骤S205;
如否,执行步骤S207。
步骤S205、所述数据管理装置将所述至少一个数据获取请求发送给所述ES数据库,获取与所述至少一个数据获取请求对应的索引标识。
步骤S206、所述数据管理装置将所述索引标识发送给所述Oracle数据库,获取与所述索引标识对应的数据信息。
步骤S207、所述数据管理装置将所述至少一个数据获取请求加入消息队列。
步骤S208、所述数据管理装置通过所述消息队列将所述至少一个数据获取请求发送给所述ES数据库,获取与所述至少一个数据获取请求对应的索引标识。
步骤S209、所述数据管理装置将所述索引标识加入所述消息队列。
步骤S210、所述数据管理装置通过所述消息队列将索引标识发送给所述Oracle数据库,获取与所述索引标识对应的数据信息。
需要说明的是,图2所示的方法的各个步骤的具体实现过程可参见上述图1B所述方法的具体实现过程,在此不再叙述。
可以看出,在本申请实施例中,通过Oracle数据库和ES数据库的封装组件,将数据保存在Oracle数据库中,将索引标识保存在ES数据库,充分利用Oracle数据库和ES数据库保存数据的特性,由于从ES数据库搜索索引标识速度快,从而提高数据的访问速度;另外,按照预设规则存储数据,在获取数据时,无需遍历数据库即可得到待获取的数据,进一步提高数据的获取速度;而且,将数据获取请求加入到消息队列,在接收到批量数据获取请求时,只需与数据库建立一次访问链接,即可调取该多个数据获取请求对应的多个数据信息,从而减少了对数据库的访问开销,降低数据库的访问压力。
与上述图1B、图2所示的实施例一致的,请参阅图3,图3为本申请实施例提供的一种数据管理装置300的结构示意图,该数据管理装置300包括处理器、存储器、通信接口以及一个或多个程序,其中,上述一个或多个程序不同于上述一个或多个应用程序,且上述一个或多个程序被存储在上述存储器中,并且被配置由上述处理器执行,上述程序包括用于执行以下步骤的指令:
接收数据存储请求,提取所述数据存储请求中的待存储数据信息,按照预设存储规则将所述待存储数据信息存储至Oracle数据库;
获取所述待存储数据信息在所述Oracle数据库中对应的索引标识,将所述索引标识同步至ES数据库;
接收至少一个数据获取请求,将所述至少一个数据获取请求加入消息队列,通过所述消息队列获取与所述至少一个数据获取请求对应的数据信息。
在一可能的示例中,在按照预设存储规则将所述待存储数据信息存储至Oracle数据库时,上述程序具体用于执行以下步骤的指令:
对所述待存储数据信息中的各项数据信息进行关键词识别,确定每项数据信息对应的关键词集群;
将属于同一关键词集群的数据信息划分到同一数据维度,得到多个数据维度;
获取所述多个数据维度中每个数据维度相对于所述待存储数据信息的重要等级;
将重要等级最高的数据维度作为根节点,将所述多个数据维度中除重要等级最高的数据维度之外的其他数据维度作为子节点创建第一树模型;
将所述多个数据维度各自对应的待存储数据信息存储在对应的节点上,其中,所述节点包括所述第一树模型的根节点和子节点;
将存储数据信息后的第一树模型存储至Oracle数据库。
在一可能的示例中,在将所述多个数据维度各自对应的待存储数据信息存储在对应的节点上时,上述程序具体用于执行以下步骤的指令:
确定所述多个数据维度中每个数据维度对应的主题域;
获取该主题域中主题数量;
获取该主题域中每个主题对应的待存储数据信息的数量,确定该主题域中待存数据信息的数量最多的第一主题;
以所述主题数量为行数,以所述第一主题对应的待存储数据信息的数量为列数,创建该主题域对应的Excel表;
将该主题域对应的待存储数据信息添加到所述Excel表中;
将添加数据信息后的Excel表挂接在每个数据维度对应的节点处。
在一可能的示例中,在通过所述消息队列获取与所述数据获取请求对应的数据信息时,上述程序具体用于执行以下步骤的指令:
将所述消息队列中的至少一个数据获取请求发送至所述ES数据库;
从所述ES数据库中获取与所述至少一个数据获取请求对应的索引标识;
从所述Oracle数据库中获取与所述索引标识对应的数据信息。
在一可能的示例中,在通过所述消息队列获取与所述数据获取请求对应的数据信息之前,上述程序还用于执行以下步骤的指令:
获取所述至少一个数据获取请求对应的数据信息的访问量;
如所述访问量大于阈值,将所述至少一个数据获取请求加入消息队列。
在一可能的示例中,在将所述至少一个数据获取请求加入消息队列时,上述程序具体用于执行以下步骤的指令:
获取所述至少一个数据获取请求中每个数据获取请求的数据标识;
根据数据标识确定每个数据获取请求对应的待访问用户;
获取对每个待访问用户的预设重要等级;
按照预设重要等级的高低顺序依次将每个数据获取请求加入消息队列。
在一可能的示例中,在将所述至少一个数据获取请求加入消息队列时,上述程序具体用于执行以下步骤的指令:
获取所述至少一个数据获取请求中每个数据获取请求的数据标识,所述数据标识至少包括一级数据标识和二级数据标识,其中,所述二级数据标识为所述一级数据标识的子数据标识;
获取所述至少一个数据获取请求中一级数据标识相同的多个数据获取请求,将所述多个数据获取请求进行融合,得到至少一个第二树模型,其中,每个第二树模型的根节点与所述多个数据获取请求的一级数据标识对应、各个子节点与所述多个数据获取请求的多个二级数据标识对应;
获取每个第二树模型的根节点对应的待访问用户;
获取对每个待访问用户的预设重要等级;
根据预设重要等级的高低顺序将每个第二树模型依次加入消息队列。
参阅图4,图4示出了上述实施例中所涉及的数据管理装置400的一种可能的功能单元组成框图,数据管理装置400包括:存储单元410、同步单元420和获取单元430;
存储单元410,用于接收数据存储请求,提取所述数据存储请求中的待存储数据信息,按照预设存储规则将所述待存储数据信息存储至Oracle数据库;
同步单元420,用于获取所述待存储数据信息在所述Oracle数据库中对应的索引标识,将所述索引标识同步至ES数据库;
获取单元430,用于接收至少一个数据获取请求,将所述至少一个数据获取请求加入消息队列,通过所述消息队列获取与所述至少一个数据获取请求对应的数据信息。
在一可能的示例中,在按照预设存储规则将所述待存储数据信息存储至Oracle数据库时,存储单元410,具体用于:对所述待存储数据信息中的各项数据信息进行关键词识别,确定每项数据信息对应的关键词集群;将属于同一关键词集群的数据信息划分到同一数据维度,得到多个数据维度;获取所述多个数据维度中每个数据维度相对于所述待存储数据信息的重要等级;将重要等级最高的数据维度作为根节点,将所述多个数据维度中除重要等级最高的数据维度之外的其他数据维度作为子节点创建第一树模型;将所述多个数据维度各自对应的待存储数据信息存储在对应的节点上,其中,所述节点包括所述第一树模型的根节点和子节点;将存储数据信息后的第一树模型存储至Oracle数据库。
在一可能的示例中,在所述多个数据维度各自对应的待存储数据信息存储在对应的节点上时,存储单元410,具体用于:确定所述多个数据维度中每个数据维度对应的主题域;获取该主题域中主题数量;获取该主题域中每个主题对应的待存储数据信息的数量,确定该主题域中待存数据信息的数量最多的第一主题;以所述主题数量为行数,以所述第一主题对应的待存储数据信息的数量为列数,创建该主题域对应的Excel表;将该主题域对应的待存储数据信息添加到所述Excel表中;将添加数据信息后的Excel表挂接在每个数据维度对应的节点处。
在一可能的示例中,在通过所述消息队列获取与所述数据获取请求对应的数据信息时,获取单元430,具体用于:将所述消息队列中的至少一个数据获取请求发送至所述ES数据库;从所述ES数据库中获取与所述至少一个数据获取请求对应的索引标识;从所述Oracle数据库中获取与所述索引标识对应的数据信息。
在一可能的示例中,在将所述至少一个数据获取请求加入消息队列之前,获取单元430,还用于获取所述至少一个数据获取请求对应的数据信息的访问量;
如所述访问量大于阈值,将所述至少一个数据获取请求加入消息队列。
在一可能的示例中,在将所述至少一个数据获取请求加入消息队列时,获取单元430,具体用于:获取所述至少一个数据获取请求中每个数据获取请求的数据标识;根据数据标识确定每个数据获取请求对应的待访问用户;获取对每个待访问用户的预设重要等级;按照预设重要等级的高低顺序依次将每个数据获取请求加入消息队列。
在一可能的示例中,在将所述至少一个数据获取请求加入消息队列时,获取单元430,具体用于:获取所述至少一个数据获取请求中每个数据获取请求的数据标识,所述数据标识至少包括一级数据标识和二级数据标识,其中,所述二级数据标识为所述一级数据标识的子数据标识;获取所述至少一个数据获取请求中一级数据标识相同的多个数据获取请求,将所述多个数据获取请求进行融合,得到至少一个第二树模型,其中,每个第二树模型的根节点与所述多个数据获取请求的一级数据标识对应、各个子节点与所述多个数据获取请求的多个二级数据标识对应;获取每个第二树模型的根节点对应的待访问用户;获取对每个待访问用户的预设重要等级;根据预设重要等级的高低顺序将每个第二树模型依次加入消息队列。
本申请实施例还提供一种计算机存储介质,其中,该计算机存储介质存储用于存储计算机程序,其中,该计算机程序被处理器执行,以实现如上述方法实施例中记载的任何一种数据管理方法的部分或全部步骤。
本申请实施例还提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序可操作来使计算机执行如上述方法实施例中记载的任何一种数据管理方法的部分或全部步骤。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。