2015-01-01 44 views
0

配置单元0.14,我有一个支持ACID事务的表。配置单元0.14:无法在带桶的ACID支持表中插入数据

create table HiveTest 
(EmployeeID Int,FirstName String,Designation String, 
Salary Int,Department String) 
clustered by (department) into 3 buckets 
stored as orc TBLPROPERTIES ('transactional'='true'); 

OK.i可以在这个表中插入数据:

from stagingtbl 
insert into table HiveTest 
select employeeid,firstname,designation,salary,department; 

但是,如果我不与此表使用水桶:

create table HiveTest 
(EmployeeID Int,FirstName String,Designation String, 
Salary Int,Department String) 
stored as orc TBLPROPERTIES ('transactional'='true'); 

我会得到错误时插入数据:表没有分开。

所以我们必须在ACID事务支持中创建一个带有桶的表来插入数据?
我们可以用其他方法在ACID支持表中插入数据吗?

回答

3

Hive Transactions国限制部分:

  • 开始,提交和ROLLBACK尚不支持。所有的语言操作都是自动提交的。该计划将在未来的版本中支持这些计划。
  • 此第一版本仅支持ORC文件格式。该功能的构建使得事务可以被任何存储格式所使用,这些存储格式可以确定更新或删除如何应用于基本记录(基本上,它具有显式或隐式行ID),但迄今为止只进行了集成工作ORC。
  • 默认情况下,交易配置为关闭。请参阅下面的“配置”部分,了解需要设置哪些值进行配置的讨论。
  • 表格必须使用这些功能。不使用事务和ACID的同一系统中的表不需要分支。
  • 此时只支持快照级别隔离。当给定的查询开始时,将提供数据的一致快照。不支持脏读,读提交,可重复读或可序列化。随着BEGIN的推出,其意图是在事务期间支持快照隔离,而不仅仅是单个查询。其他隔离级别可能会根据用户请求添加。
  • 现有的ZooKeeper和内存中的锁管理器与事务不兼容。无意解决这个问题。有关如何为事务存储锁定的讨论,请参阅下面的基本设计。
0

您正在使用哪个版本的Hive? Hive 0.13支持交易属性,但部分为原子性,一致性Durabalility但不隔离。 Hive 0.14支持,但仅支持分表和表应存储为ORC格式。确保您在HIVE_HOME中配置hive-site.xml以支持并发和动态分区并保留其他属性。

相关问题