- 博客(8)
- 收藏
- 关注
转载 【Spark】Spark SQL AQE的介绍以及参数整理
用一句话来概括,AQE 是 Spark SQL 的一种动态优化机制,在运行时,每当 Shuffle Map 阶段执行完毕,AQE 都会结合这个阶段的统计信息,基于既定的规则动态地调整、修正尚未执行的逻辑计划和物理计划,来完成对原始查询语句的运行时优化。CBO 是基于数据表的统计信息(如表大小、数据列分布)来选择优化策略。适用面太窄,CBO 仅支持注册到 Hive Metastore 的数据表,但在其他的应用场景中,数据源往往是存储在分布式文件系统的各类文件,如 Parquet、ORC、CSV 等。
2024-11-07 11:46:53
235
原创 近期遇到的遇到的MPP数据库典型问题汇总整理
看explain verbose的执行计划(不是实际执行,只是根据统计信息带入逻辑执行计划,去生成物理执行计划,和现实有出入,如果追求最准确,请用explain performance),发现执行计划有很多broadcast,redistribute等算子。对大分区表进行瘦身。2.直接用行存表,省略过多的麻烦,行存没有CU这一说,问题就能完美解决,已知是最靠谱的办法。【结论】简单一句话总结这个问题:就是个别表分区数设置太多了,分区是元数据的一部分,这东西一多,别的表加载这个表的DDL加载不过来就出问题了。
2024-10-28 15:10:04
647
原创 Spark on Hive 脚本实战闭环(Python版)
在此之前想先了解一下Spark on Hiv和Hive on Spark的区别,其实这个问题也不用纠结那么多,谁在前面 就是谁是主体。
2024-09-12 19:28:18
651
原创 浅谈MPP数据库优化
这四种比较简单的优化手段,虽然现在的数据库内部的优化器已经做到了自动优化这几点,但是不同产品之间是有差异的,我们并不知道一个产品的内部优化器是否完善,一定要有上面优化的意识。因为分布式数据库的场景下,节点越多,链接越多,使用数据库的整体就越高。相当于把计算结果提前计算好,查询的时后,会立刻返回结果。(2)真实的物理计划,能直观的显示出处理这部分sql逻辑都用了哪些算子,算子就是数据库内核处理数据的C++方法接口。大规模数据去重,快速聚合分析,大规模数据的快速查询,布尔类型数据存储可以省略大量的磁盘空间。
2024-09-02 20:11:53
2187
原创 鸢尾花实例
1.pip install 两个大工具包 分别是:(1) pip install -i https://pypi.tuna.tsinghua.edu.cn/simple matplotlib(2) pip install -i https://pypi.tuna.tsinghua.edu.cn/simple sklearn2. 导入三个模块,分别是(1)sklearn.datasets import load_iris(2)sklearn.cluster import KMeans(
2022-03-27 14:46:28
1927
原创 Python之顺序表
class SequenceList: #顺序表初始化,max为最大容量的参数 def __init__(self,max): self.max = max self.index = 0 self.data = [None for _ in range(self.max)] #通过下标查找元素,如果下标的值合法,则返回下标上的元素,否则抛出异常 def __getitem__(self,index): if i.
2021-09-21 20:40:46
500
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人