Teradata 快速加载(FastLoad)
FastLoad实用程序用于将数据加载到空表。 由于它不使用临时日志,因此可以快速加载数据。 即使目标表是MULTISET表,它也不会加载重复行。
局限性
目标表不应该有二级索引,连接索引和外键引用。
FastLoad如何工作
FastLoad在两个阶段执行。
阶段1
解析引擎从输入文件中读取记录,并向每个AMP发送一个块。
每个AMP存储记录块。
然后AMP散列每个记录,并将它们重新分配到正确的AMP。
在阶段1结束时,每个AMP具有其行,但它们不在行哈希序列中。
阶段2
阶段2在FastLoad接收到END LOADING语句时启动。
每个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;
执行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并启动一个或多个会话。
DATABASE - 设置默认数据库。
BEGIN LOADING - 标识要加载的表。
ERRORFILES - 标识需要创建/更新的2个错误表。
CHECKPOINT - 定义何时采取检查点。
SET RECORD - 指定输入文件格式是格式化,二进制,文本还是未格式化。
DEFINE - 定义输入文件布局。
FILE - 指定输入文件名和路径。
INSERT - 将输入文件中的记录插入目标表中。
END LOADING - 启动FastLoad的第2阶段。 将记录分发到目标表中。
LOGOFF - 结束所有会话并终止FastLoad。
更多建议: