0、开篇词:为什么学习分布式数据库

你好,我是王磊,你也可以叫我Ivan,现在是光大银行首席数据架构师。这门课,我想和你聊聊分布式数据库这个话题。 说起分布式数据库啊,很多人的第一反应是,这东西还很新吧?一般的公司是不是根本就用不上?我有必要学吗? 分布式数据库可以解决什么问题?简单来...

分布式数据库30讲

31、性能调优

你好,我是吴磊。 在上一讲,我们一起完成了小汽车摇号趋势分析的应用开发,解决了5个案例。今天这一讲,我们逐一对这5个案例做性能调优,一起把专栏中学过的知识和技巧应用到实战中去。 由于趋势分析应用中的案例较多,为了方便对比每一个案例调优前后的性能效果,...

Spark性能调优实战

30、应用开发

你好,我是吴磊。 如果你也在北京生活,那小汽车摇号这件事大概率也和你息息相关。我身边很多人也一直都和我抱怨说:“小汽车摇号这件事太难了,遥遥无期,完全看不到希望,感觉还没买彩票靠谱呢”。 实不相瞒,我自己也在坚持小汽车摇号,在享受8倍概率的情况下,还...

Spark性能调优实战

29、负隅顽抗的调优思路

你好,我是吴磊。 在上一讲,我们说了应对“大表Join大表”的第一种调优思路是分而治之,也就是把一个庞大而又复杂的Shuffle Join转化为多个轻量的Broadcast Joins。这一讲,我们接着来讲第二种调优思路:负隅顽抗。 负隅顽抗指的是,...

Spark性能调优实战

28、“分而治之”的调优思路

你好,我是吴磊。 上一讲,我们探讨了“大表Join小表”场景的调优思路和应对方法。那么,除了大表Join小表的场景,数据分析领域有没有“大表Join大表”的场景呢?确实是有的,它指的是参与Join的两张体量较大的事实表,尺寸相差在3倍以内,且全部无法...

Spark性能调优实战

27、广播变量容不下小表怎么办

你好,我是吴磊。 在数据分析领域,大表Join小表的场景非常普遍。不过,大小是个相对的概念,通常来说,大表与小表尺寸相差3倍以上,我们就将其归类为“大表Join小表”的计算场景。因此,大表Join小表,仅仅意味着参与关联的两张表尺寸悬殊。 对于大表J...

Spark性能调优实战

26、不同场景下,如何选择Join策略

你好,我是吴磊。 在数据分析领域,数据关联可以说是最常见的计算场景了。因为使用的频率很高,所以Spark为我们准备了非常丰富的关联形式,包括Inner Join、Left Join、Right Join、Anti Join、Semi Join等等。 ...

Spark性能调优实战

25、Spark 3.0(二)

你好,我是吴磊。 DPP(Dynamic Partition Pruning,动态分区剪裁)是Spark 3.0版本中第二个引人注目的特性,它指的是在星型数仓的数据关联场景中,可以充分利用过滤之后的维度表,大幅削减事实表的数据扫描量,从整体上提升关联...

Spark性能调优实战

24、Spark 3.0(一)

你好,我是吴磊。 目前,距离Spark 3.0版本的发布已经将近一年的时间了,这次版本升级添加了自适应查询执行(AQE)、动态分区剪裁(DPP)和扩展的 Join Hints 等新特性。利用好这些新特性,可以让我们的性能调优如虎添翼。因此,我会用三讲...

Spark性能调优实战

23、Tungsten给开发者带来了哪些福报

你好,我是吴磊。 通过前两讲的学习,我们知道在Spark SQL这颗智能大脑中,“左脑”Catalyst优化器负责把查询语句最终转换成可执行的Physical Plan。但是,把Physical Plan直接丢给Spark去执行并不是最优的选择,最优...

Spark性能调优实战