hive - 如何禁用 Hive 表的事务?

我有一个最初作为事务创建的 Hive 表,但我想禁用表上的事务,因为它们实际上并不需要。

我尝试使用 ALTER TABLE 禁用它们,但出现错误:

hive> ALTER TABLE foo SET TBLPROPERTIES('transactional'='false');
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. Unable to alter table. TBLPROPERTIES with 'transactional'='true' cannot be unset

我正在使用 Hive 2.3.2

最佳答案

根据documentation不允许更改 TBLPROPERTIES ("transactional"="false")。

您可以重新创建表。

先做表备份:

create table bkp_table as 
select * from your_table;

然后删除表并在没有 transactional 属性的情况下重新创建。从备份重新加载数据。

或者创建一个新表,从旧表加载数据,删除旧表,重命名新表。

https://stackoverflow.com/questions/56775112/

相关文章:

azure - 运行管道测试时出现无效的按需测试运行运行 ID 0 错误

python - 如何修复将文件上传到 Google Cloud Storage 时的内存泄漏?

scala - 寻找第二个匹配隐式

android - 为什么 PlacesClient.fetchPlace Task 永远不会触发回

c# - 使用具有多个证书和私钥的 PEM 文件

google-chrome - Chrome 开发工具 : memory heap snapshot

c++ - ArrayFire GFOR 循环意外错误

apache-kafka - 无法从客户端 session ID 读取其他数据

python - ipywidgets 与 Jupyter Lab 版本 1.0+ 兼容吗?

python - 命令提示符中的彩色文本在 "cls"之后但不在 "cls"之前