我有一个最初创建为事务型的Hive表,但是我想禁用该表上的事务,因为实际上并不需要它们。
我尝试使用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
我正在使用Hive 2.3.2
答案 0 :(得分:0)
根据documentation更改TBLPROPERTIES(“ transactional” =“ false”),是不允许的。
您可以重新创建表。
首先进行表备份:
create table bkp_table as
select * from your_table;
然后删除表并再次创建不具有transactional
属性的表。从备份中重新加载数据。
或创建一个新表,从旧表中加载数据,删除旧表,重命名新表。
答案 1 :(得分:0)
您必须重新创建表。
如果需要,请先备份表。然后,x0 = 69
x1 = 174
y0 = 0.0000296
y1 = 0.0001652
m = (log10(y1) - log10(y0)) / (x1 - x0)
k = y0 / pow(10, m * x0)
y = k * pow(10, m * bar_index)
plot(y)
使用 DROP TABLE
创建表
TBLPROPERTIES ( 'transactional'='false' )
您可以选择输入和输出格式