在Hadoop中,分区表是否是一个坏主意?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Hadoop中,分区表是否是一个坏主意?相关的知识,希望对你有一定的参考价值。
我正在通过Roberto在下面的帖子中给出答案。
What is the difference between partitioning and bucketing a table in Hive ?
看起来像是按日期划分数据(如果我的数据每天都来)并不是一个好主意,因为它最终会在HDFS中创建许多目录和文件,并会降低查询的整体性能?
在我有业务需求的情况下,如果要更频繁地使用日期来查询数据,我该怎么办?
答案
将日期用作分区绝对没有错。实际上,它是最常用的分区值之一。每年365个额外的目录不会对集群的性能产生任何影响。
至于它改变文件的数量:如果你每天摄取数据,那么无论你是否在日期分区,文件的数量都不会改变。唯一的区别是文件存储在哪个目录中。鉴于您将经常根据日期查询,您绝对应该在日期之间进行分区。
罗伯托的观点是有效的,但他说的是你有比你正在考虑使用更多分区的情况。根据Hortonworks employee:
当前具有RDBMS Metastore后端的Hive版本应该能够处理10 000多个分区。
因此,您应该按日期进行分区,但是在待办事项中添加一个Jira票证,以便在300年内对其进行重新评估。
以上是关于在Hadoop中,分区表是否是一个坏主意?的主要内容,如果未能解决你的问题,请参考以下文章