CDH-hive内进行删除操作

本文介绍了解决Hive中更新与删除操作不被支持的问题。通过配置hive-site.xml文件启用事务支持,并介绍了必要的配置项。此外还强调了表构建时需遵循的规则以实现删除操作。
hive安装后需要修改已建的表及查询操作,在执行修改操作时遇到了如下问题。
 
hive> update dp set name='beijing' where id=1159;
FAILED: SemanticException [Error 10294]: Attempt to do update or delete using transaction manager that does not support these operations.
 
1、在hive-site.xml文件中,增加如下属性。
<property>
    <name>hive.support.concurrency</name>
    <value>true</value>
  </property>
    <property>
    <name>hive.enforce.bucketing</name>
    <value>true</value>
  </property>
    <property>
    <name>hive.exec.dynamic.partition.mode</name>
    <value>nonstrict</value>
  </property>
  <property>
    <name>hive.txn.manager</name>
    <value>org.apache.hadoop.hive.ql.lockmgr.DbTxnManager</value>
  </property>
    <property>
    <name>hive.compactor.initiator.on</name>
    <value>true</value>
  </property>
  <property>
    <name>hive.compactor.worker.threads</name>
    <value>1</value>
  </property>
  <property>
    <name>hive.in.test</name>
    <value>true</value>
  </property>
 
2、重启hive服务;
3、表构建必须加上,否则无法进行删除操作
CLUSTERED BY (uniq_id) INTO 8 BUCKETS
STORED AS ORC TBLPROPERTIES ('transactional'='true');
 
由于hive的删除只支持一个字句,因此要先设置好唯一健
delete from 表1 where 列1 in (select 列2 from 表2)
 

转载于:https://www.cnblogs.com/castlevania/p/8669610.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值