Проблема с загрузкой исходного CSV-файла Teradata mutliload
У меня есть CSV-файл, разделенный запятыми, который нужно загрузить в таблицу Teradata. Обычно fastload очень полезен в таких сценариях, когда есть один файл, который нужно загрузить в одну таблицу. Проблема здесь в том, что поля данных в файле CSV заключены в кавычки (образец данных файла CSV приведен ниже для справки). Fastload не обрабатывает / не поддерживает / не загружает данные, если исходный файл находится в этом формате. TPUMP обрабатывает этот тип файла данных, но создает макросы в фоновом режиме для выдачи операторов. К сожалению, клиент, с которым я работаю, не предоставляет привилегию "Создать макрос", и поэтому сценарий TPUMP не подходит. Можно ли загрузить этот файл с помощью Multiload. Если да, то не мог бы кто-нибудь посоветовать мне, как загрузить эти цитируемые данные в тераданные с помощью mload. Был бы очень признателен небольшой пример сценария.
Спасибо
"Received","From","Destination","Message Text","Status","Folder","Folder Owner",
"2020-06-25 13:31:47","125674122450","61119","EEEEEE","Not Processed","n/a","n/a"
"2020-06-25 13:14:15","125683011742","82332","CCC 000000 59303760","Processed","COMMERCIAL CCC","BSSSUser"
"2020-06-25 13:09:48","125693033666","61112","YesLLLL ","Processed","Cooooo AAAAA ","9890374"
@dnoeth Я написал приведенный ниже скрипт TPTLOAD, но он дает ошибку
/**************************************************************/
/* IMI_T7_SMS_RESPONSES */
/* Load CSV Data Into TERADATA */
/**************************************************************/
DEFINE JOB LOAD_TD_FROM_CSV
DESCRIPTION 'Load Teradata table from CSV File'
(
DEFINE SCHEMA IMI_T7_SMS_RESPONSES
DESCRIPTION 'IMI_T7_SMS_RESPONSES'
(
Response_Dttm VARCHAR(100)
,From_Number VARCHAR(20)
,To_Shortcode VARCHAR(5)
,Response_Text VARCHAR(100)
,Status VARCHAR(100)
,Folder VARCHAR(100)
,Folder_Owner VARCHAR(100)
);
DEFINE OPERATOR DDL_OPERATOR
TYPE DDL
ATTRIBUTES
(
VARCHAR TdpId = 'system',
VARCHAR UserName = 'username',
VARCHAR UserPassword = 'password'
);
DEFINE OPERATOR LOAD_CSV
DESCRIPTION 'Operator to Load CSV Data'
TYPE LOAD
SCHEMA IMI_T7_SMS_RESPONSES
ATTRIBUTES
(
VARCHAR PrivateLogName,
VARCHAR TraceLevel = 'None',
INTEGER TenacityHours = 1,
INTEGER TenacitySleep = 1,
INTEGER MaxSessions = 4,
INTEGER MinSessions = 1,
VARCHAR TargetTable = 'trm_lead_history.IMI_T7_SMS_RESPONSES_TEST',
VARCHAR ErrorTable1 = 'trm_lead_history.IMI_T7_SMS_RESPONSES_E1',
VARCHAR ErrorTable2 = 'trm_lead_history.IMI_T7_SMS_RESPONSES_E2',
VARCHAR LogTable = 'trm_lead_history.IMI_T7_SMS_RESPONSES_LOG',
VARCHAR TdpId = 'system',
VARCHAR UserName = 'User',
VARCHAR UserPassword = 'password'
);
DEFINE OPERATOR READ_CSV
DESCRIPTION 'Operator to Read CSV File'
TYPE DATACONNECTOR PRODUCER
SCHEMA IMI_T7_SMS_RESPONSES
ATTRIBUTES
(
VARCHAR Filename = 'C:\Users\nofel\Desktop\fastload\nick\IMI_T7_SMS_RESPONSES.csv'
,VARCHAR Format = 'Delimited'
,VARCHAR TextDelimiter = ','
,VARCHAR CloseQuoteMark = '"'
,VARCHAR OpenQuoteMark = '"'
,VARCHAR AcceptExcessColumns = 'N'
,VARCHAR PrivateLogName = 'LOAD_FROM_CSV'
,VARCHAR QuotedData = 'Y'
,Varchar EscapeQuoteDelimiter = '"'
);
Step Setup_Tables
(
APPLY
('DROP TABLE TRM_LEAD_HISTORY.IMI_T7_SMS_RESPONSES_E1;' ),
('DROP TABLE TRM_LEAD_HISTORY.IMI_T7_SMS_RESPONSES_E2;' ),
('DROP TABLE TRM_LEAD_HISTORY.IMI_T7_SMS_RESPONSES_LOG;'),
('DROP TABLE TRM_LEAD_HISTORY.IMI_T7_SMS_RESPONSES_TEST;'),
('CREATE SET TABLE TRM_LEAD_HISTORY.IMI_T7_SMS_RESPONSES_TEST,
NO FALLBACK ,
NO BEFORE JOURNAL,
NO AFTER JOURNAL,
CHECKSUM = DEFAULT,
DEFAULT MERGEBLOCKRATIO
(
Response_Dttm VARCHAR(100)
,From_Number VARCHAR(20)
,To_Shortcode VARCHAR(5)
,Response_Text VARCHAR(100)
,Status VARCHAR(100)
,Folder VARCHAR(100)
,Folder_Owner VARCHAR(100)
);')
TO OPERATOR (DDL_OPERATOR);
);
Step Load_Table
(
APPLY ('INSERT INTO TRM_LEAD_HISTORY.IMI_T7_SMS_RESPONSES_TEST
(
:Response_Dttm
,:From_Number
,:To_Shortcode
,:Response_Text
,:Status
,:Folder
,:Folder_Owner );')
TO OPERATOR (LOAD_CSV)
SELECT * FROM (OPERATOR READ_CSV);
);
);
он выдает ошибку "синтаксическая ошибка в строке 111 файла сценария задания" IMI_T7_SMS_RESPONSS.tpt или около нее: TPT_INFRA: в "Select" отсутствует точка с запятой в Правиле: Шаг компиляции завершился ошибкой
Для справки из приведенного выше кода строка 111 находится в конце кода "SELECT * FROM (OPERATOR READ_CSV);". Я все перепробовал, но ничего не работает. Не могли бы вы помочь?