DATAPARTITION

DATAPARTITION 옵션을 사용하여 언로드할 데이터 파티션을 지정할 수 있습니다.

제한 사항: 데이터 파티션이 없는 테이블에 DATAPARTITION 옵션을 사용하는 경우, Optim™ High Performance Unload 은 옵션을 무시하고, 지정된 데이터 파티션 중 하나가 실제 테이블에 존재하지 않는 경우 Optim High Performance Unload 은 오류를 반환합니다.
DATAPARTITION ID
이 옵션은 언로드된 데이터의 데이터 파티션에 대한 DATAPARTITIONID 열과 일치합니다. 이 옵션을 사용하면 내부 ID가 나열되는 데이터 파티션으로 처리를 제한할 수 있습니다.
구문
DATAPARTITION ID (nn)
가변
정수값 목록. 단일 값, 쉼표 구분 목록 또는 콜론 문자로 표시되는 데이터 파티션 번호 범위를 지정할 수 있습니다. 예를 들어, (5:9)은 내부 ID가 5, 6, 7, 8, 9인 데이터 파티션을 나타냅니다.
기본값
없음.
다음 DOCUMENTS 테이블 정의를 고려하십시오.
CREATE TABLE DOCUMENTS (ID INTEGER, CONTENTS CLOB)
IN TBS1, TBS2
PARTITION BY RANGE (ID)
(STARTING 1 ENDING 1000 EVERY 100)
다음과 같은 SYSIBM.SYSDATAPARTITIONS 표 내용을 생각해 보십시오. TBS1 와 TBS2 라는 이름의 표 공간은 각각 5와 6이라는 ID를 가지고 있습니다
select VARCHAR(DATAPARTITIONNAME, 10), VARCHAR(TABNAME,15), 
       DATAPARTITIONID, SEQNO, TBSPACEID 
       from sysibm.sysdatapartitions where tabname='DOCUMENTS'

1          2               DATAPARTITIONID SEQNO       TBSPACEID
---------- --------------- --------------- ----------- -----------
PART0      DOCUMENTS                     0           0           5
PART1      DOCUMENTS                     1           1           6
PART2      DOCUMENTS                     2           2           5
PART3      DOCUMENTS                     3           3           6
PART4      DOCUMENTS                     4           4           5
PART5      DOCUMENTS                     5           5           6
PART6      DOCUMENTS                     6           6           5
PART7      DOCUMENTS                     7           7           6
PART8      DOCUMENTS                     8           8           5
PART9      DOCUMENTS                     9           9           6

  10 record(s) selected.
내부 IDS가 0, 5, 6, 7인 파티션만 언로드하려면 다음 제어 파일을 사용하십시오
GLOBAL CONNECT TO SAMPLE;
UNLOAD TABLESPACE
SELECT * FROM DOCUMENTS; 
DATAPARTITION ID(0, 5:7)
OUTFILE("datapart_0_5_6_7.del")
FORMAT DEL;
내부 IDS가 0, 5, 6, 7인 데이터 파티션은 datapart_0_5_6_7.del 파일에 언로드됩니다.
DATAPARTITION NAME
이 옵션은 언로드된 데이터의 데이터 파티션에 대한 DATAPARTITIONNAME 열과 일치합니다. 이 옵션을 사용하면 이름이 나열되는 데이터 파티션으로 처리를 제한할 수 있습니다.
구문
DATAPARTITION NAME (datapartition_name)
가변
데이터 파티션 이름 목록(쉼표로 구분되는)입니다.
기본값
없음.
DATAPARTITION ID 예제에 설명된 DOCUMENTS 테이블 정의와 SYSIBM.SYSDATAPARTITIONS 테이블 내용을 고려해 보십시오. DATAPARTITION NAME 옵션을 사용하여 내부 IDS가 0, 5, 6, 7인 데이터 파티션만 언로드하려면 다음 제어 파일을 사용하십시오
GLOBAL CONNECT TO SAMPLE;
UNLOAD TABLESPACE
SELECT * FROM DOCUMENTS; 
DATAPARTITION NAME(PART0,PART5,PART6,PART7)
OUTFILE("datapart_0_5_6_7.del")
FORMAT DEL;
내부 IDS가 0, 5, 6, 7인 데이터 파티션은 datapart_0_5_6_7.del 파일에 언로드됩니다.
데이터 파티션 번호
이 옵션은 언로드된 데이터의 데이터 파티션의 SEQNO 열과 일치합니다. 이를 통해 처리할 데이터 파티션을 순서 번호가 나열된 파티션으로 제한할 수 있습니다.
구문
DATAPARTITION NUM (nn)
가변
정수값 목록. 단일 값, 쉼표 구분 목록 또는 콜론 문자로 표시되는 데이터 파티션 번호 범위를 지정할 수 있습니다. 예를 들어, (5:9)은 순서 번호가 5, 6, 7, 8, 9인 데이터 파티션을 나타냅니다.
기본값
없음.
DATAPARTITION ID 예제에 설명된 DOCUMENTS 테이블 정의와 SYSIBM.SYSDATAPARTITIONS 테이블 내용을 고려해 보십시오. DATAPARTITION NUM 옵션을 사용하여 내부 IDS가 0, 5, 6, 7인 데이터 파티션만 언로드하려면 다음 제어 파일을 사용하십시오
GLOBAL CONNECT TO SAMPLE;
UNLOAD TABLESPACE
SELECT * FROM DOCUMENTS;
DATAPARTITION NUM (0, 5:7)
OUTFILE("datapart_0_5_6_7.del")
FORMAT DEL;
내부 IDS가 0, 5, 6, 7인 데이터 파티션은 datapart_0_5_6_7.del 파일에 언로드됩니다.
DATAPARTITION TBSPACE
이 옵션은 처리되는 데이터 파티션의 TBSPACEID 컬럼과 연관된 테이블스페이스의 이름과 일치합니다. 이 옵션을 사용하면 이름이 나열되는 테이블스페이스에 위치하는 데이터 파티션으로 처리를 제한할 수 있습니다.
구문
DATAPARTITION TBSPACE (tablespace_name)
가변
쉼표로 구분되는 테이블스페이스 이름 목록입니다.
기본값
없음.
DATAPARTITION ID 예제에 설명된 DOCUMENTS 테이블 정의와 SYSIBM.SYSDATAPARTITIONS 테이블 내용을 고려해 보십시오. TBS1 라는 테이블 스페이스에 있는 내부 IDS가 0, 2, 4, 6, 8인 데이터 파티션만 언로드하려면 다음 제어 파일을 사용하십시오
GLOBAL CONNECT TO SAMPLE;
UNLOAD TABLESPACE
SELECT * FROM DOCUMENTS; 
DATAPARTITION TBSPACE (TBS1)
OUTFILE("datapart_0_2_4_6_8.del")
FORMAT DEL;
TBS1 라는 테이블 스페이스에 있는 내부 IDS가 0, 2, 4, 6, 8인 데이터 파티션은 datapart_0_2_4_6_8.del 파일로 언로드됩니다.

예: 데이터 파티션을 개별 출력 파일로 언로딩

데이터 파티션을 별도의 출력 파일로 언로드하려면 템플릿 키워드 % {datapartition_id}, % {datapartition_name}, % {datapartition_num}, % {datapartition_tbspace} 와 함께 OUTFILE 절을 사용해야 합니다.

예를 들어, 다음 SALES_DP 테이블 정의를 고려하십시오.
CREATE TABLE SALES_DP(invoice_date date, 
                      inv_month int NOT NULL, 
                      inv_year INT NOT NULL, 
                      item_id int NOT NULL,
                      cust_id int NOT NULL) 
PARTITION BY RANGE (inv_year, inv_month)
(PART Q1_02 STARTING (2002,1) ENDING (2002, 3) INCLUSIVE,
 PART Q2_02 ENDING (2002, 6) INCLUSIVE,
 PART Q3_02 ENDING (2002, 9) INCLUSIVE,
 PART Q4_02 ENDING (2002,12) INCLUSIVE,
 PART CURRENT ENDING (MAXVALUE, MAXVALUE))
다음과 같은 SYSIBM.SYSDATAPARTITIONS 표 내용을 고려해 보십시오
select VARCHAR(DATAPARTITIONNAME, 10), VARCHAR(TABNAME,15), DATAPARTITIONID from sysibm.sysdatapartitions where tabname='SALES_DP'

1          2               DATAPARTITIONID
---------- --------------- ---------------
Q1_02      SALES_DP                      0
Q2_02      SALES_DP                      1
Q3_02      SALES_DP                      2
Q4_02      SALES_DP                      3
CURRENT    SALES_DP                      4

  5 record(s) selected.
데이터 파티션 Q1_02 및 Q2_02만 언로드하고 각 데이터 파티션을 별도의 파일로 언로드하려는 경우 다음 제어 파일을 사용할 수 있습니다.
GLOBAL CONNECT TO SAMPLE;
UNLOAD TABLESPACE
SELECT * FROM DOCUMENTS; 
DATAPARTITION NAME(Q1_02, Q2_02)
OUTFILE("datapart.del.%{datapartition_name}")
FORMAT DEL;
이 제어 파일의 경우, Optim High Performance Unload 현재 호스트에 다음 파일을 생성합니다:
  • 데이터 파티션 Q1_02의 데이터가 있는 datapart.del.Q1_02
  • 데이터 파티션 Q2_02의 데이터가 있는 datapart.del.Q2_02