hive分区表查询优化

6tqwzwtp  于 2021-05-31  发布在  Hadoop
关注(0)|答案(1)|浏览(419)

我刚到Hive,一般来说,hadoop生态系统。根据我对hive基础知识的了解,你可以基于某些属性在hive表上创建分区。如果一个查询提到了该属性,那么它应该会得到性能提升,因为hive只扫描特定的分区文件,而不是扫描整个表。我的问题是假设我们在数据中有一些层次结构。例如,我根据唯一的状态值对表进行分区,并且每次查询基于状态时,配置单元将只扫描该特定的状态分区,而不是扫描整个表。但是,如果每个状态也有唯一的区域名称,则如果我仅根据区域值进行查询,配置单元将扫描整张table?
如果是这样的话,那么是否有某种方法来更改查询,使我可以手动指示配置单元查询分区所属的特定状态文件,然后仅对该分区文件执行其他操作,而不是扫描整个表以查找匹配的分区值。

8gsdolmq

8gsdolmq1#

hive的优点之一是它对分区有很强的支持。然而,当你写查询时,它无法读懂你的心思。
如果你有一个分区 state ,那么你需要 statewhere 用于分区修剪的子句。所以,如果你只查询 district ,整个table都会被扫描。
如果你有一个分区 district ,那么你需要这个地区。对…的质询 state 会扫描整张table。
如果两者都有分区。好吧,那么声明就有点复杂了,但是您的查询将读取少数分区,其中一个分区 state 或者 district .
如果您只是在学习分区,我建议您从日期分区开始。这些都是最常见的和一个很好的方式来熟悉这个概念。

相关问题