다음을 통해 공유


4-3단원: 오류 흐름 리디렉션 추가

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

이전 작업에서 조회 통화 키 변환은 변환이 손상된 샘플 플랫 파일을 처리하려고 할 때 일치 항목을 생성할 수 없으며, 그러면 오류가 발생합니다. 변환은 오류 출력에 대하여 기본값 설정을 사용하므로 오류가 발생하면 변환은 실패합니다. 변환이 실패하면 나머지 패키지도 실패합니다.

변환이 실패하도록 허용하는 것보다는 오류 출력을 사용하여 실패한 행을 다른 처리 경로로 리디렉션하도록 구성 요소를 구성할 수 있습니다. 별도의 오류 처리 경로를 사용하면 더 많은 옵션이 제공됩니다. 예를 들면 데이터를 정리한 다음 실패한 행을 다시 처리할 수 있습니다. 나중에 유효성을 검사하고 다시 처리할 수 있도록 오류 정보와 함께 실패한 행을 저장할 수 있습니다.

이 작업에서는 오류 출력에 실패한 행을 리디렉션하도록 조회 통화 키 변환을 구성합니다. 데이터 흐름의 오류 분기에서 Integration Services는 이러한 행을 파일에 기록합니다.

기본적으로 Integration Services 오류 출력의 두 개 추가 열(ErrorCodeErrorColumn)에는 숫자 오류 코드와 오류가 발생한 열의 ID만 포함되어 있습니다. 이 태스크에서는 패키지가 실패한 행을 파일에 기록하기 전에 스크립트 구성 요소를 사용하여 Integration Services API에 액세스하고 오류 설명을 가져옵니다.

오류 출력 구성

  1. SSIS 도구 상자에서 일반을 확장한 다음 스크립트 구성 요소데이터 흐름 탭의 디자인 화면으로 끕니다. 스크립트조회 통화 키 변환의 오른쪽에 놓습니다.

  2. 스크립트 구성 요소 유형 선택 대화 상자에서 변환을 선택하고 확인을 선택합니다.

  3. 두 구성 요소를 연결하려면 조회 통화 키 변환을 선택한 다음 빨간색 화살표를 새 스크립트 변환으로 끕니다.

    빨간색 화살표는 조회 통화 키 변환의 오류 출력을 나타냅니다. 빨간색 화살표를 통해 변환을 스크립트 구성 요소에 연결하여 모든 처리 오류를 스크립트 구성 요소에 리디렉션한 다음 이 구성 요소에서 오류를 처리하고 대상으로 보냅니다.

  4. 오류 출력 구성 대화 상자의 오류 열에서 행 리디렉션을 선택한 다음 확인을 선택합니다.

  5. 데이터 흐름 디자인 화면에서 새 스크립트 구성 요소스크립트 구성 요소 이름을 선택하고 해당 이름을 Get Error Description으로 변경합니다.

  6. 오류 설명 가져오기 변환을 두 번 클릭합니다.

  7. 스크립트 변환 편집기 대화 상자의 입력 열 페이지에서 ErrorCode 열을 선택합니다.

  8. 입력 및 출력 페이지에서 출력 0을 확장하고 출력 열을 선택한 다음 열 추가를 선택합니다.

  9. Name 속성에 ErrorDescription을 입력하고 DataType 속성을 유니코드 문자열 [DT_WSTR]으로 설정합니다.

  10. 스크립트 페이지에서 LocaleID 속성이 영어(미국)로 설정되었는지 확인합니다.

  11. 스크립트 편집을 선택하여 Microsoft VSTA(Visual Studio Tools for Applications)를 엽니다. Input0_ProcessInputRow 메서드에서 다음 코드를 입력하거나 붙여넣기합니다.

    [Visual Basic]

    Row.ErrorDescription =   
      Me.ComponentMetaData.GetErrorDescription(Row.ErrorCode)  
    

    [Visual C#]

    Row.ErrorDescription = this.ComponentMetaData.GetErrorDescription(Row.ErrorCode);  
    

    완성된 서브루틴은 다음 코드와 같습니다.

    [Visual Basic]

    Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)  
    
      Row.ErrorDescription =   
        Me.ComponentMetaData.GetErrorDescription(Row.ErrorCode)  
    
    End Sub  
    

    [Visual C#]

    public override void Input0_ProcessInputRow(Input0Buffer Row)  
        {  
    
            Row.ErrorDescription = this.ComponentMetaData.GetErrorDescription(Row.ErrorCode);  
    
        }  
    
  12. 빌드 메뉴에서 솔루션 빌드를 선택하여 스크립트를 빌드하고 변경 내용을 저장한 다음, VSTA를 닫습니다.

  13. 확인 을 선택하여 스크립트 변환 편집기 대화 상자를 닫습니다.

다음 작업으로 이동

4단계: 플랫 파일 대상 추가