Hive数据库中执行更新和删除数据操作

在Hive中,ACID表是支持ACID(原子性、一致性、隔离性和持久性)事务的表。这意味着这些表支持事务处理,如INSERT、UPDATE、DELETE和COMMIT操作。

然而,并非所有的Hive表都是ACID表。例如,如果你正在使用一个不支持ACID事务的Hive版本或配置,那么你可能无法在这些表上执行ACID事务。

要在Hive中创建支持ACID事务的表,需要按照以下步骤进行配置:

1.确保你的Hive版本至少为0.14.0或以上

2.在hive-site.xml文件中启用ACID事务支持。将以下属性添加到hive-site.xml文件中:

<configuration>
<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>
</configuration>

3.重启Hive服务以使更改生效。

创建表的语句

create table if not exists your_table_name
(
    id       int,
    username varchar(256) comment '用户名'
)
    clustered by (
                 id
        )INTO 3 BUCKETS ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
    stored as
        orc
    tblproperties ('transactional'='true');

使用上述建表语句创建的表就可以进行数据的更新和删除操作了。

posted @ 2023-09-13 15:36  万事胜意k  阅读(332)  评论(0编辑  收藏  举报