Transactions in Hive
默认分类
2020-01-15
378
0
Hive 0.14中提供了行级的事务,目前支持 insert ,delete和update。
目前有很多限制,比如支持ORC格式的文件,并且该表需要有桶
开启事务
在命令行中执行以下语句
hive>set hive.support.concurrency = true;hive>set hive.enforce.bucketing = true;
hive>set hive.exec.dynamic.partition.mode = nonstrict;
hive>set hive.txn.manager = org.apache.hadoop.hive.ql.lockmgr.DbTxnManager;
hive>set hive.compactor.initiator.on = true;
hive>set hive.compactor.worker.threads = a positive number on at least one instance of the Thrift metastore service;
创建测试表格
CREATE TABLE college(clg_id int,clg_name string,clg_loc string) clustered by (clg_id) into 5 buckets stored as orc TBLPROPERTIES('transactional'='true');表格名‘college’ ,字段‘clg_id, clg_name, clg_loc’ 。以‘clg_id’列进行分桶 ,表格格式’orc‘ 最后指定表格属性TBLPROPERTIES 为‘transactional’=’true’
插入数据
INSERT INTO table college values(1,'nec','nlr'),(2,'vit','vlr'),(3,'srm','chen'),(4,'lpu','del'),(5,'stanford','uk'),(6,'JNTUA','atp'),(7,'cambridge','us');
更新数据
UPDATE college set clg_id = 8 where clg_id = 7;文档说不能更新桶列,不过我执行的时候没问题,估计新版本改进了
UPDATE college set clg_name = 'IIT' where clg_id = 6;
删除数据
delete from college where clg_id=5;
0条评论