SQL Server/SSIS 강좌

열 가져오기 - BLOB(Binary Large Object) 데이터를 저장하자

SungWookKang 2015. 7. 16. 09:42
반응형

SSIS - 열 가져오기 - BLOB(Binary Large Object) 데이터를 저장하자

 

 

오늘은 열 가져오기 입니다. 

   

열 가져오기 및 열 내보내기 (다음 포스팅 예정)는 BLOB (Binary Large Object)형 데이터를 대상로 수행 되는 작업 입니다.

   

보통 이미지나 큰 텍스트 파일들을 보관할 때에는 데이터베이스에 주소만 기록하고 실제의 파일은 다른 물리적인 위치에 경유하는 경우가 많습니다. 

   

하지만 SQL Server에서도 Image, Text, varbinary 등 데이터를 저장할 수 있는 타입을 제공 합니다.

   

물론 이미지를 모두 데이터베이스에 저장한다면 데이터의 크기가 커지는 문제 및 패킷 사이즈의 문제가 발생하지만

   

데이터베이스 내에 저장되기 때문에 보안수준이 데이터베이스 수준과 동일하게 유지되고 관리의 편의성이 증대 되는 장점이 있습니다.

   

   

(사용처에 대한 고민은 사용자가...알아서.....)

   

실습을 통해서 열 가져오기를 만들어 보겠습니다

   

1. 우선 테스트에 필요한 이미지 파일을 생성 합니다.

   

저는 D:\Test 라는 폴더에 

   

1.png (저 이렇게 생겼어요 ㅋ 잘생겼나요?)

 2.png

이렇게 그림 파일을 생성 하였습니다.

   

파일 경로 기억 하세요 ^^

 

 

 

   

   

2. 테스트용 테이블을 생성 합니다.

   

TBL_A : 원본 테이블

TBL_B : 출력 테이블

   

원본 테이블 (TBL_A)에 데이터를 입력 합니다. 이때 파일 경로를 실제 이미지 파일이 있는 경로로 입력 합니다.

(파일 없으면 에러 납니다. 에러 처리에 관한 포스팅은 다음 기회에~!)

 

 

   

   

3. BIDS를 실행 합니다.

프로젝트를 생성합니다.

 

 

   

4. [데이터 흐름 태스크]를 만들고 [데이터 흐름] 탭에서 아래와 같이 작업을 끌어다 놓습니다.

그리고 [열 가져오기]작업에서 [편집] 선택 합니다.

 

 

   

5. 편집기 창에서 [입력 열] 탭을 선택 합니다.

   

입력 열에서 이미지 파일의 컬럼을 선택 합니다.

 

 

   

   

6. 만약 지원되지 않는 열이 선택 된다면 오류가 발생 합니다.

 

 

   

   

   

7. [입/출력 속성] 탭으로 이동 합니다.

   

[열 가져오기 출력]을 확장하여 [출력 열]을 확장 합니다.

   

[열 추가(C)] 버튼을 선택하여 출력열을 생성하고 이름을 지정 합니다.

   

이때 이름은 기존의 컬럼 명과 구분 할 수 있는 것으로 합니다.

   

(뒤에서 매핑시 혼돈의 우려가 있기 때문에)

 

 

   

   

8. [출력 열] - [Convert_Image] 속성에서 데이터 타입을 변경 합니다.

   

[유니코드 텍스트 스트림]을 선택 합니다.

 

 

   

   

9. [Convert_Image]의 속성에서  ID 값(55) 을 기억 합니다.

 

 

   

   

10. [열 가져오기 입력] 을 확장하여 [입력 열] 에서 기존의 이미지 경로 컬럼을 선택합니다.

   

그리고 속성 창에서 [FileDataColumnID]를 Convert_Image 의 ID값을 입력하여 매핑 합니다.


 

 

   

   

11. 출력 선을 모두 연결 합니다.

   

TBL_B에서 [편집]을 선택 합니다.

 

 

   

   

12. TBL_B의 [편집기]창에서 입력열과 출력열에 대한 매핑을 합니다.

   

기존의 add_file이 아닌 변환된 값을 저장하여야 하므로 입력열 - 출력열 의 매핑을 변경 합니다.

 

 

   

13. 패키지를 실해 합니다.

   

늘 그러듯!

   

녹색 :  정상 실행

   

빨간색 : 오류 발생


 

 

   

   

14. 데이터를 확인 합니다.

   

기존 TBL_A에는 파일의 경로만 가지고 있습니다.

   

TBL_B에는 해당 경로의 그림파일에 대한 바이너리 값이 저장된 것을 확인 할 수 있습니다.

 

 

   

   

열 가져오기를 활용하면 외부의 다른 툴 없이도 그림파일을 간단히 DB로 저장할 수 있을 듯 합니다.

 

 

강성욱 / http://sqlmvp.kr

 

반응형