Hive分区如何工作

时间:2018-10-28 16:51:24

标签: hadoop hive hadoop-partitioning

让我们假设下表:

作为模式: ID,NAME,Country和我的partition key is country

如果我的查询如下:

select * from table where id between 155555756 to 10000000000;

在这种情况下,该分区将无法工作,对吗? 。

简单的说。如果我在查询中不使用分区键怎么办?这样就可以进行表全扫描了吧?

1 个答案:

答案 0 :(得分:0)

第一个问题的答案是是,此查询计划不会进行分区修剪。

您可以使用以下语句检查查询是否进行分区修剪: explain dependency <your query>

第二个问题的答案-取决于!

如果将hive.mapred.mode设置为 strict ,则配置单元将不允许进行全表扫描,并且很少进行其他“风险” 诸如交叉联接等操作,

根据您使用的配置单元的版本,这些设置还会影响单个查询可以扫描的分区数量

  • hive.metastore.limit.partition.request(或)
  • hive.limit.query.max.table.partition