MAPREDUCE服务 MRS-使用Hive CBO功能优化查询效率:操作步骤
操作步骤
- 在Manager界面Hive组件的配置中搜索“hive.cbo.enable”参数,选中“true”永久开启功能。
- 手动收集Hive表已有数据的统计信息。
执行以下命令,可以手动收集统计信息。仅支持统计一张表,如果需要统计不同的表需重复执行。
ANALYZE TABLE [db_name.]tablename [PARTITION(partcol1[=val1], partcol2[=val2], ...)]
COMPUTE STATIS TICS
[FOR COLUMNS]
[NOSCAN];
- 指定FOR COLUMNS时,收集列级别的统计信息。
- 指定NOSCAN时,将只统计文件大小和个数,不扫描具体文件。
例如:
analyze table table_name compute statistics;
analyze table table_name compute statistics for columns;
- 配置Hive自动收集统计信息。开启配置后,执行insert overwrite/into命令插入数据时才自动统计新数据的信息。
- 在Hive客户端执行以下命令临时开启收集:
set hive.stats.autogather = true;开启表/分区级别的统计信息自动收集。
set hive.stats.column.autogather = true; 开启列级别的统计信息自动收集。
- 列级别统计信息的收集不支持复杂的数据类型,例如Map,Struct等。
- 表级别统计信息的自动收集不支持Hive on HBase表。
- 在Manager界面Hive的服务配置中,搜索参数“hive.stats.autogather”和“hive.stats.column.autogather”,选中“true”永久开启收集功能。
- 在Hive客户端执行以下命令临时开启收集:
- 执行以下命令可以查看统计信息。
DESCRIBE FORMATTED table_name[.column_name] PARTITION partition_spec;
例如:
desc formatted table_name;
desc formatted table_name id;
desc formatted table_name partition(time='2016-05-27');
分区表仅支持分区级别的统计信息收集,因此分区表需要指定分区来查询统计信息。
- MapReduce服务_什么是Hive_如何使用Hive
- MapReduce服务_如何使用MapReduce服务_MRS集群客户端安装与使用
- 大数据分析是什么_使用MapReduce_创建MRS服务
- Hudi服务_什么是Hudi_如何使用Hudi
- MapReduce服务_什么是Hue_如何使用Hue
- MapReduce服务_什么是HetuEngine_如何使用HetuEngine
- 什么是Spark_如何使用Spark_Spark的功能是什么
- MapReduce服务_什么是Kafka_如何使用Kafka
- MapReduce服务_什么是MapReduce服务_什么是HBase
- MapReduce服务_什么是Loader_如何使用Loader