BigData/Hive
Hive 트랜잭션 설정 Update, Delete
개발자웅이
2024. 6. 20. 15:26
Hive 3.1.3 기준입니다.
Update, Delete등의 질의를 사용하기위해 Hive에 트랜잭션을 설정하겠습니다.
// 영구 적용을 위한 hive_site.xml 설정 값 추가
vi ${HIVE_HOME}/conf/hive-site.xml
<property>
<name>hive.support.concurrency</name>
<value>true</value>
</property>
<property>
<name>hive.enforce.bucketing</name>
<value>true</value>
</property>
<property>
<name>hive.exec.dynamic.partition.mode</name>
<value>nonstrict</value>
</property>
<property>
<name>hive.txn.manager</name>
<value>org.apache.hadoop.hive.ql.lockmgr.DbTxnManager</value>
</property>
<property>
<name>hive.compactor.initiator.on</name>
<value>true</value>
</property>
<property>
<name>hive.compactor.worker.threads</name>
<value>2</value>
</property>
저장 후 hive 재기동 필요
update, delete 테스트
// hive 콘솔 진입
hive
// DB 생성 및 테이블 생성
create database test;
create table test.myOrcTable (col1 string, col2 string) STORED AS ORC TBLPROPERTIES ('transactional' = 'true');
// INSERT
insert into test.myOrcTable values ('1', 'a');
insert into test.myOrcTable values ('2', 'b');
// UPDATE
update test.myOrcTable set col2 = 'c' where col2 = 'b';
// SELECT 확인, 'b' 였던 col2가 'c'로 변경되었는지 확인
select * from test.myOrcTable
// DELETE
delete from test.myOrcTable where col2 = 'a';
// SELECT 확인, col2가 'a'인 행이 삭제되고, 'c' 인 행만 남아있는지 확인
select * from test.myOrcTable
감사합니다.
반응형