如何禁用配置单元表的事务?

sqyvllje  于 2021-06-24  发布在  Hive
关注(0)|答案(1)|浏览(518)

我有一个最初创建为事务性的配置单元表,但我想禁用该表上的事务,因为它们实际上并不需要。
我试着用 ALTER TABLE ,但我有个错误:

hive> ALTER TABLE foo SET TBLPROPERTIES('transactional'='false');
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. Unable to alter table. TBLPROPERTIES with 'transactional'='true' cannot be unset

我正在使用Hive2.3.2

carvr3hs

carvr3hs1#

根据文档,不允许更改tblproperty(“transactional”=“false”)。
您可以重新创建表。
先备份表:

create table bkp_table as 
select * from your_table;

然后删除表并重新创建 transactional 财产。从备份重新加载数据。
或者创建一个新表,从旧表加载数据,删除旧表,重命名新表。

相关问题