海量数据表批量替换数据项值的方法、设备和存储介质技术

技术编号:37152306 阅读:15 留言:0更新日期:2023-04-06 22:09
本申请提供一种海量数据表批量替换数据项值的方法、设备和存储介质,所述方法包括将原数据表中的要被替换的数据项的原值取出,并将所述原值及其基于替换规则替换后的新值分别作为原主键值和对应的新主键值存入缓存中间件。将所述原数据表中的数据项值导入至分布式数据库中,利用各个Map任务,从各个分片中逐个读取原数据表中的要被替换的原值,再从所述缓存中间件中查询对应的新值,并将所述原值替换为新值以得到各个更新分片。利用各个Reduce任务,将各个更新分片中的数据插入SQL脚本,执行各个SQL脚本,以将各个更新分片中的数据插入到与所述原数据表结构相同的新数据表中。如此,能够降低替换海量数据的处理时间,提高替换效率。换效率。换效率。

【技术实现步骤摘要】
海量数据表批量替换数据项值的方法、设备和存储介质


[0001]本申请涉及数据处理
,具体涉及海量数据表批量替换数据项值的方法、设备和存储介质。

技术介绍

[0002]在数据处理过程中,经常会对数据表中的某些数据项进行批量替换。然而,现有的替换方法在对海量数据进行批量替换的过程中,耗时较长。比如,采用现有的替换方法对3000万个数据进行批量替换,耗时约60min,这明显降低了数据处理的效率。

技术实现思路

[0003]本申请提供一种海量数据表批量替换数据项值的方法、设备和存储介质,其能够降低对海量数据进行批量替换的处理时间,以实现快速、高效的对海量数据进行批量替换。
[0004]根据本申请的第一方案,提供一种海量数据表批量替换数据项值的方法,包括将原数据表中的要被替换的数据项的原值取出,并将所述原值及其基于替换规则替换后的新值分别作为原主键值和对应的新主键值存入缓存中间件;将所述原数据表中的数据项值导入至分布式数据库中,所述分布式数据库具有不低于第一阈值数量的分片;利用与各个分片对应的各个Map任务,从各个分片中逐个读取原数据表中的要被替换的原值,再以所述原值为原主键值从所述缓存中间件中查询对应的新主键值作为新值,并将所述原值替换为新值以得到各个更新分片;利用与各个更新分片对应的各个Reduce任务,将各个更新分片中的数据插入与各个更新分片对应的SQL脚本;执行各个SQL脚本,以将各个更新分片中的数据插入到与所述原数据表结构相同的新数据表中。
[0005]根据本申请的第二方案,提供一种海量数据表批量替换数据项值的设备,所述设备包括一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本申请各个实施例所述的海量数据表批量替换数据项值的方法。
[0006]根据本申请的第三方案,一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本申请各个实施例所述的海量数据表批量替换数据项值的方法。
[0007]与现有技术相比,本申请实施例的有益效果在于:
[0008]本申请通过使用缓存中间件、分布式数据库、MapReduce计算模型来对数据表中海量数据项值进行替换,相较于传统的使用程序根据替换规则直接对数据表进行替换操作,充分利用了高速缓存极快的查找速度、分布式存储并行的数据查找和处理能力,极大地提高了数据处理效率、降低了数据处理的时间成本。
[0009]上述的一般描述和以下的详细描述只是示例性和说明性的,并不旨在限制要求保护的专利技术。
附图说明
[0010]在不一定按比例绘制的附图中,相同的附图标记可以在不同的视图中描述相似的部件。具有字母后缀或不同字母后缀的类似附图标记可以表示相似组件的不同示例。附图通过举例而不是以限制的方式大体上示出各种实施例,并且与说明书以及权利要求书一起用于对所公开的实施例进行说明。这样的实施例是说明性和示例性的,而并非旨在作为本方法、装置、系统或具有用于实现该方法的指令的非暂时性计算机可读介质的穷尽或排他的实施例。
[0011]图1示出根据本申请实施例所述的海量数据表批量替换数据项值的方法的流程图。
[0012]图2示出根据本申请实施例将原值及其基于替换规则替换后的新值分别作为原主键值(key)和对应的新主键值(value)存入缓存中间件的示意图。
[0013]图3示出根据本申请实施例所述的海量数据表批量替换数据项值的一种实施方法。
具体实施方式
[0014]为使本领域技术人员更好的理解本申请的技术方案,下面结合附图和具体实施方式对本申请作详细说明。下面结合附图和具体实施例对本申请的实施例作进一步详细描述,但不作为对本申请的限定。
[0015]本申请中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分。“包括”或者“包含”等类似的词语意指在该词前的要素涵盖在该词后列举的要素,并不排除也涵盖其他要素的可能。本申请中结合附图所描述的方法中各个步骤的执行顺序并不作为限定。只要不影响各个步骤之间的逻辑关系,可以将数个步骤整合为单个步骤,可以将单个步骤分解为多个步骤,也可以按照具体需求调换各个步骤的执行次序。
[0016]图1示出根据本申请实施例所述的海量数据表批量替换数据项值的方法的流程图。所述方法始于步骤S101,将原数据表中的要被替换的数据项的原值取出,并将所述原值及其基于替换规则替换后的新值分别作为原主键值(key)和对应的新主键值(value)存入缓存中间件。所述缓存中间件包括但不限于Memcached、MongoDB、Redis(Remote Dictionary Server,远程数据服务),优选的,所述缓存中间件为Redis。其中,所述Redis是一个key

value存储系统,Redis的数据是存在内存的,读写速度非常快,每秒可以处理超过10万次读写操作。将原数据表中的要被替换的数据项的原值存入缓存中间件,充分利用缓存中间件的高速读写优势,以提高数据替换的效率。
[0017]具体地,如图2所示,需要把原表201中的有3000万条记录的员工表中的“部门dept”列的内容按照替换规则进行批量替换。在替换规则表202中,id表示在缓存中间件中存储的地址,每一个id对应一个键值对。原值列表示的是在原数据表中要被替换的数据项的原值,对应的新值列表示的是替换后的新值,比如,id为1001时,原主键值key与新主键值value构成一个键值对,表示原值dept01将要被替换成prod

sale

dept

01,在id为1002时,表示原值dept02将要被替换成prod

sale

dept

02,以此类推。按照替换规则表202,将原表201中各个要被替换的原值与替换后的新值分别作为原主键值key和新主键值value存入高
速缓存中间件203中。如高速缓存中间件203所示,Redis hash是一个键值对集合,Redis的Hash实际是内部存储的Value为一个HashMap,并提供了直接存取这个Map成员的接口,可以理解为,Key是用户ID,value是一个Map,这个Map的key是成员的属性名,value是属性值,这样对数据的修改和存取都可以直接通过其内部Map的Key(Redis里称内部Map的key为field),也就是通过key(用户ID)+field(属性标签)就可以操作对应属性数据了。基于高速缓存中间件203,可以快速、高效的直接查询到要被替换的原值将要被替换为哪个新值。
[0018]回到图1,在步骤S102中,将所述原数据表中的数据项值导入至分布式数据库中,所述分布式数据库具有不低于第一阈值数量的分片。其中,所述分布式数据库由多个独立实体组成,并且彼此通过网络继续互联。所述分布式本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种海量数据表批量替换数据项值的方法,其特征在于,包括:将原数据表中的要被替换的数据项的原值取出,并将所述原值及其基于替换规则替换后的新值分别作为原主键值和对应的新主键值存入缓存中间件;将所述原数据表中的数据项值导入至分布式数据库中,所述分布式数据库具有不低于第一阈值数量的分片;利用与各个分片对应的各个Map任务,从各个分片中逐个读取原数据表中的要被替换的原值,再以所述原值为原主键值从所述缓存中间件中查询对应的新主键值作为新值,并将所述原值替换为新值以得到各个更新分片;利用与各个更新分片对应的各个Reduce任务,将各个更新分片中的数据插入与各个更新分片对应的SQL脚本;执行各个SQL脚本,以将各个更新分片中的数据插入到与所述原数据表结构相同的新数据表中。2.根据权利要求1所述的方法,其特征在于,将原数据表中的要被替换的数据项的原值取出进一步包括:将具有相同数值的数据项的多个原值仅取出一次。3.根据权利要求1所述的方法,其特征在于,利用与各个更新分片对应的各个Reduce任务,将各个更新分片中的数据插入与各个更新分片对应的SQL脚本具体包括:在所述更新分片中替换了新值的数据组中数据的数量不小于第二阈值的情况下,利用对应的所述Reduce任务将所述替换了新值的数据组中的数据插入与各个更新分片对应的SQL脚本中。4.根据权利要求1或3所述的方法,其特征在于,利用与各个更新分片对应的各个Reduce任务,将各个更新分片中的数据插入与各个更新分片对应的SQ...

【专利技术属性】
技术研发人员:董明
申请(专利权)人:雄安智评云数字科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1