厦门大学数据库实验室-蔡珉星-Skew Join相关论文

Download Report

Transcript 厦门大学数据库实验室-蔡珉星-Skew Join相关论文

Skew Join相关论文
报告人:蔡珉星
厦大数据库实验室
2014-08-30
目录
遇到的问题
论文:Efficient outer join data skew
handling in parallel DBMS
其他论文
Part 1
论文:Efficient outer join data
skew handling in parallel DBMS
背景知识
 Inner join 和 Outer join:
inner join (等价于 join) 是求两个集合的交集
outer join:
• Left outer join: 返回左表中的所有结果,若右表有匹配项,则返回结果,否则
返回NULL。
• Right outer join: 返回的是右表中的所有结果……
• Full outer join: 返回的是左右表中的所有结果……
Outer join 实例
 考虑如下Outer join实例
R(x, a)
S(y, b)
T(z, d)
Outer join 实例
 假设先进行 R left outer join S,再进行left outer join T
Outer join 实例
 假设先进行 R left outer join S,再进行left outer join T
Outer join 实例
 假设先进行 R left outer join S,再进行left outer join T
J.c left outer join T.d
J.c的部分数据为NULL,
需要单独进行分区处理。
常规情况:
H(null) = 1
导致大量含NULL的数据聚
集在1号Reducer上
Outer join 实例
问题分析
 Outer join 存在的问题:
由于outer join操作本身的特性,结果中的某些列会出现NULL值,如果这包
含NULL值的列再参与其他的join操作(多表连接),在常规的解决方法中,是将
含NULL值数据都划分到某个节点上(H(NULL) = x),从而导致在原始数据不倾
斜的情况下,join操作过程却出现了倾斜情况。
问题分析
 解决 Outer join 存在的问题:
随机分配含NULL值的数据,而不是聚集在某一个节点上。
H(NULL) = random(1, n)
分析一下上述方法的执行结果
R left outer join S
节点的最终结果
T
x
a
y
c
z
2
9
2
1
3
4
3
3
N
N
N
7
6
2
N
N
N
x
a
y
c
z
d
2
9
2
1
3
1
3
3
N
N
4
6
2
N
N
5
left outer join
若中间结果为NULL的行,最终结果中新字段也为NULL
问题解决
 解决Outer join(该实例)存在的问题的最佳方法:
直接将新字段填充为NULL,输出即可,无需重新分配来进行剩下的join操作。
R left outer join S的结果
问题解决
 解决 Outer join 存在的问题的最佳方法:
结果分成两部分:是否包含NULL值,不包含NULL的数据继续参与后续join
问题解决
 解决 Outer join 存在的问题的最佳方法:
包含NULL的数据直接填充新字段为NULL。
最后将两部分合并即为最终结果。
Part 3
其 他 论 文
A New Framework for Join Product Skew
 解决问题
解决Join操作中的数据倾斜问题
 核心思想
• 统计出每个join key的频次;
• 根据节点处理该join key的代价(数据量),判断是否会出现倾斜情况;
• 如果会出现倾斜,比较两个表中该join key的频次:
• 例如Fr > Fs,则将R表中的该join key的数据均分到多个Reducer,将S
表中该join key的数据广播到这些Reducer上。
+
500个A
1000个A
500个A
Advanced Join Strategies for Large-Scale
Distributed Computation
 主要内容
分析了常见的Join操作,讨论如何实现有效、健壮的join算法。
 如何解决倾斜问题
核心想法:区别处理高频次的join key数据和低频次的join key数据
低频次的join key采用hash partition即可,高频次的join key依情况选择广播
join或重分区join,或两者结合。
对高频次、低频次join key的处理不同
判断是否是会出现倾斜的高频次join key
(根据节点处理代价)
MapReduce上基于抽样的数据划分最优化研究
 主要内容
• 基于抽样的划分是一种比较有效的数据划分方法,为了使得抽样方法发挥最大
程度的效益,研究了抽样效果与其重要影响因素之间的定量关系,从而可通过
尽可能小的抽样代价来得到满足要求的数据划分。
 重要结论
采样(分块随机采样)准确率的影响因素:
• 准确率随样本规模的增加而增大,但在一个不大的阈值N后增长缓慢;
• 在相同的准确率要求下,不过规模的数据集所需的样本规模相同;
• 准确率随着节点个数的增加而减少。
所以不管数据集有多大,都可以只取少量的样本数。并且随着节点个数的增加,
需要更多的样本数量来维持原有的准确率。
Implementation and Analysis of Join Algorithms to
handle skew for the Hadoop Map/Reduce Framework
 主要内容
学位论文,较为详细的介绍了Hadoop中Join算法的实现和分析。
 创新点
提出了Hybrid Join:结合Map-side join和Reduce-side join。
Implementation and Analysis of Join Algorithms to
handle skew for the Hadoop Map/Reduce Framewor
 主要内容
学位论文,较为详细的介绍了Hadoop中Join算法的实现和分析。
 创新点
提出了Hybrid Join:结合Map-side join和Reduce-side join。
Implementation and Analysis of Join Algorithms to
handle skew for the Hadoop Map/Reduce Framewor
 主要内容
学位论文,较为详细的介绍了Hadoop中Join算法的实现和分析。
 创新点
提出了Hybrid Join:结合Map-side join和Reduce-side join。
Implementation and Analysis of Join Algorithms to
handle skew for the Hadoop Map/Reduce Framewor
 主要内容
学位论文,较为详细的介绍了Hadoop中Join算法的实现和分析。
 创新点
提出了Hybrid Join:结合Map-side join和Reduce-side join。
 处理数据倾斜:
• 简单范围分区算法
• 虚拟范围分区算法
遇到的问题
Thanks.
23