我已经创建了一个分区的配置单元表。我在这个表中插入了数据。现在假设我执行一个 select * 查询使用 where 那么如何确保配置单元查询正在使用分区呢?
select *
where
9fkzdhlc1#
假设您的配置单元数据被拆分到3个分区上,并且每个hdfs分区包含一个不大于一个hdfs块的文件,那么带有where on a partition值的select*将触发一个YarnMap器。请注意,这种行为可能与tez和llap(hortonworks)或impala(cloudera)等新型Hive引擎不同
6bc51xsx2#
您可以通过执行 EXPLAIN EXTENDED 命令。
EXPLAIN EXTENDED
EXPLAIN EXTENDED select * from mytable where load_date='2018-01-01';
计划中的分区信息如下所示:
Path -> Partition: s3n://bucket_name/mytable/load_date=2018-01-01 Partition base file name: load_date=2018-01-01 input format: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat output format: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat partition values: load_date 2018-01-01
2条答案
按热度按时间9fkzdhlc1#
假设您的配置单元数据被拆分到3个分区上,并且每个hdfs分区包含一个不大于一个hdfs块的文件,那么带有where on a partition值的select*将触发一个YarnMap器。
请注意,这种行为可能与tez和llap(hortonworks)或impala(cloudera)等新型Hive引擎不同
6bc51xsx2#
您可以通过执行
EXPLAIN EXTENDED
命令。计划中的分区信息如下所示: