нужна помощь - сбой сценария TPT teradata - PullRequest
1 голос
/ 09 января 2020

Сценарий 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), в которой существует целевая таблица. Процесс завершается с ошибкой на шаге Оператор загрузки.

1.Пользователь имеет доступ CREATE TABLE в базе данных EIS_AUX_T.

2.Пользователь НЕ имеет доступа CREATE TABLE в базе данных ODM_SCD_STG_T.

3.Пользователь имеет права DML в базе данных ODM_SCD_STG_T.

4. В базе данных EIS_AUX_T должны быть созданы таблицы ошибок и журналов.

1 Ответ

1 голос
/ 11 января 2020

Оператор UPDATE также использует WorkTable в дополнение к таблицам Log & Error; поскольку вы не указали атрибуты WorkTable или WorkingDatabase, TPT пытается создать рабочую таблицу в базе данных целевой таблицы.

Но использование оператора UPDATE DeleteTask для усечения таблицы - это просто дополнительные затраты. Для этого используйте оператор DDL.

...