database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
ㆍMS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MS-SQL Tutorials 193 게시물 읽기
 News | Q&A | Columns | Tutorials | Devel | Files | Links
No. 193
SQL SERVER DTS [3]
작성자
정재익(advance)
작성일
2001-12-07 12:28
조회수
14,876

SQL SERVER DTS (5) - 대량 데이터 삽입하기

 

대량 삽입 작업은 많은 양의 데이터를 Microsoft SQL Server 테이블 또는 뷰에 복사할 수 있는 가장 빠른 방법이다.

데이터를 고속으로 이동하려면, 원본 파일에서 테이블 또는 뷰로 데이터가 이동하는 동안 데이터에서 변환을 수행할 수 없다.

 

예를 들어, 회사의 대형 시스템에 백만 개의 행을 가진 제품 목록이 있다고 하자. 그리고 전자 상거래 시스템이 SQL Server 2000을 사용하여 제품 목록을 표현하고 있다. 또한 대용량 시스템의 마스터 제품 목록과 함께 제품 테이블을 매일 밤 업데이트 해야 한다면, 이럴 경우 대량 삽입 작업을 통해 구현하면 좋다.

제품 목록을 탭 구분 형식으로 저장하고 대량 삽입 작업을 사용하여 데이터를 SQL Server 테이블에 직접 복사한다. 테이블은 제품 업데이트를 손쉽게 구현 할 수 있다.

 

[b]대량 삽입 작업을 사용하기 전, 다음을 고려합니다.[/b]

. 대량 삽입 작업은 텍스트 파일에서 SQL Server 테이블 또는 뷰로만 데이터를 
  전송할 수 있다. 데이터베이스 관리 시스템(DBMS)에서 데이터를 전송하려면, 
  원본 프로그램에서 데이터 파일로 데이터를 내보낸 다음 데이터 파일에서 SQL 
  Server 테이블 또는 뷰로 테이블을 가져와야 한다.
. 데이터 대상은 SQL Server가 만든 테이블 또는 뷰이어야 한다. 대상 테이블 
  또는 뷰에 이미 데이터가 포함되어 있다면, 대량 삽입 작업이 실행될 때 새 데이터가 
  추가된다.
. 대량 삽입 작업 개체에 서식 파일을 사용할 수 있다. bcp 유틸리티가 만든 서식 
  파일이 있다면, 대량 삽입 작업에 그 경로를 지정할 수 있다. 지정한 경로는 
  서버에 대한 것이어야 한다.

[b]텍스트 원본 파일의 경로를 지정할 경우[/b]

. 대량 삽입 작업을 실행 중일 때, sysadmin 고정 서버 역할의 구성원만 패키지를 
  실행할 수 있다.
. 파일의 위치에 상관없이 서버는 파일 및 대상 데이터베이스를 사용할 수 있는 
  권한이 있어야 한다.
. 서버가 대량 삽입 작업을 실행한다. 따라서 지정한 경로는 서버에 대한 것이어야 
  한다. 

[b]성능을 최적화하려면[/b]

. 텍스트 파일이 SQL Server의 인스턴스를 실행 중인 같은 컴퓨터에 있을 경우, 
  데이터가 네트워크로 이동되지 않기 때문에 복사 작업은 더 빠른 속도로 이루어진다.
. 대량 삽입 작업은 오류를 일으키는 행을 로깅하지 않는다. 이 정보를 캡처해야 
  한다면, 다른 작업인 데이터 변환 작업이 오류를 일으키는 행을 예외 파일에 
  캡처할 수 있다. 그러나 오류를 로그에 기록하면 데이터 전송이 느려진다. 속도에 
  우선 순위가 있다면, 대량 삽입 작업을 사용한다. 오류를 캡처하는 것이 더 중요
  하다면, 데이터 변환 작업을 사용한다. 

[b]DTS 디자이너에서 DTS 패키지에 대량 삽입 작업을 추가하려면[/b]

. 연결 도구 모음에서 Microsoft OLE DB Provider for SQL Server 연결을 데이터 
  변환 서비스(DTS) 디자인 시트로 끌어와서 연결을 구성한다. 
. 대량 삽입 작업에는 Microsoft OLE DB Provider for SQL Server 연결이 한 개 
  있어야 한다. 그러한 연결이 패키지에 이미 구성되어 있으면 단계 1을 생략할 
  수 있다.
. 작업 도구 모음에서 대량 삽입 작업을 디자인 시트로 끈다. 

 

SQL SERVER DTS (6) - 다양한 데이터 변환 이용하기 1

 

데이터 변환 서비스(DTS)를 통해 데이터 변환시 같은 필드의 값을 옮기더라도 필드값을 대문자로 변환하거나 문자열의 일부분을 추출해서 변환시키고 싶다면 가능할까? 물론 이러한 기능을 DTS에서는 제공하고 있다.

데이터 변환 서비스(DTS)에서는 사용 가능한 DTS 변환 유형 중 하나를 사용하거나 사용자 지정 변환을 제공하여 원본 행 집합에서 대상 테이블로 데이터를 전송할 수 있다.변환이 적용될 때 데이터가 수정되거나 변환 유형의 규칙에 따라 데이터가 복사된다.

 

먼저 지난 DTS 디자이너 예제: Northwind 데이터 복사 (1) 에서부터 시작해 보자.

 

DTS 디자이너에서 그래픽으로 데이터 변환 작업 및 데이터 기반 쿼리 작업 사용. 패키지에 추가한 각 데이터 변환 작업 또는 데이터 기반 쿼리 작업에는 하나 이상의 열 변환이 포함되어 있다.

 

변환을 구성하려면, 데이터 변환 작업 속성 및 데이터 기반 쿼리 작업 속성 대화 상자의 변환 탭을 사용한다. 이 탭은 작업에 사용되는 원본 및 대상 간의 모든 열 매핑을 표시한다. 이 탭을 원본 및 대상 열 사이의 관계와 어떤 변환을 사용할 것인지 구성하는 출발점으로 사용할 수 있다.

 

데이터 변환 서비스(DTS)에서는 다음과 같은 데이터 변환 유형을 제공하고 있다.

. 열 복사 변환 
  일반적인 원본 데이터를 대상에 복사
. ActiveX 스크립트 변환
  Microsoft ActiveX 스크립트를 사용하여 열 수준 변환
. 날짜 시간 문자열 변환
  원본 데이터를 새 대상 형식으로 변환하는 데 사용하는 변환
. 대문자 문자열 변환
  문자열을 대문자로 변환하는 데 사용하는 변환
. 소문자 문자열 변환
  문자열을 소문자로 변환하는 데 사용하는 변환
. 문자열 중간 부분 변환
  원본에서 부분 문자열을 추출하여 결과를 대상에 두기 전 옵션으로 대/소문자를 
  변경하거나 공백을 자르는 데 사용하는 변환
. 문자열 자르기 변환
  원본 문자열에서 선행, 후행 또는 중간 공백을 제거하고 결과를 대상에 두는 데
  (옵션으로 대/소문자 변환) 사용하는 변환
. 파일 읽기 변환
  원본 열이 지정한 파일의 내용을 대상 열로 복사하는 데 사용하는 변환
. 파일 쓰기 변환
  첫 번째 원본 열에 명명된 각 파일에 대해 새 데이터 파일을 만들고 두 번째 
  원본 열의 데이터에서 각 파일의 내용을 초기화하는 변환

 

열 복사 변환

 

열 복사 변환은 Microsoft ActiveX 스크립트 또는 데이터에 적용되는 다른 변환 없이 원본에서 대상 열로 데이터를 직접 복사한다. 이 방법으로 데이터를 복사할 경우, 다음을 고려해야 한다.

 

. 열 지정. 단일 원본 열에서 단일 대상 열로 또는 여러 원본 열에서 여러 대상 
  열로 열 복사 변환을 지정할 수 있다.
. 변환 만들기. 변환 플래그를 사용하여 데이터 형식 변환에 허용되는 엄격함을 
  보장할 수 있다. 이러한 변환 플래그는 데이터 변환 서비스(DTS) 디자이너 
  또는 프로그래밍 방식을 사용하여 변환을 만들거나 편집할 경우 사용할 수 있다. 
  기본적으로 DTS는 원본 및 대상 열 사이에 가능한 모든 변환을 허용한다. 
. 잘림 문제. 열 복사 변환은 오류 또는 알림 없이 텍스트를 잘라낸다. 잘림의 
  가능성을 방지하기 위해 변환 플래그를 설정할 수 있지만, 잘림이 필요한 첫 
  번째 행에서 변환이 실패하도록 할 수 없다.
. 복사 시 열 변경. 열 복사 변환을 사용하여 여러 원본 및 대상 열을 복사할 때, 
  같은 열을 여러 대상 열에 복사할 수 있다. 

 

 

SQL SERVER DTS (7) - DTS 패키지 1

 

SQL SERVER의 데이터 변환 서비스(DTS)는 다음의 3가지 방식으로 패키지를 생성할 수 있다. 각 방식을 통해 패키지를 생성하는 법을 알아보자.

 

. DTS 가져오기/내보내기 마법사
      . 가장기본적인 형태로 SQL Server 2000 데이터베이스로 테이블 형식 데이터를 
        가져오는 것과 같은 데이터 변환에 사용한다.

. DTS 디자이너
      . DTS 개체 모델을 직접 액세스하고 패키지 작업을 보다 강력하게 제어하려는 
        개발자를 위해 사용한다. 
        물론 데이터웨어하우스를 구축하거나 데이터마이닝을 고려한다면 당연히 
        디자이너를 통해 패키지를 생성하는 것이 강력한 제어를 할 수 있다.
     . 그래픽 개체를 사용하여 복잡한 워크플로를 포함하는 패키지를 작성하는 데 
       도움을 주는 응용 프로그램이다.
     . 복수 연결, 복잡한 워크플로 및 이벤트 기반 논리를 필요로 하는 복잡한 
       데이터 변환 솔루션에 사용한다.

. DTS 응용 프로그램 프로그래밍
     . 프로그래밍 방식으로 만든 패키지는DTS 디자이너에서 열고 보다 자세하게 
       사용자 지정할 수 있다. 또한 DTS 가져오기/내보내기 마법사나 DTS 
       디자이너에서 만든 패키지는 Visual Basic 프로그램으로 저장한 후 
       Microsoft Visual Studio와 같은 개발 환경에서 열어 좀더 자세하게 사용자 
       지정할 수 있다.

[b]DTS 가져오기/내보내기 마법사를 사용하여 새 패키지를 만들려면 [/b]

     . SQL Server 엔터프라이즈 관리자 콘솔 트리에서 데이터 변환 서비스를 
       마우스 오른쪽 단추로 클릭하고 모든 작업을 선택한 다음 데이터 가져오기 
       또는 데이터 내보내기를 클릭합니다. 

[b]DTS 디자이너를 사용하여 DTS 패키지를 만들려면 [/b]

     . SQL Server 엔터프라이즈 관리자 콘솔을 연다.

     . 콘솔 트리에서 데이터 변환 서비스를 마우스 오른쪽 단추로 클릭한 다음 
       새 패키지를 클릭한다. 

[b]DTS 패키지 템플릿을 액세스하려면[/b]

     . SQL Server 엔터프라이즈 관리자에서 데이터 변환 서비스를 마우스 오른쪽 
       단추로 클릭한다.
     . 모든 작업을 가리키고 템플릿 열기를 클릭한다.
     . 파일 선택 대화 상자에서 원하는 템플릿(.dtt 파일)을 두 번 클릭한다.
[Top]
No.
제목
작성자
작성일
조회
236SQL 서버 디스크 동작 모니터링 방법
정재익
2002-01-08
12944
210Transact-SQL
정재익
2001-12-14
20559
194SQL SERVER DTS [4]
정재익
2001-12-07
15589
193SQL SERVER DTS [3]
정재익
2001-12-07
14876
192SQL SERVER DTS [2]
정재익
2001-12-07
12663
191SQL SERVER DTS [1]
정재익
2001-12-07
20451
190MS SQL 서버 몇가지 팁 (FAQ)
정재익
2001-12-07
22132
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.049초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다