메뉴 건너뛰기

(*.56.255.130) 추천 수 0 댓글 1
?

단축키

Prev이전 문서

Next다음 문서

가 크게 작게 위로 아래로 댓글로 가기
Extra Form

Large Object - LOB의 저장방식 및 사용법

Oracle의 경우, 대용량 데이터를 처리하기 위해서 Oracle 8i부터 대용량 데이터를 저장할 수 있는 LOB(Large Object) 타입이 등장했다. LOB 타입 등장 이전에는 대용량 데이터가 LONG 타입으로 처리됐으며 LONG 타입은 한 테이블에 단지 하나의 컬럼만 사용할 수 있었다.

또한 검색구현도 어려웠으며 저장 최대 크기도 2GB로 제한적이었다. 이에 비해 LOB 타입은 하나의 컬럼에 여러 개의 LOB 타입을 사용할 수 있으며 검색의 구현도 쉬워졌고 저장 크기 또한 4GB까지 지원하게 됐다.

이렇게 대용량 데이터 관리에 있어서 LOB 타입은 매우 유용해 보이지만, 대부분의 관리자들은 일반 데이터와 다른 LOB 타입 데이터의 사용 및 관리에 대해 많은 불편과 어려움을 호소하는 게 사실이다.

따라서 이 글에서는 LOB 타입 데이터를 좀더 손쉽게 업무에 이용할 수 있도록 LOB 타입의 저장방식과 사용법을 살펴본다. LOB 데이터 타입에는 네 가지 종류가 있으며 각각의 저장방식은 [표 1]과 같다.

[표1] LOB 데이터 타입의 네 가지 종류

종류파일저장방식
BLOBInternal바이너리 데이터 저장 (최대 4G 저장) 
컴퓨터가 인식하는 모든 파일 기록 예)음석,화상,이미지 등
CLOBInternalSingle-byte character data 저장(최대 4G 저장) 
텍스트 데이터 저장
NCLOBInternalMulti-byte character data 저장(최대 4G 저장) 
NCHAR data와 같은 national character set(9i 이상 유니코드) 저장
BFILEExternal(OS)OS 파일에 저장된 데이터의 포인터 저장 (최대 4G 저장) 
READ ONLY

LOB 타입 데이터의 기본적인 사용법은 [리스트 1]과 같다

  • [리스트 1] LOB 데이터의 기본적인 사용법
  • 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    2
    -- LOB 타입 컬럼을 포함한 테이블 생성
    -- 제약사항 : LOB 타입 컬럼을 cluster key로 사용하는 클러스터 테이블 생성 불가
    CREATE TABLE LOB_TEST
     (ID NUMBER,
      CLOB CLOB, --CLOB
      BLOB BLOB, --BLOB
      NCLOB NCLOB, --NCLOB
      BFILE BFILE) --BFILE ;
       
     
    -- LOB 데이터 저장
    INSERT INTO LOB_TEST
           VALUES(1
                 ,'AXIOM' -- CLOB
                 ,UTL_RAW.CAST_TO_RAW('Hello') --BLOB
                 ,'엑시엄' --NCLOB
                 ,BFILENAME(null,null));
    -- BFILENAME('경로or디렉토리객체명','파일명'))
     
     
    -- LOB 데이터 조회
    -- 일반 조회(컬럼 내용 중 일부는 조회되지 않음)
    SELECT * FROM LOB_TEST;
     
         ID CLOB     BLOB       NCLOB  BFILE
    ------- -------- ---------- ------ -----------------
          1 AXIOM    48656C6C6F 엑시엄  bfilename(NULL)
     
     
     
    -- 컬럼 길이 조회
    SELECT ID
           ,DBMS_LOB.GETLENGTH(CLOB) CLOB
           ,DBMS_LOB.GETLENGTH(BLOB) BLOB
           ,DBMS_LOB.GETLENGTH(NCLOB) NCLOB
           ,DBMS_LOB.GETLENGTH(BFILE) BFILE
     FROM LOB_TEST;
      
         ID       CLOB       BLOB      NCLOB      BFILE
    ------ ---------- ---------- ---------- ----------
         1          5          5          3           

제시한 내용뿐 아니라 LOB 타입 데이터의 생성, DML, 조회에 대한 다양한 사용법이 존재하지만 여기까지만 살펴보고, 이어서 LOB 타입 데이터를 포함하고 있는 테이블 이관 시 주의해야 할 사항을 설명한다.

만약 LOB 타입을 포함하고 있는 테이블이 대용량이고 Archive log mode라면 archive log file의 생성이 기하급수적으로 늘어나게 되어 종종 곤란을 겪을 수 있다. 이러한 경우 Redo log를 쓰지 못하도록 설정해 이관해야 하는데 다음의 이관 방법에 이 내용을 적용해 보기로 하자.

우선 데이터 이관 방법으로 CTAS와 export/import가 주로 사용된다. CTAS는 테이블 단위로 Local이나 Remote에서 간단한 명령어로 데이터를 이관할 수 있지만, 네트워크 속도에 따라 작업 속도의 차이가 나타난다.

export/import는 이관 대상 데이터에 대해 일괄 export해서 타겟 데이터베이스에 import하는 방식이다. Oracle 10g에서는 data pump 개념이 등장해 export/ import에 비해서도 작업이 훨씬 수월해졌다. 그럼 각각의 사용법을 살펴보자.

CTAS

1) 이관 대상 테이블과 동일한 타겟 테이블 레이아웃 생성 (주의 : DEFAULT 값이 설정되어 있으면, 아래의 방법으로 테이블 생성 시 적용되지 않으므로 수동 적용해야 함)

1
2
3
4
5
CREATE TABLE TOBE_TEST -- 타겟 테이블
AS
SELECT *
  FROM ASIS_TEST -- 이관대상 테이블명
 WHERE 1=2;

2) 타겟 테이블에 데이터 저장

1
2
3
4
ALTER TABLE TOBE_TEST NOLOGGING;
ALTER SESSION ENABLE PARALLEL DML;
INSERT /*+ APPEND */ INTO TOBE_TEST
SELECT /*+ PARALLEL(A 8) */ * FROM ASIS_TEST A;

이와 같이 CTAS 사용시 다양한 설정을 통해 이관 속도를 단축시킬 수 있다. LOB 타입 데이터는 데이터 이관시 많은 양의 로그로 인한 DISK FULL 현상에 각별히 주의해야 하는데 NOLOGGING 옵션을 통해 작업에 대한 REDO 로그를 최소한으로 생성되게 함으로써 DISK I/O 부하 및 대량의 로그 기록으로 인한 시간을 단축시킨다.

또한 PARALLEL 설정을 통해 SELECT시 분산 작업이 가능하게 함으로써 작업시간을 단축시키며, DIRECT LOAD(APPEND)를 통해 INSERT시 현재 세그먼트의 FREE BLOCK을 무시하고 HWM뒤에 WRITE함으로써 작업시간을 단축시킨다.

Data Pump(expdp/impdp)

1) DATA PUMP 사용을 위한 디렉터리 객체 생성

1
CREATE DIRECTORY DMPDIR AS 'C:\DUMP';

2) expdp 유틸리티를 이용한 대상 백업

1
2
3
expdp system/*** directory=dmpdir tables=asis_test dumpfile= exp.dmp logfile=exp.log
 
-- EXP에는 FULL/SCHEMEA/TABLE 단위로 백업 가능

3) impdp 유틸리티를 이용한 대상 이관

1
2
3
4
5
6
CREATE TABLE TOBE_TEST NOLOGGING -- 타겟 테이블명
AS
SELECT * FROM ASIS_TEST -- 이관대상 테이블명
WHERE 1=2;
 
impdp system/**** directory=dmpdir dumpfile=exp.dmp logfile=imp.log content=data_only

LOB 컬럼을 포함하고 있는 데이터 이관시 IMPDP 작업 전 NOLOGGING 옵션을 적용한 타겟 테이블을 미리 생성해 놓고, IMPDP 시에 데이터만 INSERT함으로써 대량의 데이터에 의한 로그 생성을 줄여야 한다.

이렇듯 LOB 타입 데이터는 대용량의 데이터를 저장할 수 있는 장점이 있는 반면, 사용 시에는 일반적인 컬럼과 다르게 주의해야 할 사항들이 존재한다. 이점만 기억하고 주의해서 사용한다면 LOB 타입과 좀더 친숙해질 수 있을 것이라고 확신한다.

  • ?
    정보제공 2016.04.25 10:05 (*.33.180.198)
    LOB 분류 : http://blog.naver.com/jjijilx2/60201724200

  1. 텍스트 분석 솔루션 (Smart TA)

    미소정보기술(대표 안동욱)이 빅데이터 플랫폼을 활용해 암 발생을 줄이는 연구에 참여한다. 또 서울시의 '인공지능(AI)을 활용한 민생범죄 수사지원 분석사업‘에도 AI 솔루션을 개발, 기여했다. 대우건설 프로젝트에서 IBM의 '왓슨'을 물리치고 수주하는 등 ...
    Date2019.11.09 Reply0 Views582 file
    Read More
  2. No Image

    빅데이터의 속성 3V, 4V, 5V

    빅데이터의 속성 3V, 4V,5V 목차1. 빅데이터의 공통적 속성 3V 2. 빅데이터의 새로운 V - 정확성(Veracity) 3. 빅데이터의 새로운 V - 가변성(Variability) 4. 빅데이터의 새로운 V - 시각화(Visualization) 5. 아직 제대로 정의되지 않은 빅데이터 1. 빅데이...
    Date2019.08.12 Reply0 Views792 file
    Read More
  3. No Image

    마크베이스(Machbase) - IoT Gateway for Edge Analytics

    What is this for? If you already have or plan to build services that require IoT gateway devices and need to analyze big data generated from numerous sensors in real-time, Machbase Edge Analytics Server is the right choice. When the volume o...
    Date2019.07.27 Reply0 Views811
    Read More
  4. DB접근제어 - Chakra (샤크라)

    DB접근제어 (Chakra) 제품개요 데이터베이스 접근제어를 위한 필수 솔루션 DB Access Control & Audit_Chakra Chakra MAX는 고객의 데이터베이스 내에 저장되어있는 소중한 정보자산 및 개인정보를 안전하고 편리하게 운영할 수 있는 최고의 해법을 드립니...
    Date2019.07.19 Reply0 Views628 file
    Read More
  5. DB접근제어 - DBSAFER

    접근제어 방식 DBSAFER - DB 접근제어 보안 솔루션 - DBSAFER는 사용자의 접속과 권한을 제어하고 실시간 모니터링을 통해 정책 위반 사항을 실시간으로 차단하는 DB보안 솔루션입니다. - DBSAFER는 DB서버 시스템과 별도의 장비로 구성되어...
    Date2019.07.19 Reply0 Views9246 file
    Read More
  6. EDI (Electronic Data Interchange)

    EDI (Electronic Data Interchange) 전자문서교환. 표준화된 상거래서식 또는 공공서식을 서로 합의된 통신 표준에 따라 컴퓨터 간에 교환하는 정보전달방식 EDI 개념도 (출처: 컴퓨터인터넷IT용어대사전) 주문서, 납품서, 청구서 등 무역에 필요한 각종 서류...
    Date2017.02.27 Reply0 Views514 file
    Read More
  7. No Image

    오라클, 특정 테이블의 인덱스명과 구성컬럼 조회 SQL

    SQL 작성시나 튜닝시 테이블에 인덱스는 중요한 팩터입니다. 토드나 오렌지와 같은 GUI툴은 사용하면 손쉽게 테이블 마다 생성된 인덱스를 볼 수 있는데 툴이 없을때 막상 특정 테이블의 인덱스를 찾을려면 귀찮을때가 많죠. 저두 매번 찾기가 귀찮아 이번에 ...
    Date2016.05.23 Reply0 Views492
    Read More
  8. No Image

    Oracle Data Dictionary

     Oracle Data Dictionary
    Date2016.05.23 Reply0 Views489
    Read More
  9. Oracle Merge (수행 결과값 리턴않음)

    오라클 Merge / 수행 결과값 리턴하지 않을 때 오라클에 Merge 가 있다. 아실랑가 모르겠지만, 오라클에서 복잡하게 대량으로 업데이트, 삭제 할려고 하면 서브쿼리 쓰던가 조인뷰를 쓰던가 merge구문을 쓰면 된다. 근데 오라클은 Ms-sql과 달리, 쓰는 방식에 ...
    Date2016.05.21 Reply0 Views698 file
    Read More
  10. No Image

    ODBC. JDBC

    ODBC 어떤 응용프로그램을 사용하는지에 관계없이, 데이터베이스를 자유롭게 사용하기 위하여 만든 응용프로그램의 표준방법을 말한다. 데이터베이스 관리 시스템(DBMS)에 관계없이 어떤 응용 프로그램에서나 모두 접근하여 사용할 수 있도록 하기 위하여 마이...
    Date2016.05.19 Reply0 Views481
    Read More
  11. No Image

    (빅데이터 분석) R / R-studio 소개

    R-Studio 하나의 큰 용량이 아닌 작고 많은 데이터를 분석을 하고자 했다. 이에 가장 적합한 도구는 무엇일까? 빅데이터 트랜드를 대표하는 하둡(Hadoop)의 대용량 분산 파일 시스템(Distributed File System)과 맵리듀스(Map Reduce)는 하나의 큰 용량을 처...
    Date2016.05.19 Reply0 Views504
    Read More
  12. No Image

    Oracle wm_concat, listagg, xml parsing

    Oracle 11gdml listagg : http://estenpark.tistory.com/352 Oracle 10g의 wm_concat : http://blog.naver.com/heart1002/150188149689 XML Parsing : http://blog.naver.com/tkddlf4209/220512139480
    Date2016.05.19 Reply0 Views573
    Read More
  13. No Image

    데이터베이스 개념, 스키마, DB언어, 관계형 데이터베이스의 종...

    데이터베이스 개념, 스키마, DB언어, 관계형 데이터베이스의 종류, 키의 개념, DB설계, 개체관계도[ERD] 데이터베이스 정의 - 데이터베이스는 특정 조직의 기능을 수행하는 데 필요한 상호 관련 된 데이터들의 모임. 데이터베이스 구성요소 - 데이터베이스를 ...
    Date2016.05.14 Reply0 Views478
    Read More
  14. No Image

    Oracle - sqldeveloper-4.1.3.20.78-x64

    Oracle - sqldeveloper-4.1.3.20.78-x64
    Date2016.05.08 Reply0 Views493
    Read More
  15. No Image

    오라클 SQL & PLSQL 강좌 #3/3

    오라클 SQL & PLSQL 잠자리 #3/3
    Date2016.05.08 Reply0 Views486
    Read More
  16. No Image

    오라클 SQL & PLSQL 강좌 #2/3

    오라클 SQL & PLSQL 잠자리 강좌 #2/3
    Date2016.05.08 Reply0 Views438
    Read More
  17. No Image

    오라클 SQL & PLSQL 강좌 #1/3

    오라클 SQL & PLSQL 강좌 #1/3
    Date2016.05.08 Reply0 Views472
    Read More
  18. Crystal Reports OLAP

    Crystal Reports OLAP
    Date2016.04.30 Reply0 Views594 file
    Read More
  19. No Image

    빅데이터 IBM 자료

    1. 빅데이터 소개 자료 아래 링크를 누르면 소개자료가 저장된 Box로 이동합니다. https://ibm.box.com/s/0e7wkmbp4u4n8ukgzsttpyoryt71saaw 2. 한국IBM Analytics 유튜브 페이지 아래 유튜브 리스트에서 필요한 부분을 선택하셔서 시청하시면 쉽게 이해하시는...
    Date2016.04.29 Reply0 Views428
    Read More
  20. No Image

    Large Object - LOB의 저장방식 및 사용법

    Large Object - LOB의 저장방식 및 사용법 Oracle의 경우, 대용량 데이터를 처리하기 위해서 Oracle 8i부터 대용량 데이터를 저장할 수 있는 LOB(Large Object) 타입이 등장했다. LOB 타입 등장 이전에는 대용량 데이터가 LONG 타입으로 처리됐으며 LONG 타입...
    Date2016.04.25 Reply1 Views498
    Read More
목록
Board Pagination Prev 1 2 3 4 5 6 7 Next
/ 7