📅  最后修改于: 2021-01-11 11:46:04             🧑  作者: Mango
Teradata MultiLoad或MLoad是一个命令驱动的加载实用程序,用于对Teradata大型数据库中的多个表或视图进行快速,大量的数据维护。
MultiLoad是一个命令驱动的实用程序,可以对Teradata关系数据库管理系统(RDBMS)的多个表和视图进行快速,大量的维护。
使用单个MultiLoad作业,我们可以在RDBMS表和视图上执行几种不同的导入和删除任务:
我们可以使用MultiLoad从以下位置导入数据:
RDBMS中接收数据的表或视图可以是任何现有的表或视图,我们对其具有所需维护任务的访问权限。
Teradata具有MultiLoad的两种模式,例如:
1. MultiLoad导入
2. MultiLoad删除
除了目标表之外,MultiLoad还需要一个工作表,一个日志表和两个错误表。
Teradata MultiLoad具有以下功能,例如:
如果将具有字符数据类型的输入数据字段指定为具有日期数据类型规范的列,则Teradata MultiLoad可以将输入数据规范更改为日期,然后再将其插入目标表。
以下是Teradata MultiLoad支持的转换:
Teradata MultiLoad具有以下限制,例如:
Teradata MultiLoad导入分为五个阶段:
MultiLoad脚本涉及以下步骤:
步骤1 :设置日志表。
步骤2 :登录到Teradata。
步骤3 :然后,指定Target,Work和Error表。
步骤4 :定义INPUT文件布局。
步骤5 :同时,定义DML查询。
步骤6 :命名IMPORT文件。
步骤7 :并指定要使用的LAYOUT。
步骤8 :启动加载。
步骤9 :最后,完成加载并终止会话。
创建具有以下记录的文本文件,并将文件命名为emp.txt。
202001, James, 1980/01/05, 2010/03/01, 1
202002, Robert, 1983/03/05, 2010/09/01, 1
202003, Peter, 1983/04/01, 2009/02/12, 2
202004, Mike, 1984/11/06, 2014/01/01, 2
202005, Robert, 1984/12/01, 2015/03/09, 3
下面的示例是一个MultiLoad脚本,该脚本从employee表中读取记录并将其加载到Emp_Stg表中。
.LOGTABLE tduser.Emp_log;
.LOGON 192.168.1.102/dbc,dbc;
.BEGIN MLOAD TABLES Emp_Stg;
.LAYOUT Emp;
.FIELD in_EmpId * VARCHAR(10);
.FIELD in_FirstName * VARCHAR(10);
.FIELD in_BirthDate * VARCHAR(10);
.FIELD in_JoinedDate * VARCHAR(10);
.FIELD in_DepartmentNo * VARCHAR(05);
.DML LABEL EmpLabel;
INSERT INTO Emp_Stg
(
EmpId,
FirstName,
BirthDate,
JoinedDate,
DepartmentNo
)
VALUES
(
:in_EmpId,
:in_FirstName,
:in_BirthDate,
:in_JoinedDate,
:in_DepartmentNo
);
.IMPORT INFILE emp.txt
FORMAT VARTEXT ','
LAYOUT Emp
APPLY EmpLabel;
.END MLOAD;
LOGOFF;
创建输入文件emp.txt并将MultiLoad脚本命名为EmpLoad.ml之后,我们可以在UNIX和Windows中使用以下命令运行MultiLoad脚本。
Multiload < EmployeeLoad.ml;