DATAPARTITION

DATAPARTITION オプションは、アンロードするデータ・パーティションを指定するために使用します。

制限: 制限: DATAPARTITION オプションがデータ・パーティション化されていないテーブルに使用された場合、このオプションは無視されます、 Optim™ High Performance Unload オプションを無視し、指定されたデータ・パーティションの1つが実際のテーブルに存在しない場合 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 という名前のテーブルスペースは、それぞれIDが5と6です
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.
内部 ID が 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オプションを使用して、内部 ID が 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の内部IDが0、5、6、7のデータパーティションは、 datapart_0_5_6_7.del ファイルにアンロードされます。
DATAPARTITION TBSPACE
このオプションは、処理対象のデータ・パーティションの TBSPACEID 列に関連付けられている表スペースの名前と一致します。 このオプションを使用すれば、表スペース内にあり名前がリストされているデータ・パーティションに処理を制限できます。
構文
DATAPARTITION TBSPACE (tablespace_name)
変数
表スペース名のコンマ区切りリスト。
デフォルト
ありません。
DATAPARTITION ID の例で説明されている DOCUMENTS テーブルの定義と SYSIBM.SYSDATAPARTITIONS テーブルの内容を考えてみましょう。 TBS1 というテーブルスペースに位置する内部 ID が 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 という名前のテーブルスペースに配置された内部IDが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