반응형

파일 시스템 작업

 

필자가 처음 SSIS를 접했을 때 반가운(^^) 기능 중의 하나가 파일 시스템 작업이었습니다.

ETL 작업의 특성상, 파일을 이용하는 작업이 종종 필요합니다. 단순히 텍스트 파일로부터 데이터를 읽어오는 작업이라든지, 테이블의 내용을 텍스트로 내리는 작업(보통 속어로 데이터를 말아낸다고 하죠^^), 일별이나 월별로 폴더를 만드는 작업, 또는 오래된 파일을 자동으로 삭제하는 작업 등 다양한 곳에 적용됩니다.

참고로, SSIS 이전 버전인 SQL 2000 DTS 서비스에서는 이러한 작업들이 별도로 존재하진 않았고, ActiveX 스크립트 작업에서 FSO 개체를 이용하여 수행 했었습니다. (코딩 및 디버깅 환경이 매우 열악한 상황에서 상당히 노가다 작업이었지요..^^)

 

SSIS의 파일 시스템 작업은 거의 모든 형태의 파일 작업을 수행할 수 있습니다. 이러한 기능을 잘 조합해서 이용한다면, 데이터를 추출, 변환하는 ETL툴 뿐만 아니라, 파일을 생성, 이동, 관리를 할 수 있는 파일 관리 시스템도 작성 가능하지 않나 생각됩니다.

 

 

파일 시스템 작업제어 흐름 영역에 포함된 작업으로써, FTP 작업과 함께 파일과 관련된 작업을 수행하는 작업입니다.

파일 시스템 작업은 다음과 같은 개별 작업들을 수행할 수 있습니다.

 

 

 

1.      디렉터리 복사
SourceConnection
으로 지정된 원본의 디렉터리를 DestinationConnection으로 지정된 대상 위치로 복사합니다.
이 때, OverwriteDestination 속성을 이용하여 기존에 있는 폴더를 덮어 쓸 것인지를 지정할 수 있습니다.

연결 관리자의 사용 유형

SourceConnection : 기존 폴더     DestinationConnection : 기존 폴더



2.      파일 복사
디렉터리 복사와 동일한 형태이며, 폴더 대신 파일을 복사하는 작업입니다.

연결 관리자의 사용 유형

SourceConnection : 기존 파일     DestinationConnection : 기존 파일



3.      디렉터리 만들기
SourceConnection
으로 지정된 원본의 위치에 디렉터리를 만듭니다.
UseDirectoryIfExists
속성을 이용하여 이미 디렉터리가 있는 경우에 작업 실패로 처리할 것인지를 지정할 수 있습니다.

연결 관리자의 사용 유형

SourceConnection : 폴더 만들기

      

4.      디렉터리 삭제
SourceConnection
으로 지정된 위치에 디렉터리를 삭제합니다. 만약 해당 디렉터리가 존재하지 않는 경우에는 작업이 실패하게 됩니다.

연결 관리자의 사용 유형

SourceConnection : 기존 폴더

      

5.      디렉터리 내용 삭제
SourceConnection
으로 지정된 디렉터리에 들어있는 내용들(하위 디렉터리 포함)을 삭제합니다. 만약 해당 디렉터리가 존재하지 않는 경우에는 작업이 실패하게 됩니다.

연결 관리자의 사용 유형

SourceConnection : 기존 폴더

      

6.      파일 삭제
SourceConnection
에 지정된 파일을 삭제합니다. 만약 파일이 이미 지워지고 없더라도 해당 작업은 실패하지 않습니다.

연결 관리자의 사용 유형

SourceConnection : 기존 파일

      

7.      디렉터리 이동
SourceConnection으로 지정된 원본의 디렉터리를 DestinationConnection으로 지정된 대상 위치로 이동합니다.
이 때, OverwriteDestination 속성을 이용하여 기존에 있는 폴더를 덮어 쓸 것인지를 지정할 수 있습니다.

연결 관리자의 사용 유형

SourceConnection : 기존 폴더     DestinationConnection : 기존 폴더

      

8.      파일 이동
디렉터리 이동과 동일한 형태이며, 폴더 대신 파일을 이동시키는 작업입니다.

연결 관리자의 사용 유형

SourceConnection : 기존 파일     DestinationConnection : 기존 폴더

      

9.      파일 이름 바꾸기
파일 이동과 유사하지만, DestinationConnection기존 폴더 대신 기존 파일로 지정되어야 합니다.

연결 관리자의 사용 유형

SourceConnection : 기존 파일     DestinationConnection : 기존 파일

      

10.  특성 설정
SourceConnection으로 지정된 파일의 Hidden, ReadOnly, Archive, System 속성을 설정할 수 있습니다.

연결 관리자의 사용 유형

SourceConnection : 기존 파일

 

 

 

각 작업의 공통된 특성으로 IsSourcePathVariable IsDestinationPathVariable이 있습니다.

만약, 원본 파일 또는 디렉터리나 대상 파일 또는 디렉터리의 경로 정보를 변수에 저장시킨 후, 이를 이용할 때 이 속성값을 True로 지정한 후, 해당 변수를 각 경로로 지정하게 되면, 변수에 저장되어 있는 경로 정보를 이용할 수 있습니다.

 

참고로, 위의 내용 중, 연결 관리자사용 유형 지정에 대해 잠깐 언급하겠습니다.

파일 시스템 작업의 원본 및 대상 경로(또는 파일)에 대한 지정은 모두 작업 화면 하단에 있는 연결 관리자를 이용하게 됩니다.

 

 

SourceConnection 속성값으로 [원본 폴더] 라는 연결을 지정하고, DestinationConnection 속성값으로 [대상 파일]을 지정한 경우,

 

연결 관리자의 사용 유형

SourceConnection : 기존 폴더     DestinationConnection : 기존 파일

 

연결 관리자에서 [원본 폴더] 또는 [대상 파일]을 더블 클릭하면 다음과 같은 속성을 지정할 수 있습니다. SourceConnection [원본 폴더]이며, 사용 유형이 기존 폴더, DestionationConnection [대상 파일]이며, 사용 유형이 기존 파일이기 때문에 다음과 같이 설정해야 합니다.

 

 

 

 

 

이와 같이, 각 작업의 특성에 맞게 사용 유형을 지정해 줘야 파일 시스템 작업이 에러 없이 수행됩니다.

 


반응형

+ Recent posts