我有一个分区的外部表Hive,我必须用一些记录覆盖它。有很多日期需要重新加载,查询有点繁重。我们想知道的是,是否可以同时加载两个或更多不同的分区?例如,3个(或更多)进程并行运行,如:
进程1
insert overwrite table_prod partition (data_date)
select * from table_old where data_date=20221110;
进程2
insert overwrite table_prod partition (data_date)
select * from table_old where data_date=20221111;
进程3
insert overwrite table_prod partition (data_date)
select * from table_old where data_date=20221112;
1条答案
按热度按时间wmomyfyw1#
简短的回答是肯定的。
真实的的问题是如何实现-因为您必须考虑大量的数据。
选项1 -是的,你可以使用shell脚本或一些调度工具。但是你使用的查询会很慢。你可以使用静态分区,这是更快的方式。
选项2 -您也可以使用动态分区方案一次加载所有分区。这是一个性能密集型操作,但您不必创建任何shell脚本或任何其他进程。