📅  最后修改于: 2020-11-29 09:09:29             🧑  作者: Mango
FastLoad实用程序用于将数据加载到空表中。由于它不使用瞬态日志,因此可以快速加载数据。即使目标表是MULTISET表,它也不会加载重复的行。
目标表不应具有二级索引,联接索引和外键引用。
FastLoad分两个阶段执行。
解析引擎从输入文件中读取记录,并向每个AMP发送一个块。
每个AMP都存储记录块。
然后,AMP对每个记录进行哈希处理并将它们重新分配给正确的AMP。
在阶段1结束时,每个AMP都有其行,但是它们不在行哈希序列中。
当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
以下是一个示例FastLoad脚本,用于将上述文件加载到Employee_Stg表中。
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;
创建输入文件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脚本中使用的常用术语列表。
LOGON-登录到Teradata并启动一个或多个会话。
DATABASE-设置默认数据库。
开始加载-标识要加载的表。
ERRORFILES (错误文件) -标识需要创建/更新的2个错误表。
CHECKPOINT-定义何时采取检查点。
SET RECORD-指定输入文件格式是格式化的,二进制的,文本的还是未格式化的。
DEFINE-定义输入文件的布局。
FILE-指定输入文件名和路径。
INSERT -插入从输入文件到目标表中的记录。
结束加载-启动FastLoad的阶段2。将记录分配到目标表中。
LOGOFF-结束所有会话并终止FastLoad。