1

我一直无法使用Db2 on Cloud REST API 从 IBM Cloud Object Storage (COS) 中的文件加载数据。这可以防止混合集成 POC。

另一个用户使用 SERVER 配置报告了类似的 REST API 问题,请参阅https://developer.ibm.com/answers/questions/526660/how-to-use-db2-on-cloud-rest-api上的 IBM Developer 线程-to-load-data-from.html

我似乎无法正确获取参数,并且我认为文档中包含当前具有 HMAC 密钥的云对象存储的错误......例如要使用的端点,以及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 UI 从 COS S3 中的文件加载数据,具有相同的访问键值。

PPS 也许“load_source”:“SOFTLAYER”是一个问题,但它是唯一可能映射到 IBM 云对象存储的选项。API 文档没有提供任何其他可能适用于 IBM COS S3 的选项。

4

1 回答 1

1

如果您将 Db2 on Cloud 与带有 REST API 的 Cloud Object Storage 一起使用,那么对于LOAD,类型应该是 S3。Amazon 和 IBM COS 都使用 S3 协议。Softlayer 之前有自己的 SWIFT 协议,但它(不再)可用于 IBM COS。

另请参阅此处了解有关使用 LOAD 加载数据的一些文档。这些示例使用 Amazon 和 IBM COS,两者都使用 S3 协议。

于 2020-01-20T16:43:23.393 回答