CN111061712A - 一种数据连接操作的处理方法及装置 - Google Patents
一种数据连接操作的处理方法及装置 Download PDFInfo
- Publication number
- CN111061712A CN111061712A CN201911210685.1A CN201911210685A CN111061712A CN 111061712 A CN111061712 A CN 111061712A CN 201911210685 A CN201911210685 A CN 201911210685A CN 111061712 A CN111061712 A CN 111061712A
- Authority
- CN
- China
- Prior art keywords
- data
- data set
- target
- keys
- key
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims description 12
- 238000012545 processing Methods 0.000 claims abstract description 33
- 238000000034 method Methods 0.000 claims abstract description 22
- 238000012216 screening Methods 0.000 claims abstract description 13
- 238000013507 mapping Methods 0.000 claims abstract description 9
- 238000005070 sampling Methods 0.000 claims description 21
- 238000013506 data mapping Methods 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 abstract description 8
- 230000008569 process Effects 0.000 description 5
- 238000007405 data analysis Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Input From Keyboards Or The Like (AREA)
Abstract
本发明公开了一种数据连接操作的处理方法及装置,该方法包括:从第一数据集中筛选出现次数大于第一预设阈值的备选key;根据备选key的数量从第一数据集的所有key中确定目标key;将第二数据集中与目标key对应的每一数据映射为N条数据,并在第一数据集以及映射后的第二数据集中确定目标key对应的每条目标数据;将预设的N个数值中的任一个与每条目标数据的key进行拼接作为目标数据的新的key;根据新的key将第一数据集与第二数据集中的每条目标数据进行连接,获取连接结果数据集。本发明对第一数据集中目标key对应的数据量进行稀释以及对第二数据集进行扩容,减少了计算时单个key对应的数据量,防止产生数据倾斜问题,提升了处理速度,保证系统及时快速响应。
Description
技术领域
本发明涉及大数据的数据处理技术领域,特别涉及一种数据连接操作的处理方法及装置。
背景技术
数据倾斜是在大数据处理时经常遇到的问题,数据倾斜是指在计算数据的时候,数据的分散度不够,导致大量的数据集中到了一台或者几台机器上计算,这些数据的计算速度远远低于平均计算速度,导致整个计算过程过慢。以(key, value)类型数据为例,假设现在要用spark处理90万条的数据,其中第一个key对应的数据有5万条,第二个key对应的数据有4万条,第三个key对应的数据有 81万条。这些数据在spark task去处理的时候,会导致前两个key很快会处理完,而第三个key却要很久才能处理完,这个时候就是发生数据倾斜了。
综上所述,如何能够避免在进行大数据处理时产生数据倾斜问题,成为亟需要本领域技术人员解决的技术问题。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种数据连接操作的处理方法及装置,以克服现有技术中当一个数据量大的数据集与另外一个相对来说数据量小的数据集进行连接操作时,容易产生的数据倾斜等问题。
为解决上述一个或多个技术问题,本发明采用的技术方案是:
一方面,提供了一种数据连接操作的处理方法,该方法包括如下步骤:
从第一数据集中筛选出现次数大于第一预设阈值的备选key,其中,所述第一数据集的数据量大于第二数据集,所述数据集中每条数据对应一个key;
根据所述备选key的数量从所述第一数据集的所有key中确定目标key,所述目标key至少包括所述备选key;
将所述第二数据集中与所述目标key对应的每一数据映射为N条数据,并在所述第一数据集以及映射后的所述第二数据集中确定所述目标key对应的每条目标数据,所述N为正整数;
将预设的N个数值中的任一个与所述每条目标数据的key进行拼接作为所述目标数据的新的key;
根据所述新的key将所述第一数据集与所述第二数据集中的每条目标数据进行连接,获取连接结果数据集。
进一步的,所述根据所述备选key的数量从所述第一数据集的所有key中获取目标key包括:
将所述备选key的数量与第二预设阈值进行比较,若所述备选key数量小于所述第二预设阈值,则将所述备选key作为目标key,否则,将所述第一待连接数据集的所有key作为目标key。
进一步的,所述从第一数据集中筛选出现次数大于第一预设阈值的备选key 包括:
对所述第一数据集进行采样处理,获取采样数据;
统计所述采样数据中每个key的出现次数;
将所述出现次数与第一预设阈值进行比较,获取出现次数大于所述第一预设阈值的备选key。
进一步的,将第一数据集中的所有key作为目标key时,利用预设的flatmap 算法将所述第二数据集中与所述目标key对应的每一数据映射为N条数据以及将预设的N个数值中的任一个与所述每条目标数据的key进行拼接作为所述目标数据的新的key。
进一步的,所述方法还包括:
利用预设的map算法将所述连接结果数据集中每一数据对应的key上拼接的数值去除,获取最终的连接结果数据集。
另一方面,提供了一种数据连接操作的处理装置,所述装置包括:
备选key获取模块,用于从第一数据集中筛选出现次数大于第一预设阈值的备选key,其中,所述第一数据集的数据量大于第二数据集,所述数据集中每条数据对应一个key;
目标key获取模块,用于根据所述备选key的数量从所述第一数据集的所有 key中确定目标key,所述目标key至少包括所述备选key;
数据映射模块,用于将所述第二数据集中与所述目标key对应的每一数据映射为N条数据;
数据获取模块,用于在所述第一数据集以及映射后的所述第二数据集中确定所述目标key对应的每条目标数据,所述N为正整数;
key生成模块,用于将预设的N个数值中的任一个与所述每条目标数据的 key进行拼接作为所述目标数据的新的key;
数据连接模块,用于根据所述新的key将所述第一数据集与所述第二数据集中的每条目标数据进行连接,获取连接结果数据集。
进一步的,所述目标key获取模块包括:
第一比较单元,用于将所述备选key的数量与第二预设阈值进行比较;
目标key获取单元,用于若所述备选key数量小于所述第二预设阈值,则将所述备选key作为目标key,否则,将所述第一待连接数据集的所有key作为目标key。
进一步的,所述备选key获取模块包括:
数据采样单元,用于对所述第一数据集进行采样处理,获取采样数据;
次数统计单元,用于统计所述采样数据中每个key的出现次数;
第二比较单元,用于将所述出现次数与第一预设阈值进行比较,获取出现次数大于所述第一预设阈值的备选key。
进一步的,所述数据映射模块具体用于利用预设的flatmap算法将所述第二数据集中与所述目标key对应的每一数据映射为N条数据;
所述key生成模块具体用于利用预设的flatmap算法将预设的N个数值中的任一个与所述每条目标数据的key进行拼接作为所述目标数据的新的key。
进一步的,所述装置还包括:
数值去除模块,用于利用预设的map算法将所述连接结果数据集中每一数据对应的key上拼接的数值去除,获取最终的连接结果数据集。
本发明实施例提供的技术方案带来的有益效果是:
1、本发明实施例提供的数据连接操作的处理方法及装置,通过将第二数据集中与目标key对应的每一数据映射为N条数据,并在第一数据集以及映射后的第二数据集中确定目标key对应的每条目标数据,将预设的N个数值中的任一个与每条目标数据的key进行拼接作为目标数据的新的key,从而实现对第一数据集中目标key对应的数据量进行稀释以及对第二数据集进行扩容,减少了第一数据集与第二数据集进行关联时单个key对应的数据量,防止产生数据倾斜问题,提升大数据量的处理速度,保证系统及时快速响应;
2、本发明实施例提供的数据连接操作的处理方法及装置,通过根据备选key 的数量从第一数据集的所有key中确定目标key,具体实施时将备选key的数量与第二预设阈值进行比较,若备选key数量小于第二预设阈值,则将备选key 作为目标key,否则,将第一待连接数据集的所有key作为目标key,实现了将第一数据集的存在少量key对应的数据量大或者存在大量key对应的数据量大这两种情况分别进行处理,提升处理效率。
当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据一示例性实施例示出的数据连接操作的处理方法的流程图;
图2是根据一示例性实施例示出的从第一数据集中筛选出现次数大于第一预设阈值的备选key的流程图;
图3是根据一示例性实施例示出的数据连接操作的处理装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了便于理解本申请实施例提供的具体实现方案,下面对实际应用中的一些可能导致数据倾斜问题的应用场景进行说明。
场景一:商品销售数据的离线计算,如将商品销售数据与商品维表数据进行连接获取商品属性。假设现在要处理一批商品销售数据,其中某些商品(如爆款商品)的销量较大,则其对应的销售数据量就相对较大(如几十万条),而某些商品的销量较小,其对应的销售数据量就相对较小(如几千条),在后续将商品销售数据与商品维表数据进行关联的时候,会导致数据量较小的商品销售数据很快会处理完,而数据量较大的商品销售数据却要很久才能处理完,这个时候就是发生数据倾斜了,会引起计算时间过长,从而导致任务延迟,以致整个数据链路阻塞延迟等。
在实际应用中,还存在其他具体类似的场景,如网站的流量数据分析、用户的行为数据分析等,总之,无论是由于商品销售数据关联商品维表数据,还是出于网站的流量数据分析、用户的行为数据分析等,都不可避免的会发生同一问题,即数据倾斜问题。
本申请实施例中就是针对上述情况,提供了相应的改进方案。在该方案中通过从第一数据集中筛选出现次数大于第一预设阈值的备选key,根据备选key 的数量从第一数据集的所有key中确定目标key,然后将第二数据集中与所述目标key对应的每一数据映射为N条数据,并在第一数据集以及映射后的第二数据集中确定目标key对应的每条目标数据,将预设的N个数值中的任一个与每条目标数据的key进行拼接作为目标数据的新的key,最后根据新的key将所述第一数据集与第二数据集中的每条目标数据进行连接,获取连接结果数据集,从而实现对第一数据集中目标key对应的数据量进行稀释以及对第二数据集进行扩容,减少了第一数据集与第二数据集进行关联时单个key对应的数据量,防止产生数据倾斜问题,提升大数据量的处理速度,保证系统及时快速响应。
下面对本申请实施例提供的具体实现方案进行详细介绍。
首先该实施例中以基于Spark RDD进行连接(join)计算为例,来对本申请提供的数据连接操作的处理方法进行阐述。其中Spark是一个实现快速通用的集群计算平台,RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是 Spark中最基本的数据抽象,它代表1个不可变、可分区、里面的元素可并行计算的集合。RDD具有数据流模型的特点:自动容错、位置感知性调度和可伸缩性。RDD允许用户在执行多个查询时显式地将工作集缓存在内存中,后续的查询能够重用工作集,这极大地提升了查询速度。
图1是根据一示例性实施例示出的数据连接操作的处理方法的流程图,参照图1所示,该方法包括如下步骤:
S1:从第一数据集中筛选出现次数大于第一预设阈值的备选key,其中,所述第一数据集的数据量大于第二数据集,所述数据集中每条数据对应一个key。
具体的,本发明实施例中,数据集中的数据为键值对(即(key,value)) 类型的数据,即数据集中每条数据均对应一个key。待进行连接操作(如join) 的两个数据集分别为第一数据集(rdd1)和第二数据集(rdd2),其中,第一数据集的数据量大于第二数据集,即第一数据集(rdd1)为数据量大的数据集。
首先,在对待进行连接操作的数据集(包括第一数据集和第二数据集)进行后续处理前,需要先确定第一数据集中的数据是否会在后续进行连接操作时容易产生数据倾斜问题,而由于当数据集中单个key对应的数据量过大时,才会在后续进行连接操作时容易产生数据倾斜问题,因此,本发明实施例中,可以预先设置一个第一预设阈值(如50万),根据该第一预设阈值判定第一数据集中是否存在容易导致数据倾斜问题的key(即备选key),当某个key在第一数据集中的出现次数大于该第一预设阈值时,则将该key确定为备选key。当第一数据集中不存在出现次数大于第一预设阈值的key时,则认为不会产生数据倾斜问题,因此可以直接结束流程,不做进一步处理。这里需要说明的是,本发明实施例中,不对第一预设阈值的具体数据做限定,用户可以根据实际需求进行设置。
S2:根据所述备选key的数量从所述第一数据集的所有key中确定目标key,所述目标key至少包括所述备选key。
具体的,在确定好备选key后,还需要根据备选key的数量来确定目标key 包括哪些key,其中目标key为从第一数据集的所有key中的部分或全部key,并且由于备选key对应的数据量较大,因此目标key至少包括备选key。
S3:将所述第二数据集中与所述目标key对应的每一数据映射为N条数据,并在所述第一数据集以及映射后的所述第二数据集中确定所述目标key对应的每条目标数据,所述N为正整数。
具体的,本发明实施例中,一方面,需要降低第一数据集中目标key对应的数据量,另一方面需要对第二数据集进行扩容处理。具体实施时,一方面需要确定第一数据集中与目标key对应的目标数据,另一方面,首先从第二数据集中筛选出与目标key对应的每一数据,然后将筛选出的每一条数据均映射为N 条数据,实现第二数据集的扩容,再从映射后的第二数据集中确定出与目标key 对应的每条目标数据。其中,上述N为正整数,用户可以根据实际需求设置N 的具体数值,如10、100、1000等,对此不做限制。
S4:将预设的N个数值中的任一个与所述每条目标数据的key进行拼接作为所述目标数据的新的key。
具体的,预先设置N个均为正整数的数值,作为一种示例,N个数值可以是100以内的连续正整数,如0至99。然后一方面需要将这N个数值中的任一个与第一数据集中筛选出的每条目标数据的key进行拼接,生成新的key,并使用该新的key替换对应目标数据的原来的key,从而使第一数据集中单个key(这里指新的key)对应的数据量减少。另一方面,需要将这N个数值中的任一个与映射后的第二数据集中筛选出的每条目标数据的key进行拼接,生成新的key,并使用新的key替换对应目标数据的原来的key,使扩容后的第二数据集与第一数据集的对应关系与扩容前的第二数据集与第一数据集的对应关系保持一致。
S5:根据所述新的key将所述第一数据集与所述第二数据集中的每条目标数据进行连接,获取连接结果数据集。
作为一种较优的实施方式,本发明实施例中,所述根据所述备选key的数量从所述第一数据集的所有key中获取目标key包括:
将所述备选key的数量与第二预设阈值进行比较,若所述备选key数量小于所述第二预设阈值,则将所述备选key作为目标key,否则,将所述第一待连接数据集的所有key作为目标key。
具体的,本发明实施例中,将第一数据集中存在少量key(即备选key)对应的数据量大和存在大量key对应的数据量大这两种情况分不同的处理方式进行处理。因而,会预先设置一个第二预设阈值,然后将备选key的数量与第二预设阈值进行比较,如果备选key数量小于第二预设阈值,则将备选key作为目标key,即后续只对备选key(对应的数据量大的key)对应的数据进行相关操作,如果备选key数量大于或等于第二预设阈值,则将第一待连接数据集的所有key作为目标key,即后续对整个数据集(包括第一数据集和第二数据集)的数据进行相关操作。
图2是根据一示例性实施例示出的从第一数据集中筛选出现次数大于第一预设阈值的备选key的流程图,参照图2所示,作为一种较优的实施方式,本发明实施例中,所述从第一数据集中筛选出现次数大于第一预设阈值的备选key 包括:
S101:对所述第一数据集进行采样处理,获取采样数据。
具体的,为了减轻系统的工作量,本发明实施例中,设置先对第一数据集进行采样处理,获取采样数据,如从第一数据集中采样出10%的数据作为采样数据。这里的10%只是一种示例,不对本发明构成限制,具体采样的数量用户可以根据实际需求进行设置。
S102:统计所述采样数据中每个key的出现次数。
具体的,对采样数据中每个key的出现次数进行统计,获取每个key的出现次数。
S103:将所述出现次数与第一预设阈值进行比较,获取出现次数大于所述第一预设阈值的备选key。
具体的,最后将每个key的出现次数分别与第一预设阈值进行比较,筛选出现次数大于该第一预设阈值的所有key,将这些key作为备选key。
作为一种较优的实施方式,本发明实施例中,将第一数据集中的所有key 作为目标key时,利用预设的flatmap算法将所述第二数据集中与所述目标key 对应的每一数据映射为N条数据以及将预设的N个数值中的任一个与所述每条目标数据的key进行拼接作为所述目标数据的新的key。
具体的,将第一数据集中的所有key作为目标key时,此时需要对整个数据集(包括第一数据集和第二数据集)的数据进行相关处理。此时,可以利用预设的flatmap算法将第二数据集中与目标key对应的每一数据(即第二数据集中的每一数据)映射为N条数据,如将每条数据映射为10条或者100条数据等。由于flatmap算法的本身的特性,会相应的将映射出来的每条数据的key(这里即为目标key)都拼接了一个N以内的随机数值。
与此相对应的,还可以利用预设的map算法将第一数据集中与目标key对应的每一数据(即第一数据集中的每一数据)映射为单条数据。同时由于map 算法的本身的特性,会相应的将映射出来的每条数据的key(这里即为目标key) 都拼接了一个N以内的随机数值。
作为一种较优的实施方式,本发明实施例中,所述方法还包括:
利用预设的map算法将所述连接结果数据集中每一数据对应的key上拼接的数值去除,获取最终的连接结果数据集。
具体的,当将第一数据集中的所有key作为目标key时,在根据新的key 将第一数据集与第二数据集中的每条目标数据进行连接,获取连接结果数据集后,同样还可以利用预设的map算法将连接结果数据集中每一数据映射为单条数据,同时将映射后的每条数据对应的key上拼接的数值去除,获取最终的连接结果数据集。
作为一种较优的实施方式,本发明实施例中,当将备选key作为目标key 时,将所述第二数据集中与所述目标key对应的每一数据映射为N条数据,并在所述第一数据集以及映射后的所述第二数据集中确定所述目标key对应的每条目标数据,将预设的N个数值中的任一个与所述每条目标数据的key进行拼接作为所述目标数据的新的key包括:
根据目标key将第一数据集和第二数据集分别拆分为两个数据集。具体实施时,首先,可以将第一数据集和第二数据集中与目标key对应的数据分别筛选出来,分别生成第三数据集和第五数据集,将第一数据集和第二数据集中剩余的数据生成第四数据集和第六数据集。然后将预设的N个数值中的任一个与第三数据集中的每条数据(该数据为目标数据)的key进行拼接作为第三数据集中的每条数据的新的key。同时,将第五数据集中的每条数据映射为N条数据,并将预设的N个数值中的任一个与映射后的第五数据集中每条数据的key进行拼接作为映射后的第五数据集中的每条数据的新的key。
根据新的key将第三数据集和第五数据集进行连接,获取第一连接结果数据集,根据原来的key将第四数据集和第六数据集进行连接,获取第二连接结果数据集,将第一连接结果数据集与第二连接结果数据集进行合并,获取最终的连接结果数据集。
以下以商品销售数据(第一数据集)以及商品维表数据(第二数据集)为例来进一步阐述上述步骤,现需要将商品销售数据中的订单数据维护到商品维表数据中,由于爆款商品、促销活动等因素,会导致一部分商品的销售量比其余商品大很多,再将商品销售数据与商品维表数据进行连接时,就可能会造成数据倾斜问题,而本发明提供的数据连接操作的处理方法为解决这一问题,提供了以下处理方案:
假设数据集中的key为商品ID,且第一预设阈值为50万,第二预设阈值为 2。具体筛选时,可以根据商品的销售明细表(即商品销售数据)来统计出当天 (如20190101)单品(指单个商品)的销售量,将大于50万的商品筛选出来,如表1所示:
表1
日期 | 商品ID | 订单量 |
20190101 | 电视A款编码 | 900000 |
20190101 | 空调C款编码 | 800000 |
20190101 | 空调A款编码 | 700000 |
此时,筛选出的备选key包括电视A款编码、空调C款编码、空调A款编码,备选key的数量为3,大于第二预设阈值,所以需将第一数据集的所有key 作为目标key,即后续需要对整个数据集的数据进行相关处理。
将第二数据集中与目标key对应的每一数据(该情况下与目标数据对应的每条数据即为第二数据集中的每条数据)映射为1000(即N)条数据,并在第一数据集以及映射后的第二数据集中确定目标key对应的每条目标数据。此时,目标数据为第一数据集中的全部数据以及映射后的第二数据集中的全部数据。
将预设的1000个数值中的任一个与每条目标数据的key进行拼接作为目标数据的新的key(即新的商品ID)。以下仅以备选key中电视A款编码的对应的数据900000为例,生成新的key的部分目标数据如表2和表3所示:
表2 第一数据集
日期 | 新ID | 订单量 |
20190101 | 电视A款编码_000 | 80000 |
20190101 | 电视A款编码_001 | 90000 |
20190101 | 电视A款编码_002 | 60000 |
… | … | … |
表3 第二数据集
新ID | … | … | … | … |
电视A款编码_000 | … | … | … | … |
电视A款编码_001 | … | … | … | … |
电视A款编码_002 | … | … | … | … |
… | … | … | … | … |
从表1、表2以及表3可以看出,第一数据集中单个key(电视A款编码) 对应的数据量为900000,先将电视A款编码拆分为了电视A款编码_000、电视 A款编码_001、电视A款编码_003等,并且其分别对应的数据量均减少了,即第一数据集中单个key对应的数据量被稀释了。减少了第一数据集与第二数据集进行关联时单个key对应的数据量,防止产生数据倾斜问题,提升大数据量的处理速度,保证系统及时快速响应。
图3是根据一示例性实施例示出的数据连接操作的处理装置的结构示意图,参照图3所示,该装置包括:
备选key获取模块,用于从第一数据集中筛选出现次数大于第一预设阈值的备选key,其中,所述第一数据集的数据量大于第二数据集,所述数据集中每条数据对应一个key;
目标key获取模块,用于根据所述备选key的数量从所述第一数据集的所有 key中确定目标key,所述目标key至少包括所述备选key;
数据映射模块,用于将所述第二数据集中与所述目标key对应的每一数据映射为N条数据;
数据获取模块,用于在所述第一数据集以及映射后的所述第二数据集中确定所述目标key对应的每条目标数据,所述N为正整数;
key生成模块,用于将预设的N个数值中的任一个与所述每条目标数据的 key进行拼接作为所述目标数据的新的key;
数据连接模块,用于根据所述新的key将所述第一数据集与所述第二数据集中的每条目标数据进行连接,获取连接结果数据集。
作为一种较优的实施方式,本发明实施例中,所述目标key获取模块包括:
第一比较单元,用于将所述备选key的数量与第二预设阈值进行比较;
目标key获取单元,用于若所述备选key数量小于所述第二预设阈值,则将所述备选key作为目标key,否则,将所述第一待连接数据集的所有key作为目标key。
作为一种较优的实施方式,本发明实施例中,所述备选key获取模块包括:
数据采样单元,用于对所述第一数据集进行采样处理,获取采样数据;
次数统计单元,用于统计所述采样数据中每个key的出现次数;
第二比较单元,用于将所述出现次数与第一预设阈值进行比较,获取出现次数大于所述第一预设阈值的备选key。
作为一种较优的实施方式,本发明实施例中,所述数据映射模块具体用于利用预设的flatmap算法将所述第二数据集中与所述目标key对应的每一数据映射为N条数据;
所述key生成模块具体用于利用预设的flatmap算法将预设的N个数值中的任一个与所述每条目标数据的key进行拼接作为所述目标数据的新的key。
作为一种较优的实施方式,本发明实施例中,所述装置还包括:
数值去除模块,用于利用预设的map算法将所述连接结果数据集中每一数据对应的key上拼接的数值去除,获取最终的连接结果数据集。
综上所述,本发明实施例提供的技术方案带来的有益效果是:
1、本发明实施例提供的数据连接操作的处理方法及装置,通过将第二数据集中与目标key对应的每一数据映射为N条数据,并在第一数据集以及映射后的第二数据集中确定目标key对应的每条目标数据,将预设的N个数值中的任一个与每条目标数据的key进行拼接作为目标数据的新的key,从而实现对第一数据集中目标key对应的数据量进行稀释以及对第二数据集进行扩容,减少了第一数据集与第二数据集进行关联时单个key对应的数据量,防止产生数据倾斜问题,提升大数据量的处理速度,保证系统及时快速响应;
2、本发明实施例提供的数据连接操作的处理方法及装置,通过根据备选key 的数量从第一数据集的所有key中确定目标key,具体实施时将备选key的数量与第二预设阈值进行比较,若备选key数量小于第二预设阈值,则将备选key 作为目标key,否则,将第一待连接数据集的所有key作为目标key,实现了将第一数据集的存在少量key对应的数据量大或者存在大量key对应的数据量大这两种情况分别进行处理,提升处理效率。
需要说明的是:上述实施例提供的数据连接操作的处理装置在触发数据连接操作业务时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据连接操作的处理装置与数据连接操作的处理方法实施例属于同一构思,即该装置是基于该数据连接操作的处理方法的,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种数据连接操作的处理方法,其特征在于,所述方法包括如下步骤:
从第一数据集中筛选出现次数大于第一预设阈值的备选key,其中,所述第一数据集的数据量大于第二数据集,所述数据集中每条数据对应一个key;
根据所述备选key的数量从所述第一数据集的所有key中确定目标key,所述目标key至少包括所述备选key;
将所述第二数据集中与所述目标key对应的每一数据映射为N条数据,并在所述第一数据集以及映射后的所述第二数据集中确定所述目标key对应的每条目标数据,所述N为正整数;
将预设的N个数值中的任一个与所述每条目标数据的key进行拼接作为所述目标数据的新的key;
根据所述新的key将所述第一数据集与所述第二数据集中的每条目标数据进行连接,获取连接结果数据集。
2.根据权利要求1所述的数据连接操作的处理方法,其特征在于,所述根据所述备选key的数量从所述第一数据集的所有key中获取目标key包括:
将所述备选key的数量与第二预设阈值进行比较,若所述备选key数量小于所述第二预设阈值,则将所述备选key作为目标key,否则,将所述第一数据集的所有key作为目标key。
3.根据权利要求1或2所述的数据连接操作的处理方法,其特征在于,所述从第一数据集中筛选出现次数大于第一预设阈值的备选key包括:
对所述第一数据集进行采样处理,获取采样数据;
统计所述采样数据中每个key的出现次数;
将所述出现次数与第一预设阈值进行比较,获取出现次数大于所述第一预设阈值的备选key。
4.根据权利要求2所述的数据连接操作的处理方法,其特征在于,将第一数据集中的所有key作为目标key时,利用预设的flatmap算法将所述第二数据集中与所述目标key对应的每一数据映射为N条数据以及将预设的N个数值中的任一个与所述每条目标数据的key进行拼接作为所述目标数据的新的key。
5.根据权利要求4所述的数据连接操作的处理方法,其特征在于,所述方法还包括:
利用预设的map算法将所述连接结果数据集中每一数据对应的key上拼接的数值去除,获取最终的连接结果数据集。
6.一种数据连接操作的处理装置,其特征在于,所述装置包括:
备选key获取模块,用于从第一数据集中筛选出现次数大于第一预设阈值的备选key,其中,所述第一数据集的数据量大于第二数据集,所述数据集中每条数据对应一个key;
目标key获取模块,用于根据所述备选key的数量从所述第一数据集的所有key中确定目标key,所述目标key至少包括所述备选key;
数据映射模块,用于将所述第二数据集中与所述目标key对应的每一数据映射为N条数据;
数据获取模块,用于在所述第一数据集以及映射后的所述第二数据集中确定所述目标key对应的每条目标数据,所述N为正整数;
key生成模块,用于将预设的N个数值中的任一个与所述每条目标数据的key进行拼接作为所述目标数据的新的key;
数据连接模块,用于根据所述新的key将所述第一数据集与所述第二数据集中的每条目标数据进行连接,获取连接结果数据集。
7.根据权利要求6所述的数据连接操作的处理装置,其特征在于,所述目标key获取模块包括:
第一比较单元,用于将所述备选key的数量与第二预设阈值进行比较;
目标key获取单元,用于若所述备选key数量小于所述第二预设阈值,则将所述备选key作为目标key,否则,将所述第一待连接数据集的所有key作为目标key。
8.根据权利要求6或7所述的数据连接操作的处理装置,其特征在于,所述备选key获取模块包括:
数据采样单元,用于对所述第一数据集进行采样处理,获取采样数据;
次数统计单元,用于统计所述采样数据中每个key的出现次数;
第二比较单元,用于将所述出现次数与第一预设阈值进行比较,获取出现次数大于所述第一预设阈值的备选key。
9.根据权利要求7所述的数据连接操作的处理装置,其特征在于,所述数据映射模块具体用于利用预设的flatmap算法将所述第二数据集中与所述目标key对应的每一数据映射为N条数据;
所述key生成模块具体用于利用预设的flatmap算法将预设的N个数值中的任一个与所述每条目标数据的key进行拼接作为所述目标数据的新的key。
10.根据权利要求9所述的数据连接操作的处理装置,其特征在于,所述装置还包括:
数值去除模块,用于利用预设的map算法将所述连接结果数据集中每一数据对应的key上拼接的数值去除,获取最终的连接结果数据集。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911210685.1A CN111061712A (zh) | 2019-11-29 | 2019-11-29 | 一种数据连接操作的处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911210685.1A CN111061712A (zh) | 2019-11-29 | 2019-11-29 | 一种数据连接操作的处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111061712A true CN111061712A (zh) | 2020-04-24 |
Family
ID=70299203
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911210685.1A Pending CN111061712A (zh) | 2019-11-29 | 2019-11-29 | 一种数据连接操作的处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111061712A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111930720A (zh) * | 2020-08-25 | 2020-11-13 | 携程计算机技术(上海)有限公司 | 数据倾斜的处理方法、系统、电子设备和介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105930479A (zh) * | 2016-04-28 | 2016-09-07 | 乐视控股(北京)有限公司 | 一种数据倾斜处理方法及装置 |
CN106156159A (zh) * | 2015-04-16 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 一种表连接处理方法、装置和云计算系统 |
CN109298947A (zh) * | 2018-10-24 | 2019-02-01 | 北京奇虎科技有限公司 | 分布式系统中的数据处理方法及装置、计算设备 |
-
2019
- 2019-11-29 CN CN201911210685.1A patent/CN111061712A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106156159A (zh) * | 2015-04-16 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 一种表连接处理方法、装置和云计算系统 |
CN105930479A (zh) * | 2016-04-28 | 2016-09-07 | 乐视控股(北京)有限公司 | 一种数据倾斜处理方法及装置 |
CN109298947A (zh) * | 2018-10-24 | 2019-02-01 | 北京奇虎科技有限公司 | 分布式系统中的数据处理方法及装置、计算设备 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111930720A (zh) * | 2020-08-25 | 2020-11-13 | 携程计算机技术(上海)有限公司 | 数据倾斜的处理方法、系统、电子设备和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110941598A (zh) | 一种数据去重方法、装置、终端及存储介质 | |
US20130013597A1 (en) | Processing Repetitive Data | |
US20080155527A1 (en) | System and method for optimizing changes of data sets | |
CN107464151B (zh) | 高并发业务的订单数据处理方法及装置 | |
CN110928851B (zh) | 处理日志信息的方法、装置、设备及存储介质 | |
CN110704484A (zh) | 一种对海量实时数据流进行处理的方法及系统 | |
CN107346270B (zh) | 基于实时计算的基数估计的方法和系统 | |
Yamamoto et al. | Resource-oriented approximation for frequent itemset mining from bursty data streams | |
CN114253930A (zh) | 数据处理方法、装置、设备及存储介质 | |
CN107203437B (zh) | 防止内存数据丢失的方法、装置和系统 | |
CN114328749A (zh) | 业务数据处理方法及其装置、计算机可读存储介质 | |
CN111061712A (zh) | 一种数据连接操作的处理方法及装置 | |
CN111966682B (zh) | 一种白名单防护匹配方法、系统、终端及存储介质 | |
CN111405037A (zh) | 区块同步方法、设备和存储介质 | |
CN113806353A (zh) | 实现时序特征抽取的方法及装置 | |
CN111723089A (zh) | 一种基于列式存储格式处理数据的方法和装置 | |
CN109739883B (zh) | 提升数据查询性能的方法、装置和电子设备 | |
CN110929207B (zh) | 数据处理方法、装置和计算机可读存储介质 | |
CN112131180B (zh) | 数据上报方法、装置以及存储介质 | |
CN113590322A (zh) | 一种数据处理方法和装置 | |
CN108737522B (zh) | 一种消息的处理方法、装置和系统 | |
CN114741162A (zh) | 服务编排方法、装置、存储介质和设备 | |
CN109542609B (zh) | 一种代扣还款的方法、装置、计算机设备和存储介质 | |
CN112783980A (zh) | 数据同步处理方法、装置、电子设备以及计算机可读介质 | |
CN113032368A (zh) | 一种数据迁移方法、装置、存储介质及平台 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200424 |
|
RJ01 | Rejection of invention patent application after publication |