MAPREDUCE服务 MRS-合并CBO优化:操作步骤
操作步骤
要使用CBO优化,可以按照以下步骤进行优化。
- 需要先执行特定的SQL语句来收集所需的表和列的统计信息。
- 生成表级别统计信息(扫表):
ANALYZE TABLE src COMPUTE STATIS TICS
生成sizeInBytes和rowCount。
使用ANALYZE语句收集统计信息时,无法计算非HDFS数据源的表的文件大小。
- 生成表级别统计信息(不扫表):
ANALYZE TABLE src COMPUTE STATISTI CS NOSCAN
只生成sizeInBytes,如果原来已经生成过sizeInBytes和rowCount,而本次生成的sizeInBytes和原来的大小一样,则保留rowCount(若存在),否则清除rowCount。
- 生成列级别统计信息
ANALYZE TABLE src COMPUTE STATISTICS FOR COLUMNS a, b, c
生成列统计信息,为保证一致性,会同步更新表统计信息。目前不支持复杂数据类型(如Seq, Map等)和HiveStringType的统计信息生成。
- 显示统计信息
在Statistics中会显示“xxx bytes, xxx rows”分别表示表级别的统计信息。也可以通过如下命令显示列统计信息:
DESC FORMATTED src a
使用限制:当前统计信息收集不支持针对分区表的分区级别的统计信息。
- 生成表级别统计信息(扫表):
- 在Spark客户端的“spark-defaults.conf”配置文件中进行表1设置。
表1 参数介绍 参数
描述
默认值
spark.sql.cbo.enabled
CBO总开关。
- true表示打开,
- false表示关闭。
要使用该功能,需确保相关表和列的统计信息已经生成。
false
spark.sql.cbo.joinReorder.enabled
使用CBO来自动调整连续的inner join的顺序。
- true:表示打开
- false:表示关闭
要使用该功能,需确保相关表和列的统计信息已经生成,且CBO总开关打开。
false
spark.sql.cbo.joinReorder.dp.threshold
使用CBO来自动调整连续inner join的表的个数阈值。
如果超出该阈值,则不会调整join顺序。
12
- MapReduce服务_如何使用MapReduce服务_MRS集群客户端安装与使用
- MapReduce服务_什么是Hive_如何使用Hive
- Hudi服务_什么是Hudi_如何使用Hudi
- 大数据分析是什么_使用MapReduce_创建MRS服务
- MapReduce服务_什么是Loader_如何使用Loader
- MapReduce服务_什么是MapReduce服务_什么是HBase
- 域名转出-域名如何转出-域名转出流程-域名转出操作步骤
- MapReduce服务_什么是HetuEngine_如何使用HetuEngine
- MapReduce服务_什么是Hue_如何使用Hue
- MapReduce服务_什么是Kafka_如何使用Kafka