我已经在IBM Cloud上实例化了一个Db2仓库,并在该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; 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函数,那么当主体必须包含加载选项时,如何构建多部分REST请求?
任何提示都值得赞赏。谢谢!
答案 0 :(得分:0)
使用V3 APIs将数据从本地CSV文件加载到Cloud上的Db2的过程非常复杂,需要以下步骤:
POST /auth/tokens
POST /home_content/{path}
POST /load_jobs
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中调试装入作业的调用。在这种情况下,您需要构建循环检查以完成加载作业。