SQL Server 818

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

데이터 변환 - 컬럼 속성을 변경하자 안녕하세요 강성욱 입니다. (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로 정..

UNION ALL - 데이터를 합치자

SSIS - UNION ALL(데이터 합치기) UNION ALL 기능에 대해서 알아 보겠습니다. 데이터를 조작하다 보면 여러곳의 데이터를 한 곳으로 합쳐야 할때가 있습니다. 이럴때 SSIS의 UNION ALL 기능을 이용하면 빠르고 효과적인 사용이 가능 합니다. SQL의 쿼리 경우에는 테이블에 있는 데이터를 대상으로 SQL Server에서 연산작업을 합니다. 하지만 SSIS를 이용하면 텍스트, 엑셀 또는 타 DBMS에서도 수행할 수 있습니다. 여러개의 엑셀이나 텍스트 파일을 임시 저장단계 없이 UNION ALL로 변환하여 합칠 수 있습니다. 예를 들어 Address_99(99건 데이터), Address_199(100건 데이터), Address_299(100건 데이터) 이렇게 3개의 테이블이 있습니다. 만..

조건부 분할 - 조건에 따라 데이터를 구분하여 출력

SSIS - 조건부 분할 (조건에 따라 데이터를 출력하자) 조건부 분할은 원본의 데이터를 읽어서 조건에 따라 서로 다른 출력 경로(다른 여러 테이블)로 데이터를 구분하여 내보냅니다. 실습을 통해서 알아 봅니다. 이번 실습은 AdventureWorks 의 Person.Address 데이터를 0~99 ,100~ 199, 200~299 구간을 세개의 테이블로 나누어 저장 합니다. 1.BIDS를 실행하여 프로젝트를 생성 합니다. 2. 데이터 흐름 태스크 작업을 드래그& 드랍하여 끌어다 놓습니다. 3. OLE DB 원본데이터에서 AdventureWorks의 Person.Address를 선택 합니다. 4. 도구 상자에서 조건부 분할을 끌어다 놓고 편집을 선택 합니다. 5. 편집기에서 조건은 AddressID 값이 ..