Stream operator is a data consumer operator which works similar to native Teradata Tpump utility.
Teradata advises to use TPT Stream over native Teradata Tpump utility as it is better optimised for performance over native load and also old utilities are not enhanced in new version.
TPT Stream apply locks at the row hash level and not on the entire table.
Define_Operator_Import: TPT19108 Data Format 'TEXT' requires all 'CHAR/ANSIDATE' schema.
INTEGER SkipRows=2,
VARCHAR SkipRowsEveryFile='N'
DEFINE JOB Import_Employee_Data
Description 'Test fastload script'
(
DEFINE OPERATOR Consumer_Table_Detail
TYPE STREAM
SCHEMA *
ATTRIBUTES
(
VARCHAR TdPid='dbc',
VARCHAR UserName='tutorial_user',
VARCHAR UserPassWord='tutorial_password',
VARCHAR TargetDatabase='tutorial_db',
VARCHAR TargetTable='emp_unformatted',
VARCHAR LogTable='dept_tpt_stream_log',
VARCHAR DateForm='AnsiDate',
INTEGER MaxSessions=6
);
DEFINE SCHEMA Define_Employee_Schema
(
emp_no INTEGER,
ename_name VARCHAR(50),
hire_date ANSIDATE
);
DEFINE OPERATOR Producer_File_Detail
TYPE DATACONNECTOR PRODUCER
SCHEMA Define_Employee_Schema
ATTRIBUTES
(
VARCHAR DirectoryPath='$HOME/tpt/outfile',
VARCHAR FileName='emp_unformatted.out',
VARCHAR Format='UNFORMATTED',
VARCHAR OpenMode='Read',
VARCHAR DateForm='AnsiDate'
);
APPLY
(
'INSERT INTO tutorial_db.emp_unformatted(emp_no,ename_name,hire_date) VALUES (:emp_no,:ename_name,:hire_date);'
)
TO OPERATOR(Consumer_Table_Detail)
SELECT * FROM OPERATOR (Producer_File_Detail);
);
DEFINE JOB Import_Employee_Data
Description 'Test fastload script'
(
DEFINE OPERATOR Consumer_Table_Detail
TYPE STREAM
SCHEMA *
ATTRIBUTES
(
VARCHAR TdPid='dbc',
VARCHAR UserName='tutorial_user',
VARCHAR UserPassWord='tutorial_password',
VARCHAR TargetDatabase='tutorial_db',
VARCHAR TargetTable='emp_unformatted',
VARCHAR LogTable='dept_tpt_stream_log',
VARCHAR DateForm='AnsiDate',
INTEGER MaxSessions=6
);
DEFINE SCHEMA Define_Employee_Schema
(
emp_no VARCHAR(11),
ename_name VARCHAR(50),
hire_date VARCHAR(10)
);
DEFINE OPERATOR Producer_File_Detail
TYPE DATACONNECTOR PRODUCER
SCHEMA Define_Employee_Schema
ATTRIBUTES
(
VARCHAR DirectoryPath='$HOME/tpt/outfile',
VARCHAR FileName='tpt_load_delimited_data_file.out',
VARCHAR TextDelimiter='|~|',
VARCHAR Format='Delimited',
VARCHAR OpenMode='Read',
VARCHAR IndicatorMode='N',
VARCHAR DateForm='AnsiDate',
INTEGER SkipRows=2,
VARCHAR SkipRowsEveryFile='N'
);
APPLY
(
'INSERT INTO tutorial_db.emp_delimited(emp_no,ename_name,hire_date) VALUES (:emp_no,:ename_name,:hire_date);'
)
TO OPERATOR(Consumer_Table_Detail)
SELECT * FROM OPERATOR (Producer_File_Detail);
);
DEFINE JOB Import_Employee_Data
Description 'Test fastload script'
(
DEFINE OPERATOR Consumer_Table_Detail
TYPE STREAM
SCHEMA *
ATTRIBUTES
(
VARCHAR TdPid='dbc',
VARCHAR UserName='tutorial_user',
VARCHAR UserPassWord='tutorial_password',
VARCHAR TargetDatabase='tutorial_db',
VARCHAR TargetTable='emp_unformatted',
VARCHAR LogTable='dept_tpt_stream_log',
VARCHAR DateForm='AnsiDate',
INTEGER MaxSessions=6
);
DEFINE SCHEMA Define_Employee_Schema
(
emp_no INTEGER,
ename_name VARCHAR(50),
hire_date ANSIDATE
);
DEFINE OPERATOR Producer_File_Detail
TYPE DATACONNECTOR PRODUCER
SCHEMA Define_Employee_Schema
ATTRIBUTES
(
VARCHAR DirectoryPath='$HOME/tpt/outfile',
VARCHAR FileName='emp_formatted.out',
VARCHAR Format='FORMATTED',
VARCHAR OpenMode='Read',
VARCHAR DateForm='AnsiDate'
);
APPLY
(
'INSERT INTO tutorial_db.emp_formatted(emp_no,ename_name,hire_date) VALUES (:emp_no,:ename_name,:hire_date);'
)
TO OPERATOR(Consumer_Table_Detail)
SELECT * FROM OPERATOR (Producer_File_Detail);
);
tbuild -f tpt_stream_unformatted.tpt
tbuild -f tpt_stream_delimited.tpt
tbuild -f tpt_stream_formatted.tpt