2018년 9월 29일 토요일

[SSIS] 동적 파일 생성 방법

최근 작업을 하면서 데이터를 추출 해줘야 하는 이슈가 있었다. 데이터의 양도 많고, 월별로 구분을 해줘야 하는 이슈가 있어서 SSIS 패키지를 활용하기로했다. 문제는 해당 데이터를 csv파일로 자동으로 생성을 해주는 기능이 있느냐는 것... filesystemtask에서 하는 것인줄 알았으나 createdir은 있으나 파일을 만드는 것은 없다. 그래서 구글링을 시작했으니 역시 구글은 모든 것을 알고 있다.


1. DataFlow Task 작업을 넣는다.
2. 데이터를 가지고 올 Source를 결정한다. OLEDB, Mysql 등등
3. Flat File Destination 태스크와 source를 연결한다. (나는 csv로 파일을 내보낼 것이므로 해당 Task선택) 
4. 컬럼 명 세팅과 변수 형 등을 세팅한다.
5. 4번작업까지 완료 되었으면 Connection Managers에서 해당 flat file 커넥션을 우클릭해서 properties를 선택
6. 항목에서 Experresions를 선택하면 Property Expressions Editor 창이 뜬다.
7. Property 항목에서 ConnectionString을 선택하고 Expressions를 입력할수 있도록 창을 띄운다.
8. "D:\\"+변수명+"_filename.csv" 로 설정을 하고 세팅을 완료 한다.
9. 파일을 실행 시켜서 해당 파일이 저장되었는지 확인한다.

매일가지고 오는 데이터가 있거나 규칙적으로 처리해야 하는 파일 등이 있을 때 귀찮게 클릭 여러 번 하지말고 SSIS를 활용하면 좋을 것 같다. 실제로 해당 작업을 통해서 3종류의 파일을 모두 가지고 올 수 있었으며 소요 시간은 대략 33초 정도 소요 되었다. 가장 많이 가지고온 row의 수가 100만로우 였으며, loop는 3번 돌았음을 대략적으로 계산해보면 세개의 테이블을 한번 가지고오는데 10초정도 소요되었다고 볼 수 있다. 

댓글 없음:

댓글 쓰기