SQL Server/SSIS 강좌 64

문자표 - 문자 데이터를 변환 하자

문자표 - 문자 데이터를 변환 하자 안녕하세요 강성욱 입니다.(www.sqltag.org, www.sqler.com, http://blog.naver.com/jevida) 이번 시간에는 [문자표]에 대해서 알아 보도록 하겠습니다. 문자표는 대문자를 소문자로 변환하거나 전자 문자를 반자 문자로 변환하는 등 문자 데이터에 대해 변환작업을 수행 할 때 사용합니다. 대상 속성에 따라 기존 열을 변경하거나 새로운 열을 추가하여 사용 할 수 있습니다. 연산 작업의 종류 소문자 : 입력 열의 데이터를 소문자로 변경 대문자 : 입력 열의 데이터를 대문자로 변경 바이트 반전 : 입력 열의 바이트 순서를 반대로 연결 히라가나 : 일본어인 경우 히라가나로 변경 가타카나 : 일본어인 경우 가타카나로 변경 반자 : 전자 문자를..

파생 열 - 다양한 함수를 사용하여 새로운 파생열을 만들자

파생 열 - 다양한 함수를 사용하여 새로운 파생열을 만들자 안녕하세요 강성욱 입니다. (www.sqltag.org, www.sqler.com, http://blog.naver.com/jevida) 이번 시간에는 [파생 열]에 대해서 알아 보도록 하겠습니다. 파생 열은 SQL에서 계산된 열과 같이 기존의 열을 이용하여 새로운 열을 변환하는 기능 입니다. 예를들어 A, B컬럼이 있을 때 A+B를 정의하는 새로운 열 C를 만드는 기능입니다. 파생 열 변환은 데이터 변환과 거의 유사하지만 색로운 열을 추가하는 대신 기존을 대체 할 수도 있으며 여러가지 함수를 활용 함으로써 열 외에도 SSIS의 사용자 변수나 시스템 변수를 포함시킬 수도 있습니다. 길이, 전체 자릿수, 소수 자릿수, 코드페이지 등과 같은 속성은 ..

데이터 변환 - 컬럼 속성을 변경하자

데이터 변환 - 컬럼 속성을 변경하자 안녕하세요 강성욱 입니다. (www.sqltag.org, www.sqler.com, blog.naver.com/jevida) 이번 시간에는 데이터 변환에 대해서 알아 보도록 하겠습니다. 데이터 변환은 특정열에 대해여 데이터 형식, 길이, 자릿수, 코드 페이지 등의 속성을 변경하는 작업 입니다. BIDS를 실행하여 [Integration Services 프로젝트]를 생성 합니다. [제어흐름] 탭에서 [데이터 흐름 태스크]를 드래그 앤 드롭 으로 추가 합니다. [데이터 변환] 이름을 지정하여 태스크를 생성 합니다. [데이터 흐름]탭에서 그림과 같이 원본데이터(OLE DB 원본)와 대상 데이터(OLD DB 대상)을 끌어다 놓습니다. 그리고 그 사이에 [데이터 변환] 작업을..

열 복사 - 원본 열을 복사 하자

열 복사 - 원본 열을 복사 하자 안녕하세요 강성욱 입니다. (www.sqltag.org, www.sqler.com, blog.naver.com/jevida) 이번 시간에는 [열 복사]에 대해서 알아 보도록 하겠습니다. 열 복사는 멀티캐스트와 비슷하나 멀티캐스트의 경우에는 데이터 전체에 대한 복사작업이며 열 복사 변환은 입력데이터 중 특정 열을 동일한 형태로 복사를 하는 변환 입니다. 관련링크 멀티 캐스트 : http://blog.naver.com/jevida/140147086468 BIDS를 실행하여 [Integration Services 프로젝트]를 생성 합니다. [제어 흐름]탭에서 [데이터 흐름 태스크]를 드래그앤 드롭 으로 추가 합니다. [열 복사] 이름을 지정하여 태스크를 생성 합니다. [데이터..

열 내보내기 - 대상 열을 파일로 출력 하자

SSIS - 열 내보내기 이번 시간에는 열 내보내기 라는 주제를 가지고 포스팅을 합니다. 이번 장을 학습하기 이해서는 반드시 [열 가져오기]를 먼저 실습 하신 후 진행 하시길 바랍니다. (예제 데이터를 지난 학습에 사용한 데이터를 이용.) 관련 링크 열 가져오기 : http://blog.naver.com/jevida/140150105798 열 내보내기는 열 가져오기와 반대로 특정 열의 값을 파일로 출력합니다. 열을 내보낼 수 있는 유형은 텍스트 스트림 (DT_TEXT), 유니코드 텍스트 스트림(DT_NTEXT), 이미지(DT_IMAGE)만 가능 합니다. (지난번 열 가져오기 할때 사용하였던 데이터 유형 입니다.) 그럼 열 가져오기 실습이 완료 되었다는 가정하에 열 내보내기 실습을 하도록 하겠습니다. 1...

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

SSIS - 열 가져오기 - BLOB(Binary Large Object) 데이터를 저장하자 오늘은 열 가져오기 입니다. 열 가져오기 및 열 내보내기 (다음 포스팅 예정)는 BLOB (Binary Large Object)형 데이터를 대상로 수행 되는 작업 입니다. 보통 이미지나 큰 텍스트 파일들을 보관할 때에는 데이터베이스에 주소만 기록하고 실제의 파일은 다른 물리적인 위치에 경유하는 경우가 많습니다. 하지만 SQL Server에서도 Image, Text, varbinary 등 데이터를 저장할 수 있는 타입을 제공 합니다. 물론 이미지를 모두 데이터베이스에 저장한다면 데이터의 크기가 커지는 문제 및 패킷 사이즈의 문제가 발생하지만 데이터베이스 내에 저장되기 때문에 보안수준이 데이터베이스 수준과 동일하게 ..

병합 조인( 두 개의 입력된 데이터를 조인 하자)

SSIS - 병합 조인( 두 개의 입력된 데이터를 조인 하자) 오늘의 병합 조인을 하기 위해서는 반드시 이전 시간의 병합 에 대해서 꼭 학습 하여야 합니다. 병합 포스팅 : http://blog.naver.com/jevida/140149753108 병합 조인이란 무엇인가? 병합 조인은 병합과 마찬가지로 정렬되어 입력 된 2개의 데이터를 조인 하는 것 입니다. 단 수행 할수 있는 조인으로는 아래의 종류가 있습니다. 내부 조인 (INNER JOIN) 왼쪽 우선 조인 (LEFT OUTER JOIN) 완전 조인 (FULL OUTER JOIN) 병합 조인은 두 개의 입력에 대해서만 조인 할 수 있는데 이는 SQL 쿼리문을 작성하여 실행하는 것 보다 불편 할 수도 있습니다. 하지만 이기종 DBMS 및 테이블 데이터..

병합 - 두개의 입력 데이터를 합치자 (UNION ALL과 다름)

SSIS – 병합 (두개의 입력 데이터를 합치자) SSIS - 병합 기능에 대해서 알아 보도록 하겠습니다. 병합은 UNION ALL 과 비슷하지만 조금 다른 기능 입니다. 차이점에 대해서 먼저 알아보고 실습을 하도록 하겠습니다. 병합조건UNION ALL두 개만 가능입력다수 가능동일 해야 함데이터 타입동일 해야 함첫번째 입력열의 기준데이터 길이상관 없음입력 데이터가 반드시 정렬 되어 있어야 함정렬형태상관 없음 실습을 통해서 병합의 기능과 UNION ALL 의 차이점을 확인 해보도록 하겠습니다. 1. 우선 실습에 사용할 데이터를 생성 합니다. 데이터는 AdventureWorks 데이터베이스의 Person.Address 테이블 입니다. 아래 그림처럼 Person.Address 테이블에서 AdressID, Ad..

플랫파일 대상 - 데이터를 텍스트로 저장하자

플랫파일 대상 - 데이터를 텍스트로 저장하자 플랫파일 대상 - 데이터를 텍스트로 저장하자 1. BIDS를 실행하여 프로젝트를 생성 합니다. 오늘의 프로젝트 이름은 [플랫파일 대상] 입니다. 도구 상자에 보면 작업 이름이 [플랫파일 대상] 으로 되어 있어요 ^.^ 2. 늘 그렇듯 [태스크 흐름] 을 끌어다 놓습니다. 태스크 이름은 수정 하셔도 무방합니다~!! 3. 오늘의 원본 데이터 역시 샘플DB인 Adventure Works 입니다. (실습할 때 정말 유용하게 잘 쓰이는 듯 합니다.) Adventure Works 의 [Person.Adress]테이블을 원본 데이터로 사용합니다. 4.대상 작업은 [플랫 파일 대상]을 끌어다 놓습니다. 그리고 [편집]을 선택 합니다. 5. 플랫 파일 대상 편집기 에서 [새로..

SORT - 데이터를 정렬 하자

SSIS - SORT (데이터를 정렬 하자) 오늘은 SSIS의 기능에 정렬(SORT)에 대해서 알아 보겠습니다. 정렬은 우리가 자주 쓰는 기능으로 쿼리문에서는 ORDER BY 을 의미 합니다. SSIS에서 데이터를 끌어오거나 내보낼때 정렬 할 수가 있습니다. 예를들어 쿼리문의 경우를 살펴 보겠습니다. 예제 데이터베이스 : AdventureWorks AdventureWorks 데이터베이스에서 Person.Address 테이블을 조회 하여 봅니다. AddressID 로 정렬된 것을 확인 할 수 있습니다. 그렇다면 AddressLine1의 컬름으로 오름차순으로 하고 싶다. 어떻게 할까요? 아래의 쿼리 구문을 사용해야 합니다. AddressLine1으로 정렬 된 것을 확인 하셨나요? 그렇다면 이제 SSIS로 정..