首页 > 解决方案 > Teradata TPT 的数据加载失败

问题描述

在这里,我正在尝试使用 TPT 实用程序将 csv 文件加载到 teradata 表中,但归档时出现错误:

这是我的 TPT 脚本:

DEFINE JOB test_tpt
DESCRIPTION 'Load a Teradata table from a file'
(
DEFINE SCHEMA SCHEMA_EMP_NAME
(
NAME VARCHAR(50),
AGE VARCHAR(50)    
);

DEFINE OPERATOR od_EMP_NAME
TYPE DDL
ATTRIBUTES
(
VARCHAR PrivateLogName = 'tpt_log',
VARCHAR LogonMech      = 'LDAP',
VARCHAR TdpId          = 'TeraDev',
VARCHAR UserName       = 'user',
VARCHAR UserPassword   = 'pwd',
VARCHAR ErrorList      = '3807'
);

DEFINE OPERATOR op_EMP_NAME
TYPE DATACONNECTOR PRODUCER
SCHEMA SCHEMA_EMP_NAME
ATTRIBUTES
(
VARCHAR  DirectoryPath= '/home/hadoop/retail/',
VARCHAR  FileName = 'emp_age.csv',
VARCHAR  Format   = 'Delimited',
VARCHAR  OpenMode = 'Read',
VARCHAR  TextDelimiter =','
);


DEFINE OPERATOR ol_EMP_NAME
TYPE LOAD
SCHEMA *
ATTRIBUTES
(
VARCHAR LogonMech           = 'LDAP',
VARCHAR TdpId          = 'TeraDev',
VARCHAR UserName       = 'user',
VARCHAR UserPassword   = 'pwd',
VARCHAR  LogTable     =  'EMP_NAME_LG',
VARCHAR  ErrorTable1  =  'EMP_NAME_ET',
VARCHAR  ErrorTable2  =  'EMP_NAME_UV',
VARCHAR  TargetTable  =  'EMP_NAME'
);

STEP stSetup_Tables
(
APPLY
('DROP TABLE EMP_NAME_LG;'),
('DROP TABLE EMP_NAME_ET;'),
('DROP TABLE EMP_NAME_UV;'),
('DROP TABLE EMP_NAME;'),
('CREATE TABLE EMP_NAME(NAME VARCHAR(50), AGE VARCHAR(2));')
TO OPERATOR (od_EMP_NAME);
);

STEP stLOAD_FILE_NAME
(
APPLY
('INSERT INTO EMP_NAME
(Name,Age)
VALUES
(:Name,:Age);
')
TO OPERATOR (ol_EMP_NAME)
SELECT * FROM OPERATOR(op_EMP_NAME);
);
);

致电 TPT:

tbuild -f test_tpt.sql

上面的 TPT 脚本失败并出现以下错误:

Teradata Parallel Transporter Version 15.10.01.02 64-Bit
TPT_INFRA: Syntax error at or near line 6 of Job Script File 'test_tpt.sql':
TPT_INFRA: At "NAME" missing RPAREN_ in Rule: Explicit Schema Element List
TPT_INFRA: Syntax error at or near line 8 of Job Script File 'test_tpt.sql':
TPT_INFRA: TPT03020: Rule: DEFINE SCHEMA

由于错误,编译失败。未生成执行计划。作业脚本编译失败。

我在这里遗漏任何细节吗?

标签: teradata

解决方案


信息当然可以更清楚,但问题是这NAME是一个受限制的词。


推荐阅读