数据管理方法及相关产品与流程

文档序号:18464715发布日期:2019-08-17 02:21阅读:295来源:国知局
数据管理方法及相关产品与流程

本申请涉及电子技术领域,具体涉及一种数据管理方法及相关产品。



背景技术:

随着科学技术的飞速发展,网络源源不断的产生新的数据,当产生新数据后,需将一些重要数据存储,以备后续使用,目前,一般将数据存储到oracle数据库中进行保存,当后续需要使用该数据时,可以向oracle数据库发起数据获取请求,但是,当数据库存储的数据过多时,每次更新数据都需要遍历oracle数据库,查找待更新数据,导致数据的更新速度慢,而且频繁更新数据时,对数据库的访问次数多,导致数据库开销较大。

现有技术中,对的数据获取速度慢、更新方式单一、效率低、用户体验差。



技术实现要素:

本申请实施例提供了一种数据管理方法及相关产品,以期通过对数据更新请求进行融合,降低对数据库的访问次数,缩短数据的更新周期。

第一方面,本申请实施例提供一种数据管理方法,该方法包括:

接收数据存储请求,提取所述数据存储请求中的待存储数据信息,按照预设存储规则将所述待存储数据信息存储至oracle数据库;

接收至少一个数据更新请求,对所述至少一个数据更新请求进行融合,得到目标数据更新请求集;

将所述目标数据更新请求集发送至所述oracle数据库,根据所述目标数据更新请求集将所述oracle数据库中的待更新数据更新为目标数据信息。

第二方面,本申请实施例提供一种数据管理装置,该装置包括:

存储单元,用于接收数据存储请求,提取所述数据存储请求中的待存储数据信息,按照预设存储规则将所述待存储数据信息存储至oracle数据库;

融合单元,用于接收至少一个数据更新请求,对所述至少一个数据更新请求进行融合,得到目标数据更新请求集;

更新单元,用于将所述目标数据更新请求集发送至所述oracle数据库,根据所述目标数据更新请求集将所述oracle数据库中的待更新数据更新为目标数据信息。

第三方面,本申请实施例提供一种电子设备,包括处理器、存储器、通信接口以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置由所述处理器执行,所述程序包括用于执行如第一方面所述的方法中的步骤的指令。

第四方面,本申请实施例提供一种计算机可读存储介质,其存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行如第一方面所述的方法。

第五方面,本申请实施例提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机可操作来使计算机执行如第一方面所述的方法。

实施本申请实施例,具有如下有益效果:

可以看出,在本申请实施例中,在接收到多个数据更新请求时,先将数据更新请求进行融合,得到数据更新请求集,将该更新请求集发送到数据库,实现同步执行与该多个数据更新请求对应的待更新数据,减少了对数据库的访问次数,降低了数据库的访问开销,维持数据库的工作稳定。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1a为本申请实施例提供的一种数据管理的网络架构的示意图;

图1b为本申请实施例提供的一种数据管理方法的流程示意图;

图1c为本申请实施例提供的一种存储数据的示意图;

图1d为本申请实施例提供的一种融合数据获取请求的示意图;

图2为本申请实施例提供的另一种数据管理方法的流程示意图;

图3为本申请实施例提供的一种数据管理装置的结构示意图;

图4为本申请实施例提供的一种数据管理装置的功能单元组成框图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。

在本文中提及“实施例”意味着,结合实施例描述的特定特征、结果或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。

本申请中的数据管理装置可以包括智能手机(如android手机、ios手机、windowsphone手机等)、平板电脑、掌上电脑、笔记本电脑、移动互联网设备mid(mobileinternetdevices,简称:mid)或穿戴式设备等,上述电子设备仅是举例,而非穷举,包含但不限于上述电子设备,例如还可以包括:智能车载终端、计算机设备等等。

以下,对本申请中的部分用语进行解释说明,以便于本领域技术人员理解。

oracle数据库,一种关系型数据库,采用关系模型来组织数据的数据库,其关系模型指的就是二维表格模型,故oracle关系型数据库由二维表及其之间的联系所组成的一个数据组织;es数据库,一种非关系型数据库,存储理念以键值对存储,且结构不固定,每一个元组有不一样的字段,每个元组可以根据需要增加自己的键值对,不局限于固定的结构,减少时间和空间的开销;用户可以根据需求添加自己需要的字段。

优缺点比较:从非关系型数据库中获取数据信息时,不需像关系型数据库中获取数据时,需对多个表进行关联查询。仅需要根据id取出相应的value就可以查询数据信息,查询速度快。由于非关系型数据库存在很少的约束,很难提供像关系型数据库所提供的where这种对于字段属性值情况的查询,故只适合存储一些较为简单的数据,例如,存储索引标识;对于需要进行较复杂查询的数据、逻辑关系较复杂的数据信息,需要存放在关系型数据库。

首先,参阅图1a,图1a为本申请实施例提供的一种数据管理的网络架构的示意图,该网络架构包括:客户端10、数据管理装置20、消息队列30(可选的)、oracle数据库40和es数据库50(可选的),其中,当存在es数据库40,将oracle数据库30和es数据库40封装为一组件;

客户端10,用于向数据管理装置20发送数据获取请求,该数据获取请求中携带有待存储数据信息;

数据管理装置20,用于接收该数据存储请求,提取该数据存储请求中的待存储数据信息,按照预设存储规则将该待存储数据信息存储至oracle数据库40。

客户端10,还用于向数据管理装置20发送至少一个数据更新请求,该数据更新请求中携带待更新数据的更新标识;

数据管理装置20,还用于将所述目标数据更新请求集发送至所述oracle数据库,根据所述目标数据更新请求集将所述oracle数据库中的待更新数据更新为目标数据信息。其中,将该目标数据更新请求集发送至oracle数据库40可通过消息队列30进行发送,也可不通过消息队列30发送,本申请不做唯一限定。

数据管理装置20,还用于获取该待存储数据信息在该oracle数据库40中的索引标识,将该索引标识同步至es数据库50;以及用于在更新oracle数据库40中与该目标数据更新请求集对应的目标数据信息之后,将oracle数据库40发生更新的索引标识同步至es数据库50。

可以看出,在本申请实施例中,通过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、所述数据管理装置接收至少一个数据更新请求,对所述至少一个数据更新请求进行融合,得到目标数据更新请求集。

可选的,对所述至少一个数据更新请求进行融合,得到目标数据更新请求集的实现过程可以为:解析所述至少一个数据更新请求中每个数据更新请求,得到每个数据更新请求的更新标识,其中,所述更新标识包括一级更新标识和二级更新标识,所述二级更新标识为所述一级更新标识下的子更新标识;将一级更新标识相同的多个数据更新请求进行融合,得到与数据更新请求对应的至少一个第二树模型,其中,所述第二树模型的根节点为所述一级更新标识、子节点为所述多个数据更新请求的多个二级更新标识;将所述至少一个第二树模型组成目标数据更新请求集。

具体来讲,解析每个数据更新请求,确定每个数据更新的更新标识,即确定每个数据更新请求用于更新的目标数据,一般来讲,根据本申请中提供的数据存储方式,如定位到目标数据需获取两级索引标识(根节点和子节点对应的索引标识),所以,确定每个数据请求中的两级更新标识,当任意两个数据更新请求的一级更新标识相同时,确定该两个数据更新请求更新同一个客户的数据信息,故对一级标识相同的多个数据更新请求进行整合,得到该多个数据更新请求对应的第二树模型,将该第二数据模型作为一个目标数据更新请求,然后,获取该每个数据更新请求中的更新内容,将每个数据更新请求的更新内容存放在excel中,挂接在各自所在的第二树模型的子节点处,得到每个第二树模型对应的数据更新表。举例来说,如数据更新请求1,用于更新客户1的银行卡信息中的银行卡1的卡号,数据更新请求2,用于更新客户1的身份信息中的职业信息,故可将数据更新请求1和数据更新请求2进行整合,得到如图1d所示的第二树模型,然后,将待更新的银行卡1的卡号存放在excel中,挂接在子节点1处,将待更新的职业信息挂接在子节点2处。

进一步地,将该至少一个数据更新请求中的具有相同的一级更新标识的数据更新请求进行融合,得到至少一个第二树模型,将该至少一个第二树模型组成该目标数据更新求集。

步骤s103、所述数据管理装置将所述目标数据更新请求集发送至所述oracle数据库,根据所述目标数据更新请求集将所述oracle数据库中的待更新数据更新为目标数据信息。

在一可能的示例中,数据管理装置可直接将该目标数据更新请求集发送至该oracle数据库或者将该目标数据更新请求集加入消息队列,通过消息队列的方式将目标数据更新请求集发送给oracle数据库,当然,在将目标数据更新请求集加入消息队列之前,获取该目标数据更新请求集对应的待更新的数据信息的数量,当数量大于阈值时,将目标数据更新请求集加入消息队列,否则,直接将该目标数据更新请求集发送至该oracle数据库,以实现在批量更新数据信息时,通过消息队列的方式,只需与数据库建立一次数据访问链接,即可同步更新批量的数据信息,从而减少对数据库的访问开销,降低数据库的访问压力。

可选的,所述根据所述目标数据更新请求集将所述oracle数据库中的待更新数据更新为目标数据信息的实现过程可以为:遍历oracle数据库中已存储的第一树模型的所有根节点,查询与该目标数据更新请求集中每个目标数据更新请求的一级索引表标识对应的根节点,确定该根节点所在的第一树模型,将该第一树模型的节点上存储的excel表与该目标数据更新请求的节点上存储的数据更新表比对,确定两个树模型中对应的节点处挂接的数据信息表和数据更新表进行比对,得到比对结果,依据比对结果更新数据信息表的数据信息,具体包括增、删和/或改数据信息表中的数据。其中,对所述数据表中数据的增删改具体包括:遍历第二树模型的每个节点挂接的数据更新表中所要更新的数据项,确定第一树模型中与其对应的子节点处挂接的数据信息表中是否存在与对应的数据项,如存在对应的数据项,判断两者的数据项是否一致,如不一致,删除数据信息表所对应的数据项,将数据更新表中的数据信息添加至数据信息表的该数据项处,如一致,则保留数据表中所对应的数据项,如不存在对应的数据项,将该数据更新表中的数据信息作为新的数据添加至该数据信息表中;可以理解的是,如在该数据更新请求为删除指令时,在获取到数据信息表与数据更新表中对应的数据项后,直接删除该数据信息表中所对应的数据项,完成数据删除操作。

进一步地,如第二树模型的节点与第一树模型无对应的子节点时,则将该第二树模型的节点作为新的子节点添加至在该第一树模型,将该第二树模型的节点处挂接的数据更新表作为数据信息表,添加至第一树模型的一新的节点处。

可以看出,在本申请实施例中,在将数据存储到oracle数据库后,在接收到批量的数据更新请求时,将数据更新请求进行融合,将多个数据更新请求融合为一个目标数据更新请求,然后,在oracle数据库执行与该一个目标数据更新请求对应的更新操作,实现同步执行多个更新请求的更新操作,仅需对数据库进行一次访问,即可完成更新过程,减少了对数据库的访问次数,维持数据库工作的稳定性。

在一可能的示例中,所述根据所述目标数据更新请求集将所述oracle数据库中的待更新数据更新为目标数据信息的实现过程可以为:确定oracle数据库服务器的工作状态,在未接收到所述oracle数据库服务器反馈的更新成功的确认响应时,根据所述目标数据更新请求集建立数据信息更新列表,将所述数据信息更新列表加入redis缓存;在从所述oracle数据库中获取数据信息时,将获取到的数据信息与所述redis缓存中已缓存的数据信息更新列表进行比对;如确定所述获取到的数据信息中存在待更新的数据信息,根据所述数据信息更新列表更新所述待更新数据信息,得到目标数据信息;将所述目标数据信息发送至用户终端。

可以看出,本示例中引入redis缓存机制,从而实现在oracle数据库异常时,将更新列表加入该redis缓存中,实现对数据的热更新,保证数据更新的正确率,解决了由于数据库下线导致数据获取失败的问题。

在一可能的示例中,在所述在按照预设存储规则将所述待存储数据信息存储至所述oracle数据库所述方法之后,所述方法还包括:

所述数据管理装置获取所述待存储数据信息在所述oracle数据库中的索引标识,将所述索引标识同步至所述es数据库。

在上述可能的示例中,在根据所述目标数据更新请求集将所述oracle数据库中的待更新数据更新为目标数据信息之后,所述方法还包括:确定是否更新所述oracle数据库中的索引标识;如是,将所述oracle数据库中发生更新的索引标识同步至所述es数据库。可以理解的是,确定是否更新所述oracle数据库中的索引标识的标准为:检测所述oracle数据库中已存储的第一树模型上是否增加子节点或者或者增加新的第一树模型,也就是说,当在oracle数据库中无法查询到与一级更新标识对应的根节点或者与二级索引标识对应的二级更新标识时,确定该oracle数据库中的索引标识发生更新。

在上述可能的示例中,将oracle数据库中存储数据信息的索引标识同步至es数据库中保存,其同步过程可以为:获取已存储数据信息在oracle数据库中每个树模型的节点的索引标识,即获取每个树模型的节点存储的excel表的主键信息,将该主键信息作为每个节点的索引标识,得到存储该已存储数据信息在oracle数据库中的索引标识;然后,将每个节点的索引标识存储在对应的节点处,以每个节点的索引标识构建与索引标识对应的第二树模型,如图1c所示,将与索引标识对应的树模型同步至es数据库。故在将第二树模型同步至es数据库后,根据所述目标数据更新请求集将所述oracle数据库中的待更新数据更新为目标数据信息具体包括:遍历es数据库已存储的所有第二树模型的根节点,确定与一级更新标识对应的第一根节点存在时,将该第一根节点挂接(存储)的索引标识作为一级索引标识,然后,遍历第一根节点所在的第二树模型的所有子节点,确定与二级更新标识对应的第一子节点存在时,读取第一根节点处挂接(存储)的索引标识,将该索引标识作为二级索引标识,将该一级索引标识和二级索引标识组合,得到与该数据更新请求对应的索引标识;然后,将获取到的索引标识发送给oracle数据库,确定oracle数据库中与一级索引标识对应的第一树模型,确定该第一树模型中与二级索引标识对应的子节点,提取该子节点处存储的excel表,将该excel表与数据更新请求对应的数据更新表进行比对,更新oracle数据库与该数据更新请求对应的目标数据信息。可以看出,在本示例中,通过oracle数据库和es数据库的协同作用,提高查询到待更新数据的速度,提高更新数据的效率。当然,如该es数据库不存在与一级更新标识或者与二级索引标识对应的索引标识时,需将目标更新请求集转发至oracle数据库进行数据更新。

在一可能的示例中,在将存储数据信息后的树模型存储至所述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的整数。

进一步地,在对oracle数据库存储的数据信息进行分层存储后,将oracle数据库中已存储数据信息的索引标识同步至es数据库的实现过程可以为:获取每个节点的excel表的主键信息,将该主键信息作为每个节点的索引标识,然后,将每个节点的索引标识存储在对应的节点处,以每个节点的索引标识构建与索引标识对应的第三树模型,并将第三树模型按照oracle数据库分层存储数据信息的方式将第三树模型上的索引标识分层存储,将分层存储后的第三树模型同步至es数据库。

故更新oracle数据库中与目标数据更新请求集对应的目标数据信息的实现过程可以为:遍历oracle数据库根节点的数据存储层中存储的所有根节点,查询与一级更新标识对应的根节点,在二级更新标识所在的数据存储层中查询与二级更新标识对应的子节点,获取该子节点存储的excel表,基于该目标数据更新请求集更新该excel表中的目标数据信息。故通过分层存储,在从oracle数据库更新数据时,无需遍历oracle数据库,只需在相应的存储层中查询与数据获取请求对应的数据信息,从而实现快速更新数据,提高了数据的更新速度。

同理,如将oracle数据库中的索引标识同步至es数据库,可在相应的数据存储层查询与一级更新标识对应的一级索引标识一级与二级更新标识对应的二级索引标识,具体可参见上述过程,故通过oracle数据库和es数据库的协同作用进一步提高数据的更新速度。

参阅图2,图2为本申请实施例提供的另一种数据管理方法的流程示意图,该方法应用于数据管理系统,该数据管理系统包括数据管理装置以及oracle数据库和es数据库的封装组件,该方法包括如步骤s201~s207中所示的内容:

步骤s201、所述数据管理装置接收数据存储请求,提取所述数据存储请求中的待存储数据信息,按照预设存储规则将所述待存储数据信息存储至所述oracle数据库。

步骤s202、所述数据管理装置获取所述待存储数据信息在所述oracle数据库中的索引标识,将所述索引标识同步至所述es数据库。

步骤s203、所述数据管理装置接收至少一个数据更新请求,对所述至少一个数据更新请求进行融合,得到目标数据更新请求集。

步骤s204、所述数据管理装置将所述目标数据更新请求集发送至所述es数据库,以从所述es数据库获取与所述目标数据更新请求集对应的索引标识。

步骤s205、在从所述es数据库获取到与所述目标数据更新请求集对应的索引标识的情况下,所述数据管理装置通过所述索引标识从所述oracle数据库中获取与所述目标数据更新请求集对应的待更新数据信息,将所述待更新数据信息更新为目标数据信息。

步骤s206、在从所述es数据库未获取到与所述目标数据更新请求集对应的索引标识的情况下,所述数据管理装置将所述目标数据更新请求集发送至所述oracle数据库,根据所述目标数据更新请求集将所述oracle数据库中的待更新数据更新为目标数据信息。

步骤s207、所述数据管理装置获取所述oracle数据库发生更新的索引标识,将该索引标识同步至所述es数据库。

需要说明的是,图2所示的方法的各个步骤的具体实现过程可参见上述图1b所述方法的具体实现过程,在此不再叙述。

可以看出,在本申请实施例中,在将数据存储到oracle数据库后,在接收到批量的数据更新请求时,将数据更新请求进行融合,将多个数据更新请求融合为一个目标数据更新请求,然后,在oracle数据库执行与该一个目标数据更新请求对应的更新操作,实现同步执行多个更新请求的更新操作,仅需对数据库进行一次访问,即可完成更新过程,减少了对数据库的访问次数,维持数据库工作的稳定性;另外,在执行更新操作时,充分利用oracle数据库和es数据库存储数据的特点,从es数据库中快速获取到索引标识,从而进一步地提高数据获取速度。

与上述图1b、图2所示的实施例一致的,请参阅图3,图3为本申请实施例提供的一种数据管理装置300的结构示意图,该数据管理装置300包括处理器、存储器、通信接口以及一个或多个程序,其中,上述一个或多个程序不同于上述一个或多个应用程序,且上述一个或多个程序被存储在上述存储器中,并且被配置由上述处理器执行,上述程序包括用于执行以下步骤的指令:

接收数据存储请求,提取所述数据存储请求中的待存储数据信息,按照预设存储规则将所述待存储数据信息存储至oracle数据库;

接收至少一个数据更新请求,对所述至少一个数据更新请求进行融合,得到目标数据更新请求集;

将所述目标数据更新请求集发送至所述oracle数据库,根据所述目标数据更新请求集将所述oracle数据库中的待更新数据更新为目标数据信息。

在一可能的示例中,在按照预设存储规则将所述待存储数据信息存储至oracle数据库时,上述程序具体用于执行以下步骤的指令:

对所述待存储数据信息中的各项数据信息进行关键词识别,确定每项数据信息对应的关键词集群;

将属于同一关键词集群的数据信息划分到同一数据维度,得到多个数据维度;

获取所述多个数据维度中每个数据维度相对于所述待存储数据信息的重要等级;

将重要等级最高的数据维度作为根节点,将所述多个数据维度中除重要等级最高的数据维度之外的其他数据维度作为子节点创建第一树模型;

将所述多个数据维度各自对应的待存储数据信息存储在对应的节点上,其中,所述节点包括所述多叉树模型的根节点和子节点;

将存储数据信息后的第一树模型存储至oracle数据库。

在一可能的示例中,在将所述多个数据维度各自对应的待存储数据信息存储在对应的节点上时,上述程序具体用于执行以下步骤的指令:

确定所述多个数据维度中每个数据维度对应的主题域;

获取该主题域中主题数量;

获取该主题域中每个主题对应的待存储数据信息的数量,确定该主题域中待存数据信息的数量最多的第一主题;

以所述主题数量为行数,以所述第一主题对应的待存储数据信息的数量作为列数,创建该主题域对应的excel表;

将该主题域对应的待存储数据信息添加到所述excel表中;

将添加数据信息后的excel表挂接在每个数据维度对应的节点处。

在一可能的示例中,在对所述至少一个数据更新请求进行融合,得到目标数据更新请求集时,上述程序具体用于执行以下步骤的指令:

解析所述至少一个数据更新请求中每个数据更新请求,得到每个数据更新请求的更新标识,其中,所述更新标识包括一级更新标识和二级更新标识,所述二级更新标识为所述一级更新标识下的子更新标识;

将一级更新标识相同的多个数据更新请求进行融合,得到与数据更新请求对应的至少一个第二树模型,其中,所述第二树模型的根节点为所述一级更新标识、子节点为所述多个数据更新请求的多个二级更新标识;

将所述至少一个第二树模型组成目标数据更新请求集。

在一可能的示例中,在按照预设存储规则将所述待存储数据信息存储至所述oracle数据库所述方法之后,上述程序还用于执行以下步骤的指令:

获取所述待存储数据信息在所述oracle数据库中的索引标识,将所述索引标识同步至所述es数据库;在根据所述目标数据更新请求集将所述oracle数据库中的待更新数据更新为目标数据信息之后,上述程序还用于执行以下步骤的指令:确定是否更新所述oracle数据库中的索引标识;如是,将所述oracle数据库中发生更新的索引标识同步至所述es数据库。

在一可能的示例中,在将所述目标数据更新请求集发送至所述oracle数据库时,上述程序具体用于执行以下步骤的指令:

将所述目标更新集加入消息队列;

通过所述消息队列将所述目标更新集发送至所述oracle数据库。

在一可能的示例中,在根据所述目标数据更新请求集将所述oracle数据库中的待更新数据更新为目标数据信息时,上述程序具体用于执行以下步骤的指令:

确定oracle数据库服务器的工作状态,在未接收到所述oracle数据库服务器反馈的更新成功的确认响应时,根据所述目标数据更新请求集建立数据信息更新列表,将所述数据信息更新列表加入redis缓存;

在从所述oracle数据库中获取数据信息时,将获取到的数据信息与所述redis缓存中已缓存的数据信息更新列表进行比对;

如确定所述获取到的数据信息中存在待更新的数据信息,根据所述数据信息更新列表更新所述待更新数据信息,得到更新后的目标数据信息;

将所述目标数据信息发送至所述用户终端。

参阅图4,图4示出了上述实施例中所涉及的数据管理装置400的一种可能的功能单元组成框图,数据管理装置400包括:存储单元410、融合单元420和更新单元430;

存储单元410,用于接收数据存储请求,提取所述数据存储请求中的待存储数据信息,按照预设存储规则将所述待存储数据信息存储至oracle数据库;

融合单元420,用于接收至少一个数据更新请求,对所述至少一个数据更新请求进行融合,得到目标数据更新请求集;

更新单元430,用于将所述目标数据更新请求集发送至所述oracle数据库,根据所述目标数据更新请求集将所述oracle数据库中的待更新数据更新为目标数据信息。

在一可能的示例中,在按照预设存储规则将所述待存储数据信息存储至oracle数据库时,存储单元410,具体用于:对所述待存储数据信息中的各项数据信息进行关键词识别,确定每项数据信息对应的关键词集群;将属于同一关键词集群的数据信息划分到同一数据维度,得到多个数据维度;获取所述多个数据维度中每个数据维度相对于所述待存储数据信息的重要等级;将重要等级最高的数据维度作为根节点,将所述多个数据维度中除重要等级最高的数据维度之外的其他数据维度作为子节点创建第一树模型;将所述多个数据维度各自对应的待存储数据信息存储在对应的节点上,其中,所述节点包括所述多叉树模型的根节点和子节点;将存储数据信息后的第一树模型存储至oracle数据库。

在一可能的示例中,在将所述多个数据维度各自对应的待存储数据信息存储在对应的节点上时,存储单元410,具体用于:确定所述多个数据维度中每个数据维度对应的主题域;获取该主题域中主题数量;获取该主题域中每个主题对应的待存储数据信息的数量,确定该主题域中待存数据信息的数量最多的第一主题;以所述主题数量为行数,以所述第一主题对应的待存储数据信息的数量作为列数,创建该主题域对应的excel表;将该主题域对应的待存储数据信息添加到所述excel表中;将添加数据信息后的excel表挂接在每个数据维度对应的节点处。

在一可能的示例中,在对所述至少一个数据更新请求进行融合,得到目标数据更新请求集时,融合单元410,具体用于:解析所述至少一个数据更新请求中每个数据更新请求,得到每个数据更新请求的更新标识,其中,所述更新标识包括一级更新标识和二级更新标识,所述二级更新标识为所述一级更新标识下的子更新标识;将一级更新标识相同的多个数据更新请求进行融合,得到与数据更新请求对应的至少一个第二树模型,其中,所述第二树模型的根节点为所述一级更新标识、子节点为所述多个数据更新请求的多个二级更新标识;将所述至少一个第二树模型组成目标数据更新请求集。

在一可能的示例中,数据管理装置400,还包括同步单元440;

在按照预设存储规则将所述待存储数据信息存储至所述oracle数据库所述方法之后,同步单元440,用于获取所述待存储数据信息在所述oracle数据库中的索引标识,将所述索引标识同步至所述es数据库;在根据所述目标数据更新请求集将所述oracle数据库中的待更新数据更新为目标数据信息之后,同步单元440,还用于确定是否更新所述oracle数据库中的索引标识;如是,将所述oracle数据库中发生更新的索引标识同步至所述es数据库。

在一可能的示例中,在将所述目标数据更新请求集发送至所述oracle数据库时,更新单元430,具体用于:将所述目标更新集加入消息队列;通过所述消息队列将所述目标更新集发送至所述oracle数据库。

在一可能的示例中,在根据所述目标数据更新请求集将所述oracle数据库中的待更新数据更新为目标数据信息时,更新单元430,具体用于:确定oracle数据库服务器的工作状态,在未接收到所述oracle数据库服务器反馈的更新成功的确认响应时,根据所述目标数据更新请求集建立数据信息更新列表,将所述数据信息更新列表加入redis缓存;在从所述oracle数据库中获取数据信息时,将获取到的数据信息与所述redis缓存中已缓存的数据信息更新列表进行比对;如确定所述获取到的数据信息中存在待更新的数据信息,根据所述数据信息更新列表更新所述待更新数据信息,得到更新后的目标数据信息;将所述目标数据信息发送至所述用户终端。

本申请实施例还提供一种计算机存储介质,其中,该计算机存储介质存储用于存储计算机程序,其中,该计算机程序被处理器执行,以实现如上述方法实施例中记载的任何一种数据管理方法的部分或全部步骤。

本申请实施例还提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序可操作来使计算机执行如上述方法实施例中记载的任何一种数据管理方法的部分或全部步骤。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本申请所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。

所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:read-onlymemory,简称:rom)、随机存取器(英文:randomaccessmemory,简称:ram)、磁盘或光盘等。

以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1