针对两种不同需求的HIVE分区策略

时间:2020-01-16 15:18:52

标签: hive hdfs partitioning

场景:

  • 每天通过以下方式将数据提取/插入到单个表中: 平面文件。我们将此表命名为TABLE_A。
  • 每天都会从TABLE_A将数据利用到新表中。 9/10次查询将是“从TABLE_A中选择* *,其中load_date =昨天”。
  • 数据存储在HDFS(Hive Avro表)中。

问题

存储7年以上的数据会询问该表,这意味着扫描2500多个文件和数十亿行数据以查找仅对“新数据”感兴趣的ETL查询。通过在加载数据上对表进行分区,可以轻松实现这一点,但随后有2500+个分区和2500+个文件。

我的问题

我需要一个解决方案,这并不意味着我的表具有2500+个文件的2500+分区。我当时认为理想的做法是在加载日期( 01-01-2019 )的前30天进行分区,然后在月份(01- 02 -2019)。但这将涉及到1个表和分区逻辑,我认为这些逻辑不存在。

关于如何实现性能优异并满足我的需求的任何想法吗?

尽管我想使用不同的技术或策略来存储在HDFS中,但所有这些都在1张表以下是我无法更改的。

0 个答案:

没有答案