【问题标题】:Db2 Warehouse: How to load table data using the V2 or V3 REST InterfaceDb2 Warehouse:如何使用 V2 或 V3 REST 接口加载表数据
【发布时间】:2018-09-05 15:19:14
【问题描述】:

我在 IBM Cloud 上实例化了一个 Db2 Warehouse,并在该 Db2 实例中创建了一个表。现在我想用本地 *.csv 文件中的数据加载该表。

我能够创建不记名令牌:

curl -X POST "https://dashdb-entry-yp-lon02-01.services.eu-gb.bluemix.net/dashdb-api/v2/auth" -H  "accept: application/json" -H  "content-type: application/json" -d "{  \"userid\": \"dash14096\",  \"password\": \"************\"}"

另外,我可以获取表格元信息:

curl -X GET "https://dashdb-entry-yp-lon02-01.services.eu-gb.bluemix.net/dashdb-api/v2/schemas/DASH14096/tables/MYTABLE" -H  "accept: application/json" -H  "Authorization: Bearer eyJ0eXAiOiJKV1Q..."

我有以下内容的本地文件“mydata.csv”:
1;一个
2;两个
3;三

我实际上能够使用 V1 REST 接口加载该数据:

curl --user "dash14096:************" -H "Content-Type: multipart/form-data" -X POST -F loadFile1=@".\mydata.csv" "https://dashdb-entry-yp-lon02-01.services.eu-gb.bluemix.net/dashdb-api/load/local/del/DASH14096.MYTABLE?hasHeaderRow=false&delimiter=;&loadAction=REPLACE"

但是:如何使用 V2 或 V3 REST 接口将数据加载到我的 Db2 Warehouse 表中? 特别是,如果我需要使用 /load_jobs 函数,当 body 必须持有加载选项时,如何构建多部分 REST 请求?

感谢任何提示。谢谢!!

【问题讨论】:

    标签: dashdb


    【解决方案1】:

    使用V3 APIs 将数据从本地 CSV 文件加载到 Db2 on Cloud 的过程非常复杂,需要以下步骤:

    1. 生成身份验证令牌 - POST /auth/tokens
    2. 上传本地文件到DB2实例-POST /home_content/{path}
    3. 使用上一步上传的文件创建加载作业 - POST /load_jobs
    4. 使用第 3 步中的 ID 反复检查加载作业是否完成 - GET /load_jobs/{id}

    您也可以使用db2-rest-client npm 模块:

    export DB_USERID='dash14096'
    export DB_PASSWORD='************'
    export DB_URI='https://dashdb-entry-yp-lon02-01.services.eu-gb.bluemix.net/dbapi/v3'
    db2-rest-client load --file=mydata.csv --table='MYTABLE' --schema='MYSCHEMA' --type=INSERT
    

    如果您想检查请求的负载并在脚本中构建自己的 CURL 命令 - 您可以克隆 git 存储库并在 integration tests 中调试加载作业的调用。在这种情况下,您需要为加载作业完成构建循环检查。

    【讨论】:

      猜你喜欢
      • 2018-01-29
      • 1970-01-01
      • 1970-01-01
      • 2015-12-06
      • 2020-06-27
      • 2018-06-04
      • 2020-10-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多