无法更新Hive Transactional表

时间:2017-07-19 07:05:38

标签: hadoop hive

我正在尝试更新Hive Transactional表,但它给出了以下错误:

  

FAILED:SemanticException [错误10290]:遇到解析错误   解析重写的合并/更新或删除查询。

下面是我的表DDL:

CREATE TABLE bucketed_poc(
Col1 Int,
Col2 Int
)
CLUSTERED BY (Col2) INTO 10 BUCKETS
STORED AS ORC TBLPROPERTIES("transactional"="true","orc.compress"="ZLIB");

以下是我为ACID表设置的属性:

set hive.enforce.bucketing = true;
set hive.support.concurrency = true;
set hive.exec.dynamic.partition.mode = nonstrict;
set hive.txn.manager = org.apache.hadoop.hive.ql.lockmgr.DbTxnManager;
set hive.compactor.initiator.on = true;
set hive.compactor.worker.threads = 1;

我可以删除数据,但更新无效。我正在运行下面提到的更新查询:

Update bucketed_poc set col2 = 1 where `col1=877639`; 

1 个答案:

答案 0 :(得分:0)

在hive事务表中,您无法更新分段列。在您的情况下,在col2列上进行存储,因此您无法更新col2。