我已用以下属性更新了hive-site.xml文件:
set hive.support.concurrency = true;
set hive.enforce.bucketing = 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 employee_basic set dept = 'IT';
但是得到错误:
失败:semanticexception[error 10297]:尝试对不使用acidoutputformat或未绑定的表employee\u det.employee\u basic执行更新或删除
2条答案
按热度按时间lh80um4z1#
“在第一个版本中只支持orc文件格式。该功能的构建使得任何存储格式都可以使用事务,这些存储格式可以确定如何将更新或删除应用于基本记录(基本上,具有显式或隐式行id),但到目前为止,集成工作仅针对orc完成。”
https://cwiki.apache.org/confluence/display/hive/hive+transactions
p5cysglq2#
根据给定的详细信息,看起来您已经启用了配置单元
ACID
.为了
ACID
需要支撑台ORC
已启用格式和存储桶。我看到您启用了bucket,但不确定表是否在
ORC
格式。使用检查表定义show create table
,以了解它是否满足上述条件。有关详细信息,请参阅https://cwiki.apache.org/confluence/display/hive/hive+transactions