Hive建表时开启事务机制导致insert失败

28 篇文章 2 订阅
9 篇文章 1 订阅

建表语句:

create table A (
     table_code string,
     data_dt string,
     update_dt string)
     clustered by (table_code) into 1 buckets
     row format delimited fields terminated by '\033'
     stored as orc -- orc格式
     tablproperties('transactional'='true');

执行insert…values操作:

insert into table A values('1','2','3');

出现异常:

FAILED: SemanticException [Error 10265]: This command is not allowed on an ACID table default.a with a non-ACID transaction manager. Failed command: null

原因:

Hive建表语句指定tblproperties(‘transactional’=‘true’),则执行插入操作时,不能直接使用insert…values语句,原因是开启了事务机制。建议使用insert…select方式。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Hive中,可以使用多种方式向表中插入数据。一种常见的方式是使用INSERT INTO语句,将数据直接插入到已存在的表中。例如,可以使用以下语法将数据插入到表中: INSERT INTO 表名 VALUES (值1, 值2, ...); 另一种方式是使用LOAD DATA语句,将数据从外部文件加载到表中。可以使用以下语法将数据加载到表中: LOAD DATA LOCAL INPATH '文件路径' OVERWRITE INTO TABLE 表名; 其中,'文件路径'是指外部文件的路径,可以是本地文件系统或HDFS上的文件路径。 还有一种方式是创建外部表,使用CREATE EXTERNAL TABLE语句创建表,并指定外部数据的位置。然后可以使用LOAD DATA语句将数据加载到外部表中。这种方式可以将数据存储在外部位置,而不是Hive默认的仓库位置。例如: CREATE EXTERNAL TABLE 表名 (字段1 数据类型, 字段2 数据类型) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LOCATION '外部数据路径'; 其中,'外部数据路径'是指外部数据存储的位置。 需要注意的是,根据具体的需求和数据来源,选择合适的方式来插入数据到Hive表中。 #### 引用[.reference_title] - *1* *2* *3* [Hive建表、导入数据和插入数据操作](https://blog.csdn.net/louzhu_lz/article/details/90046028)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值