데이터 흐름 오류 처리

데이터 흐름 구성 요소가 열 데이터에 변환을 적용하거나, 원본에서 데이터를 추출하거나, 데이터를 대상으로 로드할 때 오류가 발생할 수 있습니다. 오류는 주로 예기치 않은 데이터 값으로 인해 발생합니다. 예를 들어 열에 숫자 대신 문자열이 포함되었기 때문에 데이터 변환이 실패하거나, 열의 데이터 형식은 숫자인데 데이터가 날짜여서 데이터베이스 열에 대한 삽입 작업이 실패하거나, 열 값이 0이어서 식 계산이 실패하고 잘못된 수치 연산이 발생할 수 있습니다.

오류는 일반적으로 다음과 같은 범주에 속합니다.

  • 변환으로 인해 유효 숫자나 비유효 숫자가 손실되거나 문자열이 잘리는 경우 발생하는 데이터 변환 오류. 데이터 변환 오류는 요청한 변환이 지원되지 않는 경우에도 발생합니다.

  • 런타임 시 계산되는 식이 잘못된 연산을 수행하거나 데이터 값이 누락 또는 잘못되어 구문이 잘못된 경우에 발생하는 식 계산 오류

  • 조회 작업이 조회 테이블에서 일치하는 항목을 찾지 못하는 경우에 발생하는 조회 오류

여러 데이터 흐름 구성 요소에서 지원되는 오류 출력을 통해 들어오고 나가는 데이터의 행 수준 오류를 구성 요소에서 처리하는 방법을 제어할 수 있습니다. 입력 또는 출력의 개별 열에 대해 옵션을 설정하여 잘림이나 오류가 발생할 경우 구성 요소에서 작동하는 방법을 지정합니다. 예를 들어 고객 이름 데이터가 잘린 경우 구성 요소가 실패하지만 덜 중요한 데이터가 포함된 다른 열의 오류는 무시하도록 지정할 수 있습니다.

오류 출력은 다른 변환의 입력에 연결되거나 오류가 없는 출력과는 다른 대상으로 로드될 수 있습니다. 예를 들어 오류 출력은 빈 열에 대해 문자열을 제공하는 파생 열 변환에 연결될 수 있습니다.

다음 다이어그램에서는 오류 출력이 포함된 간단한 데이터 흐름을 보여 줍니다.

오류 출력이 있는 데이터 흐름

데이터 열 외에도 오류 출력에는 ErrorCodeErrorColumn 열이 포함됩니다. ErrorCode 열은 오류를 식별하며 ErrorColumn에는 오류 열의 계보 식별자가 포함됩니다. 이러한 열의 메타데이터를 보려면 오류 출력을 데이터 흐름의 다음 구성 요소로 연결하는 경로를 클릭합니다. ErrorColumn 열의 값이 0으로 설정되는 경우도 있습니다. 이는 오류 조건이 단일 열 대신 전체 행에 영향을 주는 경우 발생합니다. 조회 변환에서 조회가 실패하는 경우를 예로 들 수 있습니다.

자세한 내용은 데이터 흐름 요소Integration Services 경로를 참조하십시오.

Integration Services 오류, 경고 및 기타 메시지 목록은 SSIS 오류 및 이벤트 참조를 참조하십시오.

오류 및 잘림 옵션

오류는 오류 또는 잘림의 두 범주 중 하나에 속합니다. 오류는 명확한 실패를 나타내며 NULL 결과를 생성합니다. 이러한 오류에는 데이터 변환 오류 또는 식 계산 오류가 포함될 수 있습니다. 예를 들어 영문자가 포함된 문자열을 숫자로 변환하려고 시도하면 오류가 발생합니다. 캐스트가 잘못되거나 호환되지 않는 데이터 형식을 사용하는 경우 데이터 변환, 식 평가, 변수와 속성 및 데이터 열에 식 결과를 할당하는 작업이 실패할 수 있습니다. 자세한 내용은 Cast(SSIS 식): SSIS 데이터 형식 변환, 식에서의 암시적 데이터 형식 변환Integration Services 데이터 형식을 참조하십시오.

잘림은 오류보다 덜 심각합니다. 잘림은 사용 가능하거나 심지어 필요한 결과를 생성하기도 합니다. 잘림은 필요에 따라 오류 또는 허용 가능한 조건으로 취급될 수 있습니다. 예를 들어 한 자만 수용할 수 있는 열에 15자의 문자열을 삽입하는 경우 해당 문자열을 잘라내도록 할 수 있습니다.

원본, 변환 및 대상에서 오류 및 잘림이 처리되는 방법을 구성할 수 있습니다. 다음 표에서는 옵션에 대해 설명합니다.

옵션

설명

구성 요소 실패

오류 또는 잘림이 발생하면 데이터 흐름 태스크가 실패합니다. 실패는 오류 또는 잘림에 대한 기본 옵션입니다.

오류 무시

오류 또는 잘림이 무시되고 데이터 행이 변환 또는 원본의 출력으로 전달됩니다.

행 리디렉션

오류 또는 잘림이 발생한 데이터 행이 원본, 변환 또는 대상의 오류 출력으로 전달됩니다.

오류 설명 추가

기본적으로 오류 출력에는 숫자 오류 코드가 제공되며 일반적으로 오류가 발생한 열의 ID가 포함됩니다. 스크립트 구성 요소를 사용하면 IDTSComponentMetaData100 인터페이스의 GetErrorDescription 메서드를 호출하는 단일 스크립트 줄을 통해 추가 열에 오류 설명을 포함할 수 있습니다.

스크립트 구성 요소는 캡처할 오류를 포함하는 데이터 흐름 구성 요소의 임의 다운스트림에서 데이터 흐름의 오류 세그먼트에 추가할 수 있지만 대상에 작성되는 오류 행 바로 앞에 배치하는 것이 일반적입니다. 이렇게 하면 스크립트가 작성된 오류 행에 대한 설명만 조회합니다. 예를 들어 데이터 흐름의 오류 세그먼트가 일부 오류를 수정한 다음 오류 대상에 이러한 행을 쓰지 않을 수 있습니다. 자세한 내용은 스크립트 구성 요소를 사용하여 오류 출력 향상을 참조하십시오.

대량 작업 오류

패키지에서 데이터 삽입과 같은 대량 작업을 수행할 때 데이터 오류가 발생할 수 있습니다. 오류가 발생하면 데이터에 오류가 없는 행과 오류가 있는 행이 모두 포함될 수 있습니다.

오류가 있는 행을 오류가 없는 행과 별도로 처리하려면 조건부 분할 변환 및 스크립트 구성 요소 변환과 같은 변환을 사용하여 해당 행을 다른 출력으로 배포합니다. 이러한 구성 요소에 대한 자세한 내용은 조건부 분할 변환스크립트 구성 요소를 참조하십시오.

오류 출력을 구성하려면