开发手册 欢迎您!
软件开发者资料库

Teradata - FastLoad

Teradata FastLoad - 从简单和简单的步骤学习Teradata,从基本到高级概念,包括简介,安装,架构,关系概念,数据类型,表格,数据操作,SELECT语句,逻辑和条件运算符,SET运算符,字符串处理,日期/时间函数,内置函数,聚合函数,CASE和COALESCE,主索引,连接,子查询,表类型,空间概念,二级索引,统计,压缩,解释,哈希算法,JOIN索引,视图,宏,存储过程,JOIN策略,分区主索引,OLAP功能,数据保护,用户管理,性能调整,FastLoad,MultiLoad,FastExport,BTEQ。

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

限制

目标表不应该有二级索引,连接索引和外键引用.

FastLoad如何工作

FastLoad分两个阶段执行.

第1阶段

  • 解析引擎从输入文件中读取记录并向每个AMP发送一个块.

  • 每个AMP都会存储记录块.

  • 然后AMP会散列每条记录并将它们重新分配到正确的AMP.

  • 在阶段1结束时,每个AMP都有自己的行,但它们不是行哈希序列.

阶段2

  • 当FastLoad收到END LOADING语句时,阶段2开始.

  • 每个AMP对行哈希上的记录进行排序并将它们写入磁盘.

  • 锁定在目标表上发布,错误表是dro pped.

示例

创建一个包含以下记录的文本文件,并将文件命名为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.