在Hadoop中,分区表是否是一个坏主意?

问题描述 投票:1回答:1

我正在通过Roberto在下面的帖子中给出答案。

What is the difference between partitioning and bucketing a table in Hive ?

看起来像是按日期划分数据(如果我的数据每天都来)并不是一个好主意,因为它最终会在HDFS中创建许多目录和文件,并会降低查询的整体性能?

在我有业务需求的情况下,如果要更频繁地使用日期来查询数据,我该怎么办?

hadoop hdfs
1个回答
0
投票

将日期用作分区绝对没有错。实际上,它是最常用的分区值之一。每年365个额外的目录不会对集群的性能产生任何影响。

至于它改变文件的数量:如果你每天摄取数据,那么无论你是否在日期分区,文件的数量都不会改变。唯一的区别是文件存储在哪个目录中。鉴于您将经常根据日期查询,您绝对应该在日期之间进行分区。

罗伯托的观点是有效的,但他说的是你有比你正在考虑使用更多分区的情况。根据Hortonworks employee

当前具有RDBMS Metastore后端的Hive版本应该能够处理10 000多个分区。

因此,您应该按日期进行分区,但是在待办事项中添加一个Jira票证,以便在300年内对其进行重新评估。

© www.soinside.com 2019 - 2024. All rights reserved.