Hive 为什么删除函数在配置单元外壳中不起作用? 配置单元>从每日案例中删除,其中num\u caseday=0; 失败:SemanticException[错误10294]:尝试使用不支持这些操作的事务管理器进行更新或删除。

Hive 为什么删除函数在配置单元外壳中不起作用? 配置单元>从每日案例中删除,其中num\u caseday=0; 失败:SemanticException[错误10294]:尝试使用不支持这些操作的事务管理器进行更新或删除。,hive,hiveql,Hive,Hiveql,提前感谢。Hive不以传统方式支持ACID事务。在配置单元中,您需要一些ACID事务的先决条件和不可理解的限制 您可以查看这篇文章: 有关配置单元事务的详细信息 先决条件 配置单元事务管理器应设置为DbTxnManager set Hive.txn.Manager=org.apache.hadoop.Hive.ql.lockmgr.DbTxnManager 我们需要启用并发集hive.support.concurrency=true 一旦我们设置了上述属性,我们就应该能够将数据插入到任何表中。

提前感谢。

Hive不以传统方式支持ACID事务。在配置单元中,您需要一些ACID事务的先决条件和不可理解的限制

您可以查看这篇文章:

有关配置单元事务的详细信息

先决条件 配置单元事务管理器应设置为DbTxnManager set Hive.txn.Manager=org.apache.hadoop.Hive.ql.lockmgr.DbTxnManager

我们需要启用并发集hive.support.concurrency=true

一旦我们设置了上述属性,我们就应该能够将数据插入到任何表中。 对于更新和删除,表应该是带扣的,文件格式需要是ORC或任何符合ACID的格式。 我们还需要将表属性事务设置为true tblproperty'transactional'='true'

查看属性 $cd/etc/hive/conf $grep-i txn hive-site.xml $hive-e集合;|grep-i-txn $beeline-u jdbc:hive2://localhost:10000/training\u retail 以在配置单元中创建事务表为例

设置hive.txn.manager; hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DummyTxnManager; 设置hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager; 设置hive.support.concurrency=true; 设置hive.forced.bucketing; 设置hive.exforce.bucketing=true; 设置hive.exec.dynamic.partition.mode; hive.exec.dynamic.partition.mode=strict 设置hive.exec.dynamic.partition.mode=nonstrict; 设置hive.compactor.initiator.on; 设置hive.compactor.initiator.on=true; -正数 设置hive.compactor.worker.threads; 设置hive.compactor.worker.threads=1; 创建表订单 订单号, 订单日期字符串, 订单\客户\ id INT, 订单状态字符串 按订单号聚集成8个存储桶 储存为兽人 TBLPropertiestrational=true; 将事务值插入到订单中 1,'2013-07-25 00:00:00.0',1000,'COMPLETE'; 将事务值插入到订单中 二○○一年二月二日(2013-07-25 00:00:00.0)停业, 3,'2013-07-25 00:00:00.0',1500,'待定', 4,“2013-07-25 00:00:00.0”,2041年,“待定”, 5,“2013-07-25 00:00:00.0”,2031年,“完成”; 更新订单 设置订单状态='完成' 其中订单_状态=‘待定’; 从订单中删除 其中订单状态为“完成”; 挑选* 从订单到交易;
正如@Chema解释的那样,蜂巢的酸性事务。您可以更改表属性以允许事务

您可以执行以下操作。使用此选项,您不必更改表属性

INSERT OVERWRITE INTO daily_case
SELECT * FROM daily_case WHERE num_casedaily <> 0;

您使用的是哪种分布?不使用表上的任何分布。我应该使用Distributy子句吗?