2023-02-20 08:50来源:m.sf1369.com作者:宇宇
字放不下,
一点点放给你
1. 简介:
Teradata 作为数据仓库行业的老大,其对数据并行处理能力令人钦佩,而Fastload 工
具填充数据的速度绝对可以让任何人惊讶。本文就Fastload 工具的使用作一介绍,希
望能帮助读者快速掌握这个工具的使用。
Fastload 支持批处理的脚本编写方式,也支持交互式的方式。其功能就是从数
据文件中把大批数据快速插入Teradata 数据库。在数据仓库建设阶段对ETL
是非常重要的手段,平均比其他第三方ETL 工具快3 倍以上。另外Fastload
也提供了错误-恢复执行功能,能够继续先前由于各种原因停下来没有完成的工
作。
Fastload 能够从主机、专线、或者一般的TCP/IP 连接的计算机节点上运行。
使用限制:必须是空表,并且该表上没有外健,也没有除了UPI 或者NUPI 以外
的索引。还有要注意的一点,就是即使要上载的表是MULITISET(允许重复纪
录)的,FASTLOAD 也不会将重复的纪录装入。
2. Fastload 运行过程介绍
共有2 个步骤,数据装载和数据排序过程
装载过程:接收从数据源文件传来的大量数据,并且按照HASH 算法把数据进行
分布,分布到对应的AMP 里面去。数据记录被写入没有排序的数据块中。
数据排序:把装载步骤生成的大量数据块进行排序操作,并且把数据块写入磁盘。
3. 支持的文件格式
在使用FASTLOAD 时候,数据源文件有很严格的规则。
FASTLOAD 支持5 种文件格式
1. DATA 文件:使用FASTEXPORT 或者BTEQ 生成的数据文件。(用.export
data file=… 命令生成)。
2. INDICDATA 文件: 和第一种的区别在于文件包含了NULL 的信息
(用.export indicdata file=…命令生成)。
3. VARTEXT 文件:变长的纪录字段,每个字段之间用某个特定的字符分隔。
4. 无格式文件:需要指定某个字段的起始位置和长度,还要指定换行符的长度
(需要注意的是UNIX 里面用一个字节长度表示换行,WINDOWS 里面是2 个)
例如文件格式为:
++0010++Jan 01 2003+
++0011++Jan 11 2003+
++0012++Jan 23 2003+
就必须这样定义字段(WINDOWS 环境)
define
SERV_ID (char(12)), deliml(char(1)),
CUST_ID (char(4)), delim2(char(1)),
CONTRACT (char(12)), delim3(char(1)),
C_DATE (char(11)), delim4(char(1)),
newlinechar(char(2))
5.二进制文件:用得比较少,这里就不介绍了。
4. Fastload 的.Begin Loading 命令介绍
.begin loading dbname.tablename errorfiles dname.e1,dname.e2
checkpoint 1000 indicators;
dbname 表示要装入的数据库名称
tablename 表示要装载的表的名称(必须已经存在)
e1 和e2 可以随意指定(不能和数据库中已经存在的对象重名)用来记录当
FASTLOAD 不成功时候的错误信息,对应错误的数据包等信息,并且能够利用这
2 个表进行一旦出现上传友问题时候,不用全部重新开始上传的恢复机制。
Checkpoint 1000 表示每1000 条记录检查一次,在第一步骤暂停情况下,可
以不用重新从第一条记录开始,而从最后一次检查点处继续装载过程。
Indicators 表示当数据文件里面有表示空子段的标示时,可以保留空子段。前
提是要上传的文件时使用fastexport 或者bteq 的 .import indicdata
file=…;方式生成的数据文件。