Teradata教程

Teradata 快速加载

FastLoad 实用程序用于将数据加载到空表中。由于它不使用临时日志,因此可以快速加载数据。即使目标表是 MULTISET 表,它也不会加载重复的行。

限制

目标表不应有二级索引、连接索引和外键引用。

FastLoad 的工作原理

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;

执行 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 脚本中使用的常用术语列表。
登录-登录 Teradata 并启动一个或多个会话。 DATABASE-设置默认数据库。 BEGIN LOADING-标识要加载的表。 ERRORFILES-标识需要创建/更新的 2 个错误表。 CHECKPOINT-定义何时采取检查点。 SET RECORD-指定输入文件格式是格式化的、二进制的、文本的还是未格式化的。 DEFINE-定义输入文件布局。 FILE-指定输入文件名和路径。 INSERT-将输入文件中的记录插入到目标表中。 END LOADING-启动 FastLoad 的第 2 阶段。将记录分发到目标表中。 LOGOFF-结束所有会话并终止 FastLoad。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4