삽입, 업데이트 및 삭제 처리Process Inserts, Updates, and Deletes

변경 데이터를 증분 로드하는 Integration Services 패키지의 데이터 흐름에서 두 번째 태스크는 삽입, 업데이트 및 삭제를 구분하는 것입니다.In the data flow of an Integration Services package that performs an incremental load of change data, the second task is to separate inserts, updates, and deletes. 그런 다음 적절한 명령을 사용하여 대상에 해당 작업을 적용할 수 있습니다.Then, you can use appropriate commands to apply them to the destination.

참고

변경 데이터를 증분 로드하는 패키지의 데이터 흐름을 디자인하는 첫 번째 태스크는 변경 데이터를 검색하는 쿼리를 실행하는 원본 구성 요소를 구성하는 것입니다.The first task in designing the data flow of a package that performs an incremental load of change data is to configure the source component that runs the query that retrieves the change data. 이 구성 요소에 대한 자세한 내용은 변경 데이터 검색 및 이해를 참조하세요.For more information about this component, see Retrieve and Understand the Change Data. 변경 데이터를 증분 로드하는 패키지를 만드는 전체 프로세스에 대한 설명은 변경 데이터 캡처(SSIS)를 참조하세요.For a description of the overall process for creating a package that performs an incremental load of change data, see Change Data Capture (SSIS).

값을 연결하여 삽입, 업데이트 및 삭제 구분Associating Friendly Values to Separate Inserts, Updates, and Deletes

변경 데이터를 검색하는 쿼리 예에서 cdc.fn_cdc_get_net_changes_<capture_instance> 함수는 __$operation이라는 메타데이터의 열만 반환합니다.In the example query that retrieves change data, the cdc.fn_cdc_get_net_changes_<capture_instance> function returns only the column of metadata named __$operation. 이 메타데이터 열은 변경을 발생시킨 작업을 나타내는 서수 값을 포함합니다.This metadata column contains an ordinal value that indicates which operation caused the change.

참고

cdc.fn_cdc_get_net_changes_<capture_instance> 함수를 호출하는 쿼리에 대한 자세한 내용은 변경 데이터 검색을 위한 함수 만들기를 참조하세요.For more information about the query that uses calls the cdc.fn_cdc_get_net_changes_<capture_instance> function, see Create the Function to Retrieve the Change Data.

서수 값을 해당 작업에 일치시키는 것은 작업의 니모닉을 사용하는 것만큼 쉽지 않습니다.Matching an ordinal value to its corresponding operation is not as easy as using a mnemonic of the operation. 예를 들어 'D'로 쉽게 삭제 작업을 나타내고 'I'로 삽입 작업을 나타낼 수 있습니다.For example, 'D' can easily represent a delete operation and 'I' represent an insert operation. 변경 데이터 검색을 위한 함수 작성항목에서 만든 쿼리 예는 서수 값을 새 열에 반환되는 문자열 값으로 변환합니다.The example query that was created in the topic, Creating the Function to Retrieve the Change Data, makes this conversion from an ordinal value to a friendly string value that is returned in a new column. 다음 코드 세그먼트에서는 이 변환을 보여 줍니다.The following segment of code shows this conversion:

select   
    ...  
    case __$operation  
        when 1 then 'D'  
        when 2 then 'I'  
        when 4 then 'U'  
        else null  
     end as CDC_OPERATION  

조건부 분할 변환을 구성하여 직접 삽입, 업데이트 및 삭제 전송Configuring a Conditional Split Transformation to Direct Inserts, Updates, and Deletes

변경 데이터 행을 직접 세 개의 출력 중 하나로 전송하려면 조건부 분할 변환이 가장 적합합니다.To direct rows of change data to one of three outputs, the Conditional Split transformation is ideal. 변환에서는 각 행의 CDC_OPERATION 열 값만 검사하여 변경이 삽입, 업데이트, 삭제 중 어느 작업이었는지 확인합니다.The transformation just checks the value of the CDC_OPERATION column in each row and determines whether that change was an insert, update, or delete.

참고

CDC_OPERATION 열은 __$operation 열의 숫자 값에서 파생된 문자열 값을 포함합니다.The CDC_OPERATION column contains a friendly string value derived from the numeric value in the __$operation column.

조건부 분할 변환을 사용하여 처리를 위해 삽입, 업데이트 및 삭제를 분할하려면To split inserts, updates, and deletes for processing by using a Conditional Split transformation

  1. 데이터 흐름 탭에서 조건부 분할 변환을 추가합니다.On the Data Flow tab, add a Conditional Split transformation.

  2. OLE DB 원본의 출력을 조건부 분할 변환에 연결합니다.Connect the output of the OLE DB source to the Conditional Split transformation.

  3. 조건부 분할 변환 편집기의 아래쪽 창에 다음 세 줄을 입력하여 세 개의 출력을 지정합니다.In the Conditional Split Transformation Editor, in the lower pane of the editor, enter the following three lines to designate the three outputs

    1. 조건 CDC_OPERATION == "I" 가 있는 줄을 입력하여 삽입된 행을 삽입의 출력으로 전송합니다.Enter a line with the condition CDC_OPERATION == "I" to direct inserted rows to the output for inserts.

    2. 조건 CDC_OPERATION == "U" 가 있는 줄을 입력하여 업데이트된 행을 업데이트의 출력으로 전송합니다.Enter a line with the condition CDC_OPERATION == "U" to direct updated rows to the output for updates.

    3. 조건 CDC_OPERATION == "D" 가 있는 줄을 입력하여 삭제된 행을 삭제의 출력으로 전송합니다.Enter a line with the condition CDC_OPERATION == "D" to direct deleted rows to the output for deletes.

다음 단계Next Step

처리를 위해 행을 분할한 후 다음 단계는 대상에 변경 내용을 적용하는 것입니다.After you split the rows for processing, the next step is to apply the changes to the destination.

다음 항목: 대상에 변경 내용 적용Next topic: Apply the Changes to the Destination

관련 항목:See Also

조건부 분할 변환 Conditional Split Transformation
조건부 분할 변환을 사용하여 데이터 집합 분할Split a Dataset by Using the Conditional Split Transformation