string(36) "/blog/?pageid=1&uid=138&mod=document"

HOME

ABOUT US

Blog

Blog

Blog

[Ark for CDC] 데이터 충돌 가이드

2020.12.21

Ark for CDC를 통해 실시간 변경 데이터 추출을 하는 과정에서 테이블 전체 또는 부분 초기 복제 이후 타겟에서 SQL문을 적용할 때 중복 레코드 및 누락 레코드 오류가 발생할 수 있다. 이는 초기 복제시에 적용된 트랜잭션이 데이터 변경 분 복제에서 중복으로 추출되기 때문이며, 이를 방지하기 위한 제어 방법이 요구된다. 

 

일반적으로 SQL 처리 중 에러가 발생하는 경우 Post 를 중단하는데,  

 

 

20201221093241_aijmfma.jpg

- Insert 중복

 


- Update 문의 NO_DATA_FOUND

- Delete 문의 NO_DATA_FOUND

위와 같은 에러에 대한 예외 처리가 데이터 충돌 가이드의 주된 내용이다. 

Ark for CDC에서 지원하는 데이터 충돌 처리 방법은 Ignore, Adjust_Collision이 있는데 

 

20201221093310_22drwhy.jpg


1. Adjust Collision
데이터 충돌이 발생할 때에 Post 가 아래와 같이 수행되도록 한다. 
                   20201221093417_m39tesb.jpg

◆ Insert문의 Row 가 이미 존재한다면, Insert는 Update로 변환
◆ Update문의 Row가 존재하지 않는다면, Update는 Insert로 변환
◆ Delete 문의 Row 가 존재하지 않는다면, Post는 해당 케이스를 에러로 처리하지 않고 Skip​

2. Ignore
​Post는 기본적으로 적용중인 SQL에 에러가 발생하면 동작을 중단하지만,
20201221093511_89l4lsg.jpg

물론 위의 두가지 방법으로 모든 케이스에 대한 예외 처리가 될 수는 없다.

Ark for CDC에서 이와 같이 Adjust_Collision와 Ignore을 통해 데이터 충돌 처리에 대한 설정을 해둠으로써 SQL문을 Target System에 안정적으로 적용할 수 있도록 한다. ​