在alter table tbl partition set location期间触发sql表锁

8e2ybdfx  于 2021-06-26  发布在  Hive
关注(0)|答案(0)|浏览(153)

我们正在使用sparksql2.2.0和hivemetastore(在hdinsight上)。我们在存储在azure blob上的分区Parquet文件上构建了外部表。数据将以Parquet格式发送到blob,对此我们没有影响。
我们需要接受分区数据更新(aka。(重述)对以下方面影响最小:
对数据运行查询的下游系统(避免中断查询和长时间等待等)
数据更新过程(尽可能避免长时间等待和复杂的逻辑)
我们正在考虑这样做作为执行更新的一种方式(没有什么特别的):

ALTER TABLE tbl PARTITION(YEAR=2018, MONTH=1, DAY=30) 
SET LOCATION 'wasb:///mylocation/table/20180130/v2'

我们期望什么样的表(或分区)锁定机制/逻辑?我在谷歌上搜索了一下,但我不清楚答案。
在hive/spark中有没有什么参数可以用来控制它,除了打开/关闭所有的并发 hive.support.concurrency ?
还有别的办法解决这类问题吗?我们已经在特定的分区文件夹中测试了直接覆盖Parquet文件,但是由于它需要运行,所以看起来更麻烦 recoverPartitions 一次又一次地重建Dataframe。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题