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を終了します。