Проблема с загрузкой исходного 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);". Я все перепробовал, но ничего не работает. Не могли бы вы помочь?

0 ответов

Другие вопросы по тегам