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

- Insert 중복
- Update 문의 NO_DATA_FOUND
- Delete 문의 NO_DATA_FOUND
위와 같은 에러에 대한 예외 처리가 데이터 충돌 가이드의 주된 내용이다.
Ark for CDC에서 지원하는 데이터 충돌 처리 방법은 Ignore, Adjust_Collision이 있는데

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

◆ Insert문의 Row 가 이미 존재한다면, Insert는 Update로 변환
◆ Update문의 Row가 존재하지 않는다면, Update는 Insert로 변환
◆ Delete 문의 Row 가 존재하지 않는다면, Post는 해당 케이스를 에러로 처리하지 않고 Skip
2. Ignore
Post는 기본적으로 적용중인 SQL에 에러가 발생하면 동작을 중단하지만,

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