赞
踩
当我们在 Hive 中创建外表时,需要映射 HDFS 路径,数据落入到 HDFS 上时,我们在 Hive 中查询时会发现 HDFS中有数据,Hive 没有数据,那是因为我们在 HDFS 上的数据还没有成功修复至 Hive中,需要进行分区的修复(或者称之为添加分区)
set hive.msck.repair.batch.size=1;
set hive.msck.path.validation=ignore;
msck repair table test;
注意:如果数据量较大,或分区数量较多,整表修复虽然方便但是会伴随风险。
alter table dwd.test add if not exists partition (sample_date='20220102',partition_name='r') location '/warehouse/tablespace/external/hive/dwd.db/test/sample_date=20220102/partition_name=r';
alter table dwd.test set location '/warehouse/tablespace/external/hive/dwd.db/test/sample_date=20220102/partition_name=r'
注意:每个分区单独修复这样比较稳健,但是伴随的就是工作量会变多,也就是说 Hive 表中有多少个 parition 就要执行多少次 sql。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。