我正在经历“编程蜂巢”并找到了以下内容。
Hive offers no support for rowlevel
inserts, updates, and deletes. Hive doesn’t support transactions.
但是在CDH5上我可以在我的表中添加一行。但更新和删除会将错误抛出为“语义错误”。我读到可以在配置单元上设置ACID属性,但它不起作用。
问题:我们可以更新和删除配置单元中的记录吗?
答案 0 :(得分:0)
Hive不适用于OLTP,但现在它支持ACID操作,您必须为其更改一些配置。如需尝试,请执行以下操作:
set hive.support.concurrency = true;
set hive.enforce.bucketing = true;
set hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode = nonstrict;
步骤1 create table testTableNew(id int ,name string )
clustered by (id) into 2 buckets
stored as orc TBLPROPERTIES('transactional'='true');
步骤2 insert into table testTableNew values (1,'row1'),(2,'row2'),(3,'row3');
第3步update testTableNew set name = 'updateRow2' where id = 2;
步骤4 delete from testTableNew where id = 1;