Contents

[-]
1 개요
2 예제


1 개요 #

Data Reader 원본에서 동적쿼리를 사용하는 방법에 대한 예제다. MySQL을 Data Reader로 SSIS에서 사용할 때에 성능문제(참고:SSIS의 DataReader원본을 사용하여 MySQL 접근(ODBC)시 성능 문제 발생)가 발생했었다. 어쨌든 이를 해결하는 방법으로 또 다른 대안을 제시하고 동적쿼리를 던지는 방법까지 보겠다. 다음의 프로그램을 다운받아 설치하자.
[http]Download Connector/Net 6.0(http://dev.mysql.com/downloads/connector/net/6.0.html) (.Net 3.5 이상 필요, .Net 2.0은 5.x 버전 사용)

2 예제 #

1. SSIS에서 새패키지를 생성한다.
2. 도구상자에서 [데이터 흐름 작업]을 끌어다가 놓는다.
3. [데이터 흐름 작업]을 더블 클릭하고, [DataReader 원본]을 끌어다가 놓는다.
4. 연결관리자에서 [새 ADO.NET 연결]을 선택하여 연결을 만든다. (Connector/Net을 설치했다면 MySQL Data Provider가 보일 것이다)

dr01.jpg

dr02.jpg

5. [DataReader 원본]을 더블 클릭하여 생성된 연결관리자를 선택한다.
dr03.jpg

6. 구성요소 탭을 클릭하여 SqlCommand를 다음과 같이 limit 1을 주어 편집한다.
dr04.jpg

7. 열 맵핑 탭을 클릭하여 열 맵핑을 한 후 [확인] 버튼을 눌러 편집을 종료한다.
dr05.jpg

8. 확인을 위해 도구상자에서 [DataReader 대상]을 끌어다 놓고, [DataReader 원본]과 연결한다.
dr06.jpg

9. 일단 제어 흐름으로 나와 변수를 하나 생성한다.
dr08.jpg

9. 여기부터가 중요!! 제어 흐름으로 나와 [데이터 흐름 작업]의 속성에서 '기타'부분의 Expressions를 편집한다.
dr07.jpg

10. 편집화면에서 아래의 그림과 같이 속성을 [DataReader 원본].[SqlCommand]를 선택한다.
dr09.jpg

11. 식을 편집해야 하는데 위의 그림에서 [....] 버튼을 눌러 다음과 같이 편집한다.
dr10_1.jpg

12. 모든 편집을 마쳤다면 [확인] 버튼을 눌러 편집을 종료한 후 F5를 눌러 실행시키자. 1건이 아닌 4건이 나온 것을 볼 수 있다. 처음에 주었던 SQL이 아닌 Expressions에서 편집된 SQL이 실행되었음을 짐작할 수 있다.
dr11.jpg

13. [DataReader 원본]에서 구성 요소 속성 탭을 보면 편집한 쿼리로 바뀐 것을 볼 수 있다. 그러므로 재편집 할 경우에는 단계9의 Expressions를 편집에서 "select * from event where seq_num <= " + @[사용자::p] + " limit 1"과 같이 편집하여 [DataReader 원본]을 수정하는 것이 바람직 할 것이다.
dr12.jpg
Retrieved from http://databaser.net/moniwiki/wiki.php/SSIS-DataReader원본에서동적쿼리사용
last modified 2018-06-12 16:06:35