Какой REST API load_source и params я использую для загрузки данных CSV из IBM COS S3 в IBM Db2 в облаке - PullRequest
1 голос
/ 20 января 2020

Мне не удалось использовать API-интерфейс Db2 on Cloud REST для загрузки данных из файла в IBM Cloud Object Storage (COS). Это предотвращает гибридную интеграцию PO C.

Другой пользователь сообщил об аналогичной проблеме REST API с использованием конфигурации SERVER, см. Ветку IBM Developer по адресу https://developer.ibm.com/answers/questions/526660/how-to-use-db2-on-cloud-rest-api-to-load-data-from.html

Кажется, я не могу получить правильные параметры, и я думаю, что в документах есть ошибки для текущего хранилища облачных объектов с ключами HMA C ... например, для использования конечной точкой, а также для auth_id должно быть access_key_id .

Я пробовал различные команды загрузки данных, например, следующие, но ни одна из них не работает. Может ли кто-нибудь привести пример команды, которая работает (с любыми соображениями / пояснениями для значений)?

curl -H "x-amz-date: 20200112T120000Z" -H "Content-Type: application/json" 
  -H "Authorization: Bearer <auth_token>" 
  -X POST "https://dashdb-xxxx.services.eu-gb.bluemix.net:8443/dbapi/v3/load_jobs"
 -d '{"load_source": "SOFTLAYER", "schema": "MDW84075",
     "table": "SALES", "file_options":
      {"code_page": "1208", "column_delimiter": ",",
       "string_delimiter": "", "date_format": "YYYY-MM-DD", "time_format": 
       "HH:MM:SS", "timestamp_format": "YYYY-MM-DD HH:MM:SS", 
       "cde_analyze_frequency": 0 }, "cloud_source":
 {"endpoint": "https://s3-api.us-geo.objectstorage.softlayer.net/auth/v2.0", 
"path": "<bucket>/sales_data_test.csv", "auth_id": "<access_key_id>", 
"auth_secret": "<secret_access_key>"} }'

Различные попытки вызова API завершаются неудачно с различными сообщениями, которые обычно не имеют достаточно информации для отладка (и поиск в doc / web не находит сообщения); Например:

{"trace": "", "errors": [{"code": "not_found", "message": "HWCBAS0030E: Запрошенный ресурс не найден в службе администратора. "," target ": {" type ":" "," name ":" "}," more_info ":" "}]}

PS Мне удалось использовать DB2 on Cloud Пользовательский интерфейс для загрузки данных из файла в COS S3 с теми же значениями ключей доступа.

PPS Возможно, «load_source»: «SOFTLAYER» является проблемой, но это единственный вариант, который может отображаться в облако IBM хранение объекта. Документы API не предоставляют никаких других опций, которые могут работать с IBM COS S3.

1 Ответ

0 голосов
/ 20 января 2020

Если вы используете Db2 в облаке с облачным хранилищем объектов с REST API, тогда для LOAD тип должен быть S3 . И Amazon, и IBM COS используют протокол S3. Ранее у Softlayer был собственный протокол SWIFT, но он недоступен (больше) для IBM COS.

Также см. Здесь некоторые документы по загрузке данных с использованием LOAD . В примерах используются Amazon и IBM COS, оба с протоколом S3.

...