Teradata-fastload

提供:Dev Guides
移動先:案内検索

Teradata-FastLoad

FastLoadユーティリティは、空のテーブルにデータをロードするために使用されます。 一時的なジャーナルを使用しないため、データをすばやく読み込むことができます。 ターゲット表がMULTISET表であっても、重複する行はロードされません。

制限

ターゲットテーブルには、セカンダリインデックス、結合インデックス、および外部キー参照を含めることはできません。

FastLoadの仕組み

FastLoadは2つのフェーズで実行されます。

フェーズ1

  • 解析エンジンは入力ファイルからレコードを読み取り、各AMPにブロックを送信します。
  • 各AMPはレコードのブロックを保存します。
  • 次に、AMPは各レコードをハッシュし、正しいAMPに再配布します。
  • フェーズ1の終わりに、各AMPには行がありますが、行ハッシュシーケンスではありません。

フェーズ2

  • FastLoadがEND LOADINGステートメントを受け取ると、フェーズ2が始まります。
  • 各AMPは行ハッシュのレコードをソートし、ディスクに書き込みます。
  • ターゲットテーブルのロックが解除され、エラーテーブルが削除されます。

次のレコードを含むテキストファイルを作成し、ファイルにemployee.txtという名前を付けます。

101,Mike,James,1980-01-05,2010-03-01,1
102,Robert,Williams,1983-03-05,2010-09-01,1
103,Peter,Paul,1983-04-01,2009-02-12,2
104,Alex,Stuart,1984-11-06,2014-01-01,2
105,Robert,James,1984-12-01,2015-03-09,3

上記のファイルをEmployee_StgテーブルにロードするサンプルFastLoadスクリプトを次に示します。

LOGON 192.168.1.102/dbc,dbc;
   DATABASE tduser;
   BEGIN LOADING tduser.Employee_Stg
      ERRORFILES Employee_ET, Employee_UV
      CHECKPOINT 10;
      SET RECORD VARTEXT ",";
      DEFINE in_EmployeeNo (VARCHAR(10)),
         in_FirstName (VARCHAR(30)),
         in_LastName (VARCHAR(30)),
         in_BirthDate (VARCHAR(10)),
         in_JoinedDate (VARCHAR(10)),
         in_DepartmentNo (VARCHAR(02)),
         FILE = employee.txt;
      INSERT INTO Employee_Stg (
         EmployeeNo,
         FirstName,
         LastName,
         BirthDate,
         JoinedDate,
         DepartmentNo
      )
      VALUES (
         :in_EmployeeNo,
         :in_FirstName,
         :in_LastName,
         :in_BirthDate (FORMAT 'YYYY-MM-DD'),
         :in_JoinedDate (FORMAT 'YYYY-MM-DD'),
         :in_DepartmentNo
      );
   END LOADING;
LOGOFF;

FastLoadスクリプトの実行

入力ファイルemployee.txtが作成され、FastLoadスクリプトの名前がEmployeeLoad.flになったら、UNIXおよびWindowsで次のコマンドを使用してFastLoadスクリプトを実行できます。

FastLoad < EmployeeLoad.fl;

上記のコマンドが実行されると、FastLoadスクリプトが実行され、ログが生成されます。 ログでは、FastLoadによって処理されたレコードの数とステータスコードを確認できます。

**** 03:19:14 END LOADING COMPLETE
   Total Records Read              =  5
   Total Error Table 1             =  0  ---- Table has been dropped
   Total Error Table 2             =  0  ---- Table has been dropped
   Total Inserts Applied           =  5
   Total Duplicate Rows            =  0
   Start:   Fri Jan  8 03:19:13 2016
   End  :   Fri Jan  8 03:19:14 2016
**** 03:19:14 Application Phase statistics:
              Elapsed time: 00:00:01 (in hh:mm:ss)
0008  LOGOFF;
**** 03:19:15 Logging off all sessions

FastLoadの条件

以下は、FastLoadスクリプトで使用される一般的な用語のリストです。

  • LOGON -Teradataにログインし、1つ以上のセッションを開始します。
  • DATABASE -デフォルトのデータベースを設定します。
  • BEGIN LOADING -ロードするテーブルを識別します。
  • ERRORFILES -作成/更新する必要がある2つのエラーテーブルを識別します。
  • CHECKPOINT -チェックポイントを取るタイミングを定義します。
  • SET RECORD -入力ファイル形式がフォーマットされているか、バイナリ、テキスト、またはフォーマットされていないかを指定します。
  • DEFINE -入力ファイルのレイアウトを定義します。
  • FILE -入力ファイル名とパスを指定します。
  • INSERT -入力ファイルのレコードをターゲットテーブルに挿入します。
  • ロードの終了-FastLoadのフェーズ2を開始します。 レコードをターゲットテーブルに分散します。
  • LOGOFF -すべてのセッションを終了し、FastLoadを終了します。