【问题标题】:Does the order of partitioned columns in WHERE clause matterWHERE 子句中分区列的顺序是否重要
【发布时间】:2016-07-05 09:33:18
【问题描述】:

如果我们有一个由 col,col2,col3 分区的 HIVE 表,那么在对该表执行 SELECT 时,如果我想在 WHERE 子句中指定这些列,它们是否必须以相同的顺序出现才能利用分区?我的意思是,逻辑上是的,但是无论我指定它们的顺序如何,HIVE 编译器都无法理解它们的实际顺序。它应该能够在内部应用正确的顺序,因为 HIVE 已经知道正确的顺序是 col2,col2,col3 所以它以这种方式使用它。 HIVE 在我们定义的查询之上做了很多优化,所以我想它应该做同样的事情。

【问题讨论】:

    标签: hive


    【解决方案1】:

    不,那个顺序应该无关紧要。任何体面的查询优化器都会查看 WHERE 子句的所有部分,并找出满足该查询的最有效方法。为了更好地理解,使用分区列的逻辑顺序编写查询仍然有意义。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-11
      • 2017-12-19
      • 2011-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-10
      相关资源
      最近更新 更多