我需要从DashDB Bluemix服务重新创建一个数据库到另一个服务。我需要在bash脚本中自动执行此过程。 我能想到的最好的是DashDB REST API,它允许我将整个数据库的内容导出为json格式(或您能想到的任何其他格式),以及允许我重新导入内容的相应API。同一服务或不同服务上的不同数据库,可能位于不同的Bluemix空间中。感谢。
答案 0 :(得分:1)
我假设您想要进行一次性移动,这不是关于连续复制。在这种情况下,只需在http://datascience.ibm.com上注册,导航到DataWorks,选择"加载数据"从导航面板(单击左上角打开它),然后选择云数据库作为源类型。
DataWorks load data from dashDB to dashDB
如果您仍然希望编写自己的应用程序或脚本来执行数据移动并且您希望REST API导出JSON数据,那么我建议您编写一个简单的R脚本来从表中读取数据(使用ibmdbR)并将其写入stdout,将脚本部署到dashDB(POST / home)并从app / script调用/ rscript端点运行R脚本:https://developer.ibm.com/clouddataservices/wp-content/themes/projectnext-clouddata/dashDB/#/
答案 1 :(得分:0)
对于Cloud上的Db2和Cloud上的Db2仓库,有一个REST API可用,它允许您从CSV格式的表格中导出数据(最多100.000行),然后将其加载回去。它将需要一些请求,例如:
我已经为此API实现了客户端npm模块-db2-rest-client,您可以将语句结果导出为JSON文件,如下所示:
export DB_USERID='<USERID>';export DB_PASSWORD='<PASSWORD>';export DB_URI='https://<SOURCE_HOSTNAME>/dbapi/v3'
db2-rest-client query --query="SELECT * FROM SRC_SCHEMA.SRC_TABLE" > test.json
然后,您可以将该数据转换为.csv文件,并使用load
作业:
export DB_USERID='<USERID>';export DB_PASSWORD='<PASSWORD>';export DB_URI='https://<TARGET_HOSTNAME>/dbapi/v3'
db2-rest-client load --file=transformed.csv --table='DEST_TABLE' --schema='DEST_SCHEMA'