単一のFastExportジョブにおけるチェックポイントの使用 - FastExport

Teradata® FastExport リファレンス

Product
FastExport
Release Number
17.00
Published
2020年6月
Language
日本語
Last Update
2021-01-07
dita:mapPath
ja-JP/ups1544831946863.ditamap
dita:ditavalPath
ja-JP/ups1544831946863.ditaval
dita:id
B035-2410
Product Category
Teradata Tools and Utilities

FastExportには、インポートおよびエクスポートされたデータ ソースの位置情報を保存するための機能が組み込まれています。システムの再始動時に、FastExportはデータを再エクスポートしなくて済むため、非常に大型の応答セットを取得するSELECT文を使用する場合に、この機能は役に立ちます。

例えば、行数が5,000,000の表の場合は、以下の単一のSELECT文を使って、データをファイルにエクスポートします。

.EXPORT OUTFILE DATAFILE;
 SEL * FROM DATA_TABLE;
.END EXPORT;

この文の実行中にシステムが再始動した場合は、エクスポート処理全体を最初からし直さなければなりません。

この種のシナリオは、単一のSELECT文をWHERE句を使用して複数の文に分割し、境界値をINFILEに格納すれば、回避できます。

先行する単一のSELECT文を以下の例と同様に分割します。

SEL * FROM DATA_TABLE WHERE FIELD1 BETWEEN       1 AND 1000000;
SEL * FROM DATA_TABLE WHERE FIELD1 BETWEEN 1000001 AND 2000000;
SEL * FROM DATA_TABLE WHERE FIELD1 BETWEEN 2000001 AND 3000000;
SEL * FROM DATA_TABLE WHERE FIELD1 BETWEEN 3000001 AND 4000000;
SEL * FROM DATA_TABLE WHERE FIELD1 BETWEEN 4000001 AND 5000000;

Place all boundary values in INFILE as follows:
---------------------------------------------------------------
FIRST FIELD SECOND FIELD
---------------------------------------------------------------
FIRST RECORD                 1    1000000
SECOND RECORD          1000001    2000000
THIRD RECORD           2000001    3000000
FOURTH RECORD          3000001    4000000
FIFTH RECORD           4000001    5000000
---------------------------------------------------------------

その後、2番目の例でFastExportが複数の文を実行すると、これらの文は一度に1文ずつ送信されます。さらに、インポートおよびエクスポートのデータ ソースの位置が保存されます。

文の1つを処理している最中にシステムが再始動される場合、FastExportは、単一のSELECT文を使用した場合とは異なり、エクスポート処理全体を最初から再始動することはありません。その代わりに、失敗した文からエクスポート処理をし直します。

以下に示すスクリプトのサンプルは、INFILEからのデータをWHERE句に対して使用し、2例目に示した複数の文を作成します。

このスクリプトは、すべてのオペレーティング システムで、FastExportが動作している状態で使用できます。

.LOGTABLE LOG_TBL;                /* define restart log             */

.LOGON TDPR/username, password;   /* DBC logon string               */

.BEGIN EXPORT ;                   /* specify export function        */

.LAYOUT BOUNDRIES;                /* define the input data values   */
.FIELD FROMVALUE * INTEGER;       /* for SELECT constraint clause   */
.FIELD TOVALUE * INTEGER;

.IMPORT INFILE INDATAFILE         /* define the file that contains  */
          LAYOUT BOUNDRIES;       /* the input data values          */
		  
.EXPORT OUTFILE OUTPUTFILE ;      /* identify the destination source*/
                                  /* for exported data              */
SEL * FROM DATA_TABLE             /* provide the SQL SELECT         */
                                  /* statement                      */
WHERE COLUMN1 BETWEEN             /* with values provided by the    */
                                  /* IMPORT command                 */
:FROMVALUE AND :TOVALUE ;

.END EXPORT;                      /* terminate the export operation */

.LOGOFF;                          /* disconnect from the DBS        */