다음을 통해 공유


대상에 변경 내용 적용

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

변경 데이터의 증분 로드를 수행하는 통합 서비스 패키지의 데이터 흐름에서 세 번째이자 마지막 작업은 변경 사항을 대상에 적용하는 것입니다. 삽입을 적용하려면 하나의 구성 요소, 업데이트를 적용하는 구성 요소, 삭제를 적용하는 구성 요소가 필요합니다.

참고 항목

변경 데이터를 증분 로드하는 패키지의 데이터 흐름을 디자인하는 두 번째 태스크는 삽입, 업데이트 및 삭제를 구분하는 것입니다. 이 구성 요소 에 대한 자세한 내용은 프로세스 삽입, 업데이트 및 삭제를 참조하세요. 변경 데이터를 증분 로드하는 패키지를 만드는 전체 프로세스에 대한 설명은 변경 데이터 캡처(SSIS)를 참조하세요.

삽입 적용

삽입을 적용하려면 새 행에 특별한 처리가 필요하지 않으므로 OLE DB 대상을 사용합니다.

OLE DB 대상을 사용하여 삽입 처리리

  1. 데이터 흐름 탭에서 OLE DB 대상을 추가합니다.

  2. 조건부 분할 변환의 삽입이 포함된 출력을 OLE DB 대상에 연결합니다.

  3. OLE DB 대상 편집기연결 관리자 페이지에서 다음 옵션을 선택합니다.

    1. 대상 데이터베이스에 대한 OLE DB 연결 관리자 선택하거나 만듭니다.

    2. 데이터 액세스 모드 옵션을 선택한 다음 대상 테이블을 선택하거나 대상 열이 포함된 SQL 문을 입력합니다.

  4. 편집기의 매핑 페이지에서 변경 데이터의 적절한 열을 대상 테이블에 매핑합니다.

업데이트 적용

업데이트를 적용하려면 OLE DB 명령 변환을 사용합니다. 매개 변수가 있는 UPDATE 문을 사용하여 한 번에 한 행을 새 열 값으로 업데이트해야 하므로 이 변환을 사용합니다.

참고 항목

대상 구성 요소를 사용하여 업데이트를 적용할 수도 있습니다. 이 방법을 사용할 때는 대상 구성 요소를 사용하여 해당 용도로 만든 임시 테이블에 행을 저장합니다. 그런 다음 SQL 실행 태스크를 사용하여 임시 테이블의 대상에 대해 대량 업데이트 및 대량 삭제 작업을 수행합니다.

OLE DB 명령 변환을 사용하여 업데이트 처리

  1. 데이터 흐름 탭에서 OLE DB 명령 변환을 추가합니다.

  2. 조건부 분할 변환의 업데이트가 포함된 출력을 OLE DB 명령 변환에 연결합니다.

  3. 고급 OLE DB 명령 편집기연결 관리자 탭에서 대상 데이터베이스에 대한 OLE DB 연결 관리자를 선택하거나 만듭니다.

  4. OLE DB 명령에 대한 고급 편집기 구성 요소 속성 탭의 SqlCommand에 대해 매개 변수가 있는 UPDATE 문을 입력합니다.

    예를 들어 Customer 테이블에 대한 UPDATE 문에는 다음 구문이 있을 수 있습니다.

    update CDCSample.Customer  
    set TerritoryID  = ?,  
        CustomerType  = ?,  
        rowguid  = ?,  
        ModifiedDate  = ?  
    where CustomerID = ?  
    
    
  5. 편집기의 열 매핑 탭에서 변경 데이터의 적절한 열을 UPDATE 문에 있는 매개 변수에 매핑합니다.

삭제 적용

삭제를 적용하려면 OLE DB 명령 변환을 사용합니다. 행을 고유하게 식별하는 열 값에 따라 한 번에 하나의 행을 삭제하는 매개 변수가 있는 DELETE 문을 사용해야 하므로 이 변환을 사용합니다.

참고 항목

대상 구성 요소를 사용하여 삭제를 적용할 수도 있습니다. 이 방법을 사용할 때는 대상 구성 요소를 사용하여 해당 용도로 만든 임시 테이블에 행을 저장합니다. 그런 다음 SQL 실행 태스크를 사용하여 임시 테이블의 대상에 대해 대량 업데이트 및 대량 삭제 작업을 수행합니다.

OLE DB 명령 변환을 사용하여 삭제 처리리

  1. 데이터 흐름 탭에서 데이터 흐름에 따른 OLE DB 명령 변환을 추가합니다.

  2. 조건부 분할 변환의 삭제가 포함된 출력을 OLE DB 명령 변환에 연결합니다.

  3. 고급 편집기를 열어 변환을 구성합니다.

  4. 고급 OLE DB 명령 편집기연결 관리자 탭에서 대상 데이터베이스에 대한 OLE DB 연결 관리자를 선택하거나 만듭니다.

  5. OLE DB 명령에 대한 고급 편집기에서, 편집기의 구성 요소 속성 탭의 SqlCommand에 대해 매개 변수가 있는 DELETE 문을 입력합니다.

    예를 들어 Customer 테이블에 대한 DELETE 문에는 다음 구문이 있을 수 있습니다.

    delete from Customer where CustomerID = ?  
    
    
  6. 편집기의 열 매핑 탭에서 변경 데이터의 적절한 열을 DELETE 문에 있는 매개 변수에 매핑합니다.

MERGE 기능을 사용하여 삽입 및 업데이트 최적화

Transact-SQL MERGE 키워드를 사용하여 특정 변경 데이터 캡처 옵션을 결합하여 삽입 및 업데이트 처리를 최적화할 수 있습니다. MERGE 키워드에 대한 자세한 내용은 MERGE(Transact-SQL)를 참조하세요.

변경 데이터를 검색하는 Transact-SQL 문에서 cdc.fn_cdc_get_net_changes_<capture_instance> 함수를 호출할 때 all with mergerow_filter_option 매개 변수의 값으로 지정할 수 있습니다. 이 변경 데이터 캡처 함수는 삽입과 업데이트를 구분하는 데 필요한 추가 처리를 수행할 필요가 없을 때 보다 효율적으로 작동합니다. 병합 매개 변수 값을 사용하여 모두를 지정하면 변경 데이터의 __$operation 값은 삭제의 경우 1, 삽입 또는 업데이트로 인해 발생한 변경 내용의 경우 5입니다. 변경 데이터를 검색하는 데 사용되는 Transact-SQL 함수에 대한 자세한 내용은 변경 데이터 검색 및 이해를 참조하세요. 병합 매개 변수 값을 사용하여 변경 내용을 모두 검색한 후 삭제를 적용하고 나머지 행을 임시 테이블 또는 준비 테이블에 출력할 수 있습니다. 그런 다음, 다운스트림 SQL 실행 태스크에서 단일 MERGE 문을 사용하여 준비 테이블의 모든 삽입 또는 업데이트를 대상에 적용할 수 있습니다.