Peter Ahn
Peter의 우아한 프로그래밍
Peter Ahn
전체 방문자
오늘
어제
  • 전체 (115)
    • 영어공부 (15)
    • 물생활 (9)
    • 독서 (2)
    • 일상 (1)
    • IT 소식 (15)
      • 최신 기술 소식 (10)
      • 보안 소식 (5)
    • 인공지능 (AI) (2)
    • OS (19)
      • Linux (19)
    • Web (0)
      • Vue.js (0)
    • 객체지향 (1)
      • 개념과 원리 (1)
      • 디자인패턴 (0)
    • 프로그래밍 (37)
      • C (14)
      • C++ (3)
      • C# (1)
      • Python (3)
      • Javascript (2)
      • Bash (4)
      • Vim (9)
    • Database (3)
      • DB2 (3)
      • MongoDB (0)
    • 프레임워크 (1)
      • Ionic (1)
    • Cloud (1)
      • AWS (1)
    • 3D Printer (2)
    • 기록보관소 (5)
    • 초대장 (2)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

  • 프로그래밍의 세계에 오신 것을 환영합니다.

인기 글

태그

  • 리눅스 명령어
  • 구피어항
  • bash
  • AI
  • C++
  • 생활영어
  • 영어 표현
  • C언어 강좌
  • typescript
  • 딥러닝
  • Linux
  • call by reference
  • 4차 산업혁명
  • 랜섬웨어
  • vim 비주얼모드
  • 프로그래밍
  • 물생활
  • c강좌
  • 영어표현
  • 쉘 프로그래밍
  • C언어
  • 어항
  • vim
  • 리눅스
  • 인공지능
  • 구피
  • vim 강좌
  • 영어 회화
  • 하프블랙구피
  • bash shell

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Peter Ahn

Peter의 우아한 프로그래밍

[DB2] 특정 테이블 export 하기
Database/DB2

[DB2] 특정 테이블 export 하기

2018. 5. 3. 18:37
반응형

안녕하세요 피터입니다.

IBM의 DBMS인 db2에서 특정 테이블을 export 하는 방법을 소개하겠습니다.


export 명령어는 주로 대용량 데이터를 처리할 때 사용하며 table의 데이터를 file로 추출하기 때문에 db2 shell 에서 작업하는 것이 일반적입니다.


db2 계정으로 로그인 후 아래와 같이 명령어 수행

db2 connect
db2 "export to test.del of del select * from tmptable"


export가 완료되면 test.del 파일에 csv형태로 데이터가 저장됩니다.

※ csv(comma seperated value): 각 값이 콤마(,) 로 구분된 데이터

문자열 데이터는 "" 로 감싸여진 형태로 되어 있고, 숫자형 데이터는 "" 없이 값이 그대로 저장되기 때문에 구분이 가능합니다.

이렇게 export의 결과물인 del 파일을 이용해서 다시 db2 명령어인 import를 하면 파일의 데이터를 데이터베이스에 저장할 수 있습니다.


특정 조건으로 데이터를 추출하고자 할 때는 select * from 구문에 where 절을 추가하면 됩니다.


ex) servertime이 2018년 5월 3일 이후인 데이터만 추출

db2 "export to test.del of del select * from tmptable 
where servertime > to_date('2018-05-03 00:00:00', 'YYYY-MM-DD HH24:MI:SS')"


export 와 import 는 일반적인 sql 쿼리 구문보다 속도가 빠르기 때문에 대용량 데이터를 처리하고자 할 때 유용하게 사용할 수 있습니다.


예를 들면 특정 테이블에 데이터가 많이 누적되어 일정 시점 이전의 로그를 삭제하고자 할 때 delete 구문을 사용하여 where 조건을 주고 실행하면 성능도 느리지만 transaction log가 대량으로 생성되어 최악의 경우 transaction log full로 인해 rollback 이 발생될 수 있습니다.

이럴 때 export 기능을 활용하면 유용합니다.

위 예제처럼 특정 기간 이후의 데이터만 export 한 후 table을 truncate 한 후에 추출한 파일을 다시 테이블에 import 하면 됩니다.

[DB2] import 로 bulkinsert 하기



- Peter의 우아한 프로그래밍

여러분의 댓글은 저에게 크나큰 힘이 됩니다. 오류 및 의견 주시면 감사하겠습니다.

반응형
저작자표시 비영리 동일조건 (새창열림)

'Database > DB2' 카테고리의 다른 글

[DB2] import 로 bulkinsert 하기  (0) 2018.06.22
[DB2] DBI1309E 에러 발생 시  (0) 2018.05.17
    'Database/DB2' 카테고리의 다른 글
    • [DB2] import 로 bulkinsert 하기
    • [DB2] DBI1309E 에러 발생 시
    Peter Ahn
    Peter Ahn
    IT 정보 공유, 프로그래밍 지식 공유

    티스토리툴바