Загрузить данные из файла IBM Object Storage в облачную DB2 - PullRequest
0 голосов
/ 01 октября 2019

Я использую приведенный ниже оператор SQL для загрузки данных из файла хранилища объектов в облако db2.

CALL SYSPROC.ADMIN_CMD('load from "S3::s3.jp-tok.objectstorage.softlayer.net::<s3-access-key-id>:
:<s3-secret-access-key>::nlu-test::practice_nlu.csv" of DEL modified by codepage=1208 
coldel0x7c WARNINGCOUNT 1000 MESSAGES ON SERVER INSERT into DASH12811.NLU_TEMP_2');

произошел сбой с ошибкой:

Routine "SYSPROC.ADMIN_CMD" execution has completed, but at least one error, "SQL3016", was encountered during the execution. More information is available.. SQLCODE=20397, SQLSTATE=01H52, DRIVER=4.24.92

Обратите внимание, я хочу загрузитьэти данные в DB2, а не в хранилище DB2.

Ответы [ 2 ]

2 голосов
/ 01 октября 2019

При использовании LOAD через ADMIN_CMD первый набор результатов из вызова хранимой процедуры содержит SQL-статистику, которую можно использовать для просмотра сообщений обратно из команды LOAD.

ВотПример этого из CLP.

$ db2 "call admin_cmd('load from ''S3::s3.jp-tok.objectstorage.softlayer.net::<s3-access-key-id>::<s3-secret-access-key>::nlu-test::practice_nlu.csv'' of del modified by codepage=1208 coldel0x7c WARNINGCOUNT 1000 MESSAGES ON SERVER INSERT into t')"
 `  


  ROWS_READ            ROWS_SKIPPED         ROWS_LOADED          ROWS_REJECTED        ROWS_DELETED         ROWS_COMMITTED       ROWS_PARTITIONED     NUM_AGENTINFO_ENTRIES MSG_RETRIEVAL                                                                                     MSG_REMOVAL                                                          
  -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- --------------------- ------------------------------------------------------------------------------------------------  ---------------------------------------------------------------------
                     -                    -                    -                    -                    -                    -                    -                     - SELECT SQLCODE, MSG FROM TABLE(SYSPROC.ADMIN_GET_MSGS('1618991872_2012791051_DB2INST1')) AS MSG   CALL SYSPROC.ADMIN_REMOVE_MSGS('1618991872_2012791051_DB2INST1')     

  1 record(s) selected.

  Return Status = 0

SQL20397W  Routine "SYSPROC.ADMIN_CMD" execution has completed, but at least 
one error, "SQL2018", was encountered during the execution. More information 
is available.  SQLSTATE=01H52

Теперь запустите SQL из столбца набора результатов MSG_RETRIEVAL, чтобы увидеть подробные сообщения от LOAD

$ db2 "SELECT SQLCODE, MSG FROM TABLE(SYSPROC.ADMIN_GET_MSGS('1618991872_2012791051_DB2INST1')) AS MSG"

SQLCODE   MSG                                                                  
--------- ---------------------------------------------------------------------
SQL3501W  The table space(s) in which the table resides will not be placed in  
backup pending state since forward recovery is disabled for the database.      
SQL3109N  The utility is beginning to load data from file "S3".                
SQL3500W  The utility is beginning the "ANALYZE" phase at time "10/01/2019     
18:27:29.090523".                                                              
SQL2018N  The utility encountered an error "" while attempting to verify the   
user's authorization ID or database authorizations.                            
SQL2018N  The utility encountered an error "" while attempting to verify the   
user's authorization ID or database authorizations.                            

  5 record(s) selected.                                                        

Просмотр полногоСообщения LOAD могут помочь вам понять, какая у вас проблема с вашим звонком

1 голос
/ 02 октября 2019

Ошибка SQL3016:

$ db2 "? SQL3016"


SQL3016N  An unexpected keyword "<keyword>" was found in the filetmod
      parameter for the filetype.

Explanation:

A keyword that does not apply to the filetype for the utility was found
in the filetype modifier (the filetmod parameter or the phrase following
MODIFIED BY in a CLP command).

The utility stops processing.

User response:

Remove the filetype modifier or specify at least one valid keyword in
the filetype modifier. See the Command Reference for more information on
filetype modifiers.

. Это означает, что один из ваших модификаторов типов файлов недопустим. Хотя они выглядят действительными, было бы интересно проверить, работает ли загрузка без модификаторов codepage=1208 или coldel0x7c или выдает другую ошибку для вас

...