脚本:
数据每天通过平面文件摄取/插入到单个表中。我们将此表命名为table\ a。
这些数据每天都被利用,从表a到新表中。9/10次查询将是“select*from table\ U a where load\ U date=THREADY”。
数据存储在hdfs(hiveavro表)中。
问题
存储了7年以上的数据,问一个表的问题意味着扫描2500多个文件和数十亿行数据,进行etl查询,而etl查询只对“新数据”感兴趣。这可以很容易地通过在加载数据上对表进行分区来实现,但是有超过2500+个分区和2500+个文件。
我的问题是:
我需要一个解决方案,这并不意味着我的表有2500+分区2500+文件。我在想,理想的做法是在加载日期(2019年1月1日)前30天进行分区,然后在月份(2019年1月2日)进行分区。但这将涉及到1个表和分区逻辑,我认为这是不存在的。
有没有什么办法可以让我实现一些有绩效和满足我需要的东西?
虽然我想使用不同的技术或策略,但在hdfs中存储的概念和它都在一个表下并不是我能改变的。
暂无答案!
目前还没有任何答案,快来回答吧!