반응형

선행 제약 조건

 

선행 제약 조건은 이전 작업의 수행 결과를 이용하여 다음 작업의 수행을 제어합니다. 우선 선행 제약 조건을 살펴보기에 앞서 SSIS에서의 경로에 대해 잠시 설명하겠습니다. SQL 2000 DTS에서는 작업과 작업을 연결하는 경로는 한 종류만 있었습니다.

 

 

 

앞의 작업이 성공 또는 실패, 완료에 따라 다음 작업의 수행 여부를 설정하였습니다. 위의 그림에서 [작업설정]이라는 ActiveX 스크립트 작업이 성공으로 끝나는 경우(녹색), 다음 작업인 [테이블 Clear 작업]을 수행하라고 설정된 상태입니다.

 

SSIS에서는 제어 흐름데이터 흐름에도 경로가 있습니다.

 

 

 

 

제어 흐름 영역에서의 경로가 본 강좌에서 설명할 선행 제약 조건이며, 데이터 흐름 영역에서의 경로는 이와는 다른 데이터 흐름 경로입니다.

(데이터 흐름 경로는 다음 강좌를 참고하시기 바랍니다.)

 

SSIS선행 제약 조건DTS에서와 마찬가지로 이전 작업이 성공일 때 수행하도록 할 경우에는 녹색 선, 실패일 때 수행하도록 할 경우에는 붉은색 선, 성공 이나 실패의 여부에 상관없이 완료되었을 때 수행하도록 할 경우에는 파란색 선으로 표시됩니다. 하지만, 이러한 제약 조건과 더불어 을 이용하여 판단하는 기능이나 여러 제약 조건에 대한 처리 기능이 추가되었습니다.

 

에 대해 간단히 설명하면 다음과 같습니다. 만약 선행 작업이 데이터를 변환하는 작업일 경우, 데이터 변환 작업의 성공 여부뿐만 아니라, 변환된 행 수에 따라 이 후 작업의 실행 여부를 설정해야 할 경우가 있습니다. , 변환된 행 수가 최소한 100건 이상인 경우에만 다음 작업을 수행하도록 할 경우, [성공]이라는 제약 조건[행 수가 100보다 커야 한다]라는 을 같이 이용하여 다음 작업 실행 여부를 판단하도록 하는 것입니다.

 

 

 

제어 흐름 영역에서의 연결 선을 더블 클릭하면 위와 같은 선행 제약 조건 편집기가 나타납니다.

 

평가 작업(E)제약 조건에 대한 유형을 설정합니다.

Ÿ           제약 조건 단순히 이전 작업의 수행 결과가 성공, 실패, 완료인지에 따라 다음 작업의 실행 여부가 결정됩니다. 이 옵션을 선택할 경우, 자동으로 아래의 (X)부분은 비활성화 됩니다.

Ÿ           이전 작업의 성공, 실패, 완료 여부와는 상관없이 (X) 부분에서 정의된 조건식의 여부에 따라 다음 작업의 실행 여부가 결정됩니다.

Ÿ           식 및 제약 조건 이전 작업의 수행 결과와 조건식이 모두 만족할 때에만 다음 작업이 실행되도록 설정합니다. 예를 들어, 위의 그림에서 앞 부분의 작업이 수행되면 행 수가 [사용자::RowCount]라는 SSIS 내의 사용자 변수에 저장이 됩니다. 이 경우, 앞 부분의 작업 수행 여부도 성공이어야 하며, RowCount에 저장된 값이 RowThreshold라는 변수에 저장된 값보다 크거나 같은 경우에만 다음 단계를 실행하도록 설정한 것입니다.

Ÿ           식 또는 제약 조건 이전 작업의 수행 결과 또는 조건식 중 하나라도 만족하는 경우, 다음 작업이 실행되도록 설정합니다.

 

(X)에서 사용자 변수는 위에서와 같이 @변수명 형태로 설정해야 합니다. 조건식을 작성한 후, 테스트(T)를 이용하여 작성한 조건식이 유효한지를 확인할 수 있습니다.

 

여러 제약 조건 또한 SSIS에서 새롭게 추가된 기능입니다. 예를 들어 하나의 작업에 여러 선행 작업이 설정되어 있을 경우,

             모든 선행 작업의 제약 조건이 모두 True가 되어야 다음 작업을 수행하도록 할 지,         - 논리적 AND

또는

여러 작업들 중 하나라도 만족하면 다음 작업을 수행하도록 할 지                                  - 논리적 OR

를 설정합니다.

 

다음 그림에서 [실패]라는 스크립트 작업에 대해 [테이블 행 수 계산][성공] 스크립트 작업이 선행 작업으로 설정되어 있습니다. 이 때 [테이블 행 수 계산] 작업이 실패하거나, [성공] 스크립트 작업이 성공적으로 수행되는 경우 [실패] 스크립트 작업이 수행되도록 설정한 것입니다.

 

 

논리적 AND인 경우에는 실선으로 표시되며, 논리적 OR인 경우 위의 그림과 같이 점선으로 표시됩니다.

 

 

단순히 성공, 실패, 완료만을 설정했던 이전 버전에 비해 다양해진 추가 기능으로 인해 선행 제약 조건의 설정 작업이 조금 복잡할 수 있습니다. 하지만, 다양한 형태의 작업 경로를 구현할 수 있다는 점에서 매우 우수한 기능이라 할 수 있습니다.

 

 

 

반응형

+ Recent posts