CDC 원본CDC Source

CDC 원본은 SQL Server 2017SQL Server 2017 변경 테이블에서 특정 범위의 변경 데이터를 읽고 변경 내용을 다른 SSIS 다운스트림 구성 요소로 배달합니다.The CDC source reads a range of change data from SQL Server 2017SQL Server 2017 change tables and delivers the changes downstream to other SSIS components.

CDC 원본이 읽는 변경 데이터의 범위를 CDC 처리 범위라고 합니다. 이 범위는 현재 데이터 흐름이 시작되기 전에 실행되는 CDC 제어 태스크에 의해 결정됩니다.The range of change data read by the CDC source is called the CDC Processing Range and is determine by the CDC Control task that is executed before the current data flow starts. CDC 처리 범위는 테이블 그룹의 CDC 처리 상태를 유지 관리하는 패키지 변수의 값에서 파생됩니다.The CDC Processing Range is derived from the value of a package variable that maintains the state of the CDC processing for a group of tables.

CDC 원본은 데이터베이스 테이블, 뷰 또는 SQL 문을 사용하여 SQL ServerSQL Server 데이터베이스에서 데이터를 추출합니다.The CDC source extracts data from a SQL ServerSQL Server database by using a database table, a view, or an SQL statement.

CDC 원본은 다음과 같은 구성을 사용합니다.The CDC source uses the following configurations:

  • SQL ServerSQL Server CDC 데이터베이스에 액세스하기 위한 SQL ServerSQL Server ADO.NET 연결 관리자A SQL ServerSQL Server ADO.NET connection manager to access the SQL ServerSQL Server CDC database. CDC 원본 연결 구성에 대한 자세한 내용은 CDC 원본 편집기(연결 관리자 페이지)를 참조하세요.For more information about configuring the CDC source connection, see CDC Source Editor (Connection Manager Page).

  • CDC용으로 설정된 테이블A table enabled for CDC.

  • 선택한 테이블에 대한 캡처 인스턴스의 이름(둘 이상이 있는 경우)The name of the capture instance of the selected table (if more-than-one exists).

  • 변경 처리 모드The change processing mode.

  • CDC 처리 범위 결정의 기준이 되는 CDC 상태 패키지 변수의 이름.The name of the CDC state package variable based on which the CDC Processing range is determined. CDC 원본은 해당 변수를 수정하지 않습니다.The CDC source does not modify that variable.

    CDC 원본에 의해 반환 되는 데이터에서 반환 하는 것과 같습니다는 SQL ServerSQL Server CDC 함수 cdc.fn_cdc_get_all_changes_<캡처 인스턴스 이름 > 또는 cdc.fn_cdc_get_net_changes_<캡처 인스턴스 이름 > (가능한 경우).The data returned by the CDC Source is the same as that returned by the SQL ServerSQL Server CDC functions cdc.fn_cdc_get_all_changes_<capture-instance-name> or cdc.fn_cdc_get_net_changes_<capture-instance-name> (when available). 현재 처리 범위가 테이블의 초기 로드와 겹칠 수 있는지 여부를 나타내는 __$initial_processing 열만 선택적으로 추가될 수 있습니다.The only optional addition is the column, __$initial_processing that indicates whether the current processing range can overlap with an initial load of the table. 초기 처리에 대한 자세한 내용은 CDC Control Task를 참조하십시오.For more information about initial processing, see CDC Control Task.

    CDC 원본에는 하나의 일반 출력과 하나의 오류 출력이 있습니다.The CDC source has one regular output and one error output.

오류 처리Error Handling

CDC 원본에는 하나의 오류 출력이 있습니다.The CDC source has an error output. 구성 요소 오류 출력에 다음과 같은 출력 열이 포함됩니다.The component error output includes the following output columns:

  • 오류 코드: 값은 항상 -1입니다.Error Code: The value is always -1.

  • 오류 열: 오류의 원인이 되는 원본 열입니다(변환 오류의 경우).Error Column: The source column causing the error (for conversion errors).

  • 오류 행 열: 오류의 원인이 되는 레코드 데이터입니다.Error Row Columns: The record data that causes the error.

    오류 동작 설정에 따라 CDC 원본은 추출 프로세스 중 발생하는 오류(데이터 변환, 잘림)를 오류 출력에 반환하는 작업을 지원합니다.Depending on the error behavior setting, the CDC source supports returning errors (data conversion, truncation) that occur during the extraction process in the error output. 자세한 내용은 CDC 원본 편집기(오류 출력 페이지)를 참조하세요.For more information, see CDC Source Editor (Error Output Page).

데이터 형식 지원Data Type Support

Microsoft용 CDC 원본 구성 요소는 올바른 SSIS 데이터 형식에 매핑되는 모든 SQL ServerSQL Server 데이터 형식을 지원합니다.The CDC source component for Microsoft supports all SQL ServerSQL Server data types, which are mapped to the correct SSIS data types.

CDC 원본 문제 해결Troubleshooting the CDC Source

다음에는 CDC 원본 문제 해결에 대한 정보가 들어 있습니다.The following contains information on troubleshooting the CDC source.

이 스크립트를 사용하여 문제를 격리하고 SQL Server Management Studio에서 해당 문제를 재현할 수 있습니다.Use this script to isolate problems and reproduce them in SQL Server Management Studio

CDC 원본 작업은 CDC 원본을 호출하기 전에 실행되는 CDC 제어 태스크의 작업으로 제어됩니다.The CDC source operation is governed by the operation of the CDC Control task executed before invoking the CDC source. CDC 제어 태스크는 시작 및 끝 LSN을 포함하기 위해 CDC 상태 패키지 변수의 값을 준비합니다.The CDC Control task prepares the value of the CDC state package variable to contain the start and end LSNs. 이 태스크는 다음 스크립트에 해당하는 함수를 실행합니다.It performs function equivalent to the following script:

use <cdc-enabled-database-name>  
               declare @start_lsn binary(10), @end_lsn binary(10)  
               set @start_lsn = sys.fn_cdc_increment_lsn(  
                       convert(binary(10),'0x' + '<value-from-state-cs>', 1))  
               set @end_lsn =   
                       convert(binary(10),'0x' + '<value-from-state-ce>', 1)  
               select * from cdc.fn_cdc_get_net_changes_dbo_Table1(@start_lsn,  
@end_lsn, '<mode>')  

각 항목이 나타내는 의미는 다음과 같습니다.where:

  • <cdc-설정-데이터베이스-이름 >의 이름인는 SQL ServerSQL Server 변경 테이블이 포함 된 데이터베이스입니다.<cdc-enabled-database-name> is the name of the SQL ServerSQL Server database containing the change tables.

  • <값에서-e-c s >는 CDC 상태 변수 CS로 표시 된 값은 /<값에서-e-c s > / (CS는 의미 처리 범위 시작 현재)입니다.<value-from-state-cs> is the value that appears in the CDC state variable as CS/<value-from-state-cs>/ (CS stands for Current-processing-range-Start).

  • <값에서 상태 ce > CE로 CDC 상태 변수에 나타나는 값은 /<값에서-e-c s > / (CE는 의미 처리 범위 끝 현재)입니다.<value-from-state-ce> is the value that appears in the CDC state variable as CE/<value-from-state-cs>/ (CE stands for Current-processing-range-End).

  • <모드 >는 CDC 처리 모드입니다.<mode> are the CDC processing modes. 처리 모드에는 모두, 이전 값이 포함된 모두, , 업데이트 마스크를 사용한 순 변경 내용, 병합을 사용한 순 변경 내용중 하나의 값이 지정됩니다.The processing modes have one of the following values All, All with Old Values, Net, Net with Update Mask, Net with Merge.

    이 스크립트는 오류를 식별하고 재현하기가 쉬운 SQL Server Management StudioSQL Server Management Studio에서 문제를 재현하여 문제를 격리하는 데 도움이 됩니다.This script helps isolate problems by reproducing them in the SQL Server Management StudioSQL Server Management Studio, where it is easy to reproduce and identify errors.

SQL Server 오류 메시지SQL Server Error Message

SQL ServerSQL Server에서 다음 메시지가 반환될 수 있습니다.The following message may be returned by SQL ServerSQL Server:

프로시저 또는 함수 cdc.fn_cdc_get_net_changes_에 대 한 제공 된 인수 개수가 부족<... >.An insufficient number of arguments were supplied for the procedure or function cdc.fn_cdc_get_net_changes_<..>.

이 오류는 인수가 누락되었음을 나타내지 않습니다.This error does not indicate that an argument is missing. 대신 CDC 상태 변수의 시작 또는 끝 LSN 값이 잘못되었음을 의미합니다.It means that the start or end LSN values in the CDC state variable are invalid.

CDC 원본 구성Configuring the CDC Source

SSIS 디자이너를 사용하거나 프로그래밍 방식으로 CDC 원본을 구성할 수 있습니다.You can configure the CDC source programmatically or through the SSIS Designer.

자세한 내용은 다음 항목 중 하나를 참조하십시오.For more information, see one of the following topics:

섹션 내용In This Section