MS SQL 에서 활용하는 CDC(Change Capture Data) 활용하는 방법에 대하여 정리합니다.
개요
CDC란 INSERT, UPDATE 및 DELETE 작업와 같은 테이블 변경 작업을 식별하여 추적하는 기술입니다.
주로 실시간성 스트리밍 데이터에 활용되는 기술이며, 대용량 데이터에서도 활용하면 리소스를 절약할 수 있습니다.
SQL Server 에는 2008 에 처음 도입되었습니다.
SQL Agent를 통해 테이블 변경이 있을 때마다 프로시저를 트리거하는 방식으로 구현되었습니다.
SQL Server 2016 에는 위 기능이 SQL Agent을 사용하지 않고 간단히 설정할 수 있도록 업데이트 되었습니다.
두 버전 모두 테이블 단위로 CDC가 설정되고 해당 설정이 켜진 테이블은 Temporal Table(History table)이 생성됩니다.
테이블의 변경이 생기면 Temporal Table에 변경 이력이 남습니다.
* 주의 *
Managed Service는 가격이 굉장히 비쌉니다. 24시간으로 서비스를 유지하기 때문인 것 같습니다.
ADF에 있는 CDC도 RDB의 아래 기술을 활용한 기능입니다.
Managed Service를 사용하지 않고 아래와 같이 구현하여 메뉴얼로 트리거하여 활용하는 것을 추천합니다.
구현
구현 방법은 Hisotry Table을 설정해주면 됩니다.
alter table [TableName]
set (system_versioning = on (HISTORY_TABLE = [TableName]));
해당 설정 후에 아래와 같이 확인할 수 있습니다.
아래 History 테이블은 다른 테이블과 동일하게 조작할 수 있습니다.
Ref.
03. [Blog] https://quiz12.tistory.com/89
04. [Blog] https://itequia.com/en/table-versioning-in-sql-server-what-is-it-and-how-does-it-work/
05. [Blog] https://burning-dba.tistory.com/75
'Database > MSSQL' 카테고리의 다른 글
[MSSQL] Query로 XML 파싱하기 (0) | 2024.05.01 |
---|---|
[MSSQL] View와 SP에 참조되는 테이블 확인하기 (0) | 2024.04.12 |
[MSSQL] sys 함수 정리 (0) | 2023.11.20 |