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
감사합니다.
반응형
'BigData > Hive' 카테고리의 다른 글
hive) MetaException(message:Hive Schema version 3.1.0 does not match metastore's schema version 1.2.0 Metastore is not upgraded or corrupt) 이슈 해결 (0) | 2024.01.17 |
---|---|
Hive) 테이블 컬럼명 변경 (0) | 2023.12.28 |
apache hive 엔진 tez 교체 (0) | 2023.09.08 |
Hive server, metastore 로그 (0) | 2023.09.07 |
apache tez build error 트러블슈팅 (0) | 2023.07.26 |