상태 변수 정의

적용 대상: Azure Data Factory의 SQL Server SSIS Integration Runtime

이 절차에서는 CDC 상태가 저장되는 패키지 변수를 정의하는 방법을 설명합니다.

CDC 상태 변수는 CDC 제어 태스크에 의해 로드, 초기화 및 업데이트되며 CDC 원본 데이터 흐름 구성 요소에서 변경 레코드의 현재 처리 범위를 결정하는 데 사용됩니다. CDC 상태 변수는 CDC 제어 태스크 및 CDC 원본에 공통된 모든 컨테이너에 정의할 수 있습니다. 이는 패키지 수준에 있을 수 있지만 루프 컨테이너와 같은 다른 컨테이너에 있을 수도 있습니다.

수동으로 CDC 상태 변수 값을 수정하는 것은 좋지 않지만 해당 내용을 이해하는 데에는 유용할 수 있습니다.

다음 표에서는 CDC 상태 변수 값의 구성 요소에 대한 개략적인 설명을 제공합니다.

구성 요소 설명
<state-name> 현재 CDC 상태의 이름입니다.
Cs 현재 처리 범위 시작점(현재 시작)을 표시합니다.
<cs-lsn> 이전 CDC 실행에서 처리된 마지막(로그 시퀀스 번호) LSN입니다.
CE 현재 처리 범위 끝점(현재 끝)을 표시합니다. CDC 상태에 CE 구성 요소가 있는 것은 CDC 패키지가 현재 처리 중이거나 CDC 처리 범위를 완전히 처리하기 전에 CDC 패키지가 실패했음을 나타냅니다.
<ce-lsn> 현재 CDC Run에서 처리할 마지막 LSN입니다. 처리할 마지막 시퀀스 번호는 항상 최대값(0xFFF...)으로 간주됩니다.
IR 초기 처리 범위를 표시합니다.
<ir-start> 초기 로드가 시작되기 직전 변경 내용의 LSN입니다.
<ir-end> 초기 로드가 끝난 직후 변경 내용의 LSN입니다.
TS 마지막 CDC 상태 업데이트의 타임스탬프를 표시합니다.
<timestamp> 64비트 System.DateTime.UtcNow 속성의 10진수 표현입니다.
ER 이는 마지막 작업이 실패했을 때 나타나며 오류의 원인에 대한 간단한 설명을 포함합니다. 이 구성 요소가 있으면 항상 마지막에 표시됩니다.
<short-error-text> 간단한 오류 설명입니다.

LSN 및 시퀀스 번호는 각각 Binary(10)의 LSN 값을 나타내는 최대 20자리의 16진수 문자열로 인코딩됩니다.

다음 표에서는 가능한 CDC 상태 값을 설명합니다.

시스템 상태 설명
(INITIAL) 현재 CDC 그룹에서 패키지를 실행하기 전의 초기 상태입니다. CDC 상태가 비어 있을 때의 상태이기도 합니다.
ILSTART(초기 로드 시작) 이 상태는 CDC 제어 태스크에 대한 MarkInitialLoadStart 작업 호출 후 초기 로드 패키지가 시작될 때의 상태입니다.
ILEND(초기 로드 종료) 이 상태는 CDC 제어 태스크에 대한 MarkInitialLoadEnd 작업 호출 후 초기 로드 패키지가 성공적으로 종료되는 상태입니다.
ILUPDATE(초기 부하 업데이트) 초기 처리 범위를 처리 중인 동안 초기 로드 이후에 trickle feed 업데이트 패키지를 실행할 때의 상태입니다. 이는 CDC 제어 태스크에 대한 GetProcessingRange 작업 호출 이후입니다.

__$reprocessing 열을 사용하는 경우 패키지가 대상에 이미 있는 행을 다시 처리 중일 수 있음을 나타내기 위해 1로 설정됩니다.
TFEND(Trickle-feed 업데이트 종료) 일반 CDC 실행에 대해 예상되는 상태입니다. 이 상태는 이전 실행이 성공적으로 완료되었으며 새 처리 범위를 사용한 새 실행을 시작할 수 있음을 나타냅니다.
TFSTART GetProcessingRange 작업 호출 후 CDC Control 태스크에 대한 세류 피드 업데이트 패키지의 초기 실행이 아닌 상태입니다.

이는 일반 CDC 실행이 시작되었지만 완료되지 않았거나 아직 완료되지 않았다는 것을 나타내며 클린ly(MarkProcessedRange)입니다.
TFREDO(Trickle-Feed 업데이트 다시 처리) 이 상태는 TFSTART 실행 후 GetProcessingRange 에서 발생하는 상태입니다. 이 상태는 이전 실행이 성공적으로 완료되지 않았음을 나타냅니다.

__$reprocessing 열을 사용하는 경우 패키지가 대상에 이미 있는 행을 다시 처리 중일 수 있음을 나타내기 위해 1로 설정됩니다.
오류 CDC 그룹이 ERROR 상태에 있습니다.

다음은 CDC 상태 변수 값의 예입니다.

  • ILSTART/IR/0x0000162B158700000000//TS/2011-08-07T17:10:43.0031645/

  • ILSTART/IR/0x0000162B158700000000//TS/2011-08-07T17:10:43.0031645/

  • TFEND/CS/0x0000025B000001BC0003/TS/2011-07-17T12:05:58.1001145/

  • TFSTART/CS/0x0000030D000000AE0003/CE/0x0000159D1E0F01000000/TS/2011-08-09T05:30:43.9344900/

  • TFREDO/CS/0x0000030D000000AE0003/CE/0x0000159D1E0F01000000/TS/2011-08-09T05:30:59.5544900/

CDC 상태 변수를 정의하려면

  1. SQL Server Data Tools에서 변수를 정의해야 하는 CDC 흐름이 있는 SQL Server 2019 Integration Services(SSIS) 패키지를 엽니다.

  2. 패키지 탐색기 탭을 클릭하고 새 변수를 추가합니다.

  3. 상태 변수로 인식할 수 있는 이름을 변수에 지정합니다.

  4. 변수에 문자열 데이터 형식을 지정합니다.

변수 정의의 일환으로 변수에 값을 지정하지 마십시오. 이 값은 CDC Control 태스크에서 설정해야 합니다.

CDC Control 태스크를 자동 상태 지속성과 함께 사용하려는 경우 지정한 데이터베이스 상태 테이블에서 CDC 상태 변수를 읽고 값이 변경되면 동일한 테이블로 다시 업데이트됩니다. 상태 테이블에 대한 자세한 내용은 CDC 제어 태스크CDC 제어 태스크 편집기를 참조하세요.

CDC Control 태스크를 자동 상태 지속성과 함께 사용하지 않는 경우 패키지가 마지막으로 실행되었을 때 해당 값이 저장된 영구 스토리지에서 변수 값을 로드하고 현재 처리 범위의 처리가 완료되었을 때 영구 스토리지에 다시 기록해야 합니다.

참고 항목

CDC Control Task
CDC 제어 태스크 편집기