【技术实现步骤摘要】
一种检测倾斜数据的Hash Join执行方法
[0001]本专利技术涉及分布式数据库
,具体的说是一种检测倾斜数据的Hash Join执行方法。
技术介绍
[0002]在数据库领域中,尤其是以查询为主要功能的数据库,数据库的响应速度是影响用户体验的重要因素,而如今互联网的蓬勃发展产生了大量的数据,面对如此海量的数据,分布式技术在数据库领域被广泛的采用。
[0003]在数据库的SQL引擎中有一种Join算子,它的作用是连接计算,即找出两个集合在某些字段中相等的记录。该算子通常会有两个输入数据集,每个输入数据集包含多条记录,每一条记录都有多个字段构成并且所有记录都拥有相同的格式,经过Join算子计算后会输出一个数据集,该数据集包含多条记录,每一条记录分别由两个输入数据集中的一条记录组合而成,组合的条件是两条记录在某一个或多个字段具有相同的值。
[0004]通常实现Join算子的计算有三种方法,分别是Hash Join、Merge Join和Nested Loop Join,这里主要针对Hash Join进行 ...
【技术保护点】
【技术特征摘要】
1.一种检测倾斜数据的Hash Join执行方法,其特征在于,其实现内容包括:利用数据库的SQL引擎执行Hash Join之前,获取Join算子的两个输入数据集;设定一个相对倾斜率,计算相对倾斜率与其中一个输入数据集中数据量的乘积,得到倾斜阈值,两个输入数据集中出现频率超过倾斜阈值的值被称为倾斜值;针对两个输入数据集,检查总数据量较大的输入数据集中是否存在倾斜值,若不存在,则对两个输入数据集分别进行哈希分发,以将两个输入数据集拆分并分别分发到Join节点集群中,若存在,则探测总数据量较大的输入数据集在某个字段的所有倾斜值,得到倾斜值列表,随后基于倾斜值列表将每个输入数据集拆分为不含倾斜值的Normal数据集和含有倾斜值的Skew数据集,对Normal数据集进行哈希分发,以将Normal数据集拆分并分发到Join节点集群中,对Skew数据集进行平均分发或镜像分发,以将Skew数据集进行拆分并平均分发或复制后对应分发到Join节点集群的所有节点上;Join节点集群中的节点对其上数据进行Hash Join计算。2.根据权利要求1所述的一种检测倾斜数据的Hash Join执行方法,其特征在于,针对两个输入数据集,将总数据量较大的输入数据集称为Big数据集,将总数据量较小的数据集称为Small数据集。3.根据权利要求2所述的一种检测倾斜数据的Hash Join执行方法,其特征在于,计算相对倾斜率与Big数据集中采样数据量的乘积,得到倾斜阈值,Big数据集和Small数据集中出现频率超过倾斜阈值的值被称为倾斜值;使用检查器检查Big数据集在某个字段是否存在倾斜值,若存在倾斜值,使用探测器统计Big数据集在某个字段的所有倾斜值,得到倾斜值列表。4.根据权利要求3所述的一种检测倾斜数据的Hash Join执行方法,其特征在于,检查器首先对Big数据集进行顺序采样,计算采样数据量与相对倾斜率得到倾斜阈值,随后检查采样数据中是否存在倾斜值。5.根据权利要求3所述的一种检测倾斜数据的Hash Join执行...
【专利技术属性】
技术研发人员:陈磊,魏可伟,赵衎衎,
申请(专利权)人:上海沄熹科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。