【问题标题】:Hive difference between PARTITIONED BY, CLUSTERED BY and SORTED BY with BUCKETS and insert overwrite with PARTITIONED and CLUSTER BY?分区 BY、CLUSTERED BY 和 SORTED BY 与 BUCKETS 之间的 Hive 区别以及使用 PARTITIONED 和 CLUSTER BY 插入覆盖?
【发布时间】:2014-02-22 03:27:30
【问题描述】:

我已经看到了一些关于创建具有CLUSTERED BYSORTED BY 分区的表的很好的解释。这与创建带有分区的表然后使用CLUSTER BY 填充表(例如使用INSERT OVERWRITE)相比如何? CLUSTER BY 是表中的持久排序吗?

【问题讨论】:

    标签: sorting hive hiveddl


    【解决方案1】:

    即使 INSERT OVERWRITE + CLUSTER BY 会生成具有持久排序数据的表,除了创建 CLUSTERED BY 表之外,没有其他方法可以告诉 hive 数据已经排序。只有当 Hive 知道排序数据并因此可以优化查询时,您才能从排序数据(例如排序合并连接)中受益。除非您指定该表是聚集(排序)的,否则数据不一定按照生成或传递给写入器的顺序写入磁盘。通常(堆)表在理论上没有排序。写入器进程不会以与输入相同的顺序写入数据,因为它是缓冲(延迟写入)和并行的。

    【讨论】:

      猜你喜欢
      • 2016-09-04
      • 2011-05-22
      • 1970-01-01
      • 2012-11-22
      • 2015-10-07
      • 1970-01-01
      • 1970-01-01
      • 2016-05-13
      • 1970-01-01
      相关资源
      最近更新 更多