hive之性能优化
一、 hive事务
- 事务(Transaction )指一组单元化操作,这些操作要么都执行,要么都不执行
- ACID特性
Atomicity:原子性–要么都执行要么都不执行
Consistency:一致性–完整性约束
Isolation:隔离性–同一时间只能允许一个事务请求同一数据
Durability:持久性–事务对数据库的更改都保存在数据库
- 事务的特点和局限性
1) V0.14版本开始支持行级事务
支持INSERT、DELETE、UPDATE(v2.2.0开始支持Merge)
文件格式只支持ORC
2)局限
表必须是bucketed表
需要消耗额外的时间、资源和空间
不支持开始、提交、回滚、桶或分区列上的更新
使用较少
- 事务的开启和设置
1)通过Hive命令行方式设置,当前session有效
set hive.support.concurrency = true;
set hive.enforce.bucketing = true;
set hive.exec.dynamic.partition.mode = nonstrict;
set hive.txn.manager = org.apache.hadoop.hive.ql.lockmgr.DbTxnManager;
set hive.compactor.initiator.on = true;
set hive.compactor.worker.threads = 1;
2)通过配置文件设置,全局有效