【问题标题】:need help - teradata TPT script failing需要帮助 - teradata TPT 脚本失败
【发布时间】:2020-04-27 12:46:33
【问题描述】:

TPT 脚本:

DEFINE JOB LD_CAN_IN_TRANSIT
DESCRIPTION 'Load canada retail in transit'
(
DEFINE SCHEMA schema_Canada_Retail_Intransit_Wrk
(
VOUCHER_DATE VARCHAR(50),
VOU_NO       VARCHAR(50),
PO_NO        VARCHAR(50),
DOC_QTY      VARCHAR(50),
DESCRIP      VARCHAR(50),
UPC          VARCHAR(50),
STORE_ADDR6  VARCHAR(50),
COUNTRY      VARCHAR(50),
VENDOR_CODE  VARCHAR(50),
LINENUMBER   VARCHAR(50)
);

DEFINE OPERATOR DDL_OPERATOR
TYPE DDL
ATTRIBUTES
(
        VARCHAR PrivateLogName = 'ddl_log',
        VARCHAR TdpId          = '******',
        VARCHAR LogonMech      = 'LDAP',
        VARCHAR UserName       = '*************',
        VARCHAR UserPassword   = '*************',
        VARCHAR ErrorList      = '3807'
);

DEFINE OPERATOR dml_canada_retail_int
TYPE UPDATE
SCHEMA *
ATTRIBUTES
(
VARCHAR LogonMech      = 'LDAP',
VARCHAR TdpId          = '*******',
VARCHAR UserName       = '************',
VARCHAR UserPassword   = '********',
VARCHAR TargetTable  = 'ODM_SCD_STG_T.abc' ,
VARCHAR LogTable = 'EIS_AUX_T.log_table',
VARCHAR ErrorTable1 = 'EIS_AUX_T.err_ET',
VARCHAR ErrorTable2 = 'EIS_AUX_T.err_RL'
VARCHAR DeleteTask     = 'Y'
);

DEFINE OPERATOR prod_can_ret_int
TYPE DATACONNECTOR PRODUCER
SCHEMA schema_Canada_Retail_Intransit_Wrk
ATTRIBUTES
(
VARCHAR  DirectoryPath= '<path_to_file>',
VARCHAR  FileName = @data_file,
VARCHAR  Format   = 'Delimited',
VARCHAR  OpenMode = 'Read',
VARCHAR  TextDelimiter =',',
INTEGER  SkipRows = 1
);

DEFINE OPERATOR load_can_ret_int
TYPE LOAD
SCHEMA *
ATTRIBUTES
(
VARCHAR LogonMech           = 'LDAP',
VARCHAR TdpId          = '********',
VARCHAR UserName       = '*****************',
VARCHAR UserPassword   = '***************',
VARCHAR TargetTable  = 'ODM_SCD_STG_T.abc' ,
VARCHAR LogTable = 'EIS_AUX_T.log_table',
VARCHAR ErrorTable1 = 'EIS_AUX_T.err_ET',
VARCHAR ErrorTable2 = 'EIS_AUX_T.err_RL'
);

STEP Setup_Tables
(
APPLY
('DROP TABLE EIS_AUX_T.log_table;'),
('DROP TABLE EIS_AUX_T.err_ET;'),
('DROP TABLE EIS_AUX_T.err_RL;')
TO OPERATOR (DDL_OPERATOR);
);


STEP stSetup_Tables
(
APPLY
('DELETE ODM_SCD_STG_T.abc;')
TO OPERATOR (dml_canada_retail_int);
);

STEP stLOAD_CAN_RET_INT
(
APPLY
('<insert statement>')
TO OPERATOR (load_can_ret_int)
SELECT * FROM OPERATOR(prod_can_ret_int);
);


);

错误:

Teradata Parallel Transporter Version 16.20.00.14 64-Bit
The global configuration file '/opt/teradata/client/16.20/tbuild/twbcfg.ini' is used.
   Log Directory: /opt/teradata/client/16.20/tbuild/logs
   Checkpoint Directory: /opt/teradata/client/16.20/tbuild/checkpoint

TPT_INFRA: TPT03624: Warning: tbuild -s option argument specifies the first job step;
  no job steps will be skipped (unless this is a restarted job).
Job log: /opt/teradata/client/16.20/tbuild/logs/ec2-user-207.out
Job id is ec2-user-207, running on ip-10-179-114-26.us-west-2.compute.internal
Teradata Parallel Transporter SQL DDL Operator Version 16.20.00.14
DDL_OPERATOR: private log specified: ddl_log
DDL_OPERATOR: connecting sessions
DDL_OPERATOR: sending SQL requests
DDL_OPERATOR: TPT10508: RDBMS error 3807: Object 'EIS_AUX_T.err_ET' does not exist.
DDL_OPERATOR: TPT18046: Error is ignored as requested in ErrorList
DDL_OPERATOR: TPT10508: RDBMS error 3807: Object 'EIS_AUX_T.err_RL' does not exist.
DDL_OPERATOR: TPT18046: Error is ignored as requested in ErrorList
DDL_OPERATOR: disconnecting sessions
DDL_OPERATOR: Total processor time used = '0.012241 Second(s)'
DDL_OPERATOR: Start : Thu Jan  9 20:22:28 2020
DDL_OPERATOR: End   : Thu Jan  9 20:22:28 2020
Job step Setup_Tables completed successfully
Teradata Parallel Transporter Update Operator Version 16.20.00.14
dml_canada_retail_int: private log not specified
dml_canada_retail_int: connecting sessions
dml_canada_retail_int: preparing target table(s)
**dml_canada_retail_int: TPT10508: RDBMS error 3524: The user does not have CREATE TABLE access to database ODM_SCD_STG_T.**
dml_canada_retail_int: disconnecting sessions
dml_canada_retail_int: Performance metrics:
dml_canada_retail_int:     MB/sec in Acquisition phase: 0
dml_canada_retail_int:     Elapsed time from start to Acquisition phase:   2 second(s)
dml_canada_retail_int:     Elapsed time in Acquisition phase:   0 second
dml_canada_retail_int:     Elapsed time in Application phase:   0 second
dml_canada_retail_int:     Elapsed time from Application phase to end: < 1 second
dml_canada_retail_int: Total processor time used = '0.0397 Second(s)'
dml_canada_retail_int: Start : Thu Jan  9 20:22:28 2020
dml_canada_retail_int: End   : Thu Jan  9 20:22:30 2020
Job step stSetup_Tables terminated (status 12)
Job ec2-user terminated (status 12)
Job start: Thu Jan  9 20:22:28 2020
Job end:   Thu Jan  9 20:22:30 2020

问题:

目标是在 EIS_AUX_T 模式中创建错误表,并 我正在使用的用户对它具有 CREATE TABLE 访问权限。但我不是 确定为什么我需要 CREATE TABLE 访问数据库(ODM_SCD_STG_T in 这种情况下)存在目标表。加载时进程失败 操作步骤。

1.用户在 EIS_AUX_T 数据库中拥有 CREATE TABLE 访问权限。

2.用户在 ODM_SCD_STG_T 数据库中没有 CREATE TABLE 访问权限。

3.USer 在 ODM_SCD_STG_T 数据库中具有 DML 权限。

4.EIS_AUX_T数据库中应创建Error和Log表。

【问题讨论】:

  • 虽然它通常会在您在此处共享的 TPT 输出中告诉您,但也许这是一个重新启动的作业,其中初始运行试图在该数据库中构建错误表或重新启动日志表。你能看看你是否有这份工作在/opt/teradata/client/16.20/tbuild/checkpoint 闲逛吗?如果是这样,请将其删除并重新运行您的 tpt。除此之外,您的 TPT 看起来就像您解释的那样,documentation suggests your permissions are correct
  • @JNevill 谢谢。我已经尝试过了,但仍然存在错误。
  • 如果我们有一个步骤可以在加载前删除目标表中的数据,我们是否应该在目标数据库中拥有 CREATE TABLE 访问权限?
  • 你真的不需要它。如果您在我的评论中查看该链接,它会告诉您 TPT 脚本中每个操作员所需的安全性。对于 Target,不需要 DDL 访问。我真的不知道为什么这么挑剔。

标签: teradata


【解决方案1】:

除了日志和错误表之外,UPDATE 运算符还使用WorkTable;由于您没有指定 WorkTable 或 WorkingDatabase 属性,TPT 正在尝试在目标表的数据库中创建工作表。

但是使用 UPDATE 运算符 DeleteTask 截断表只是额外的开销。为此使用 DDL 运算符。

【讨论】:

  • 我做的完全一样,而且效果很好。感谢您的意见。
猜你喜欢
  • 2017-11-02
  • 2018-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-20
  • 2020-03-11
  • 2012-07-12
  • 1970-01-01
相关资源
最近更新 更多