本文介绍将数据从OSS导入至图数据库GDB的完整流程。
前提条件
- 已创建图数据库GDB实例,创建方法,请参见创建主实例。
- 已创建OSS的Bucket,创建方法,请参见创建存储空间。
- 已获取服务关联角色的ARN(arninfo)信息,获取方法,请参见授权GDB访问OSS。
- 已获取图数据库GDB的连接地址和端口,获取方法,请参见获取图数据库GDB实例的信息。
如果您使用本地客户端进行导入操作,连接时需要使用外网地址,申请外网地址的方法,请参见申请外网地址。
- 已创建数据库账号,创建方法,请参见创建账号。
- 已将需要访问图数据库GDB的客户端IP地址添加到白名单中,设置白名单的方法,请参见设置白名单。
准备测试数据
本文将使用air-routes数据集作为测试数据,图数据库GDB的数据分为点文件和边文件,下载链接如下,进入网页另存为即可保存为CSV文件
您也可以使用其它数据进行导入测试,图数据库GDB对CSV数据的文件格式有要求,具体要求,请参见CSV数据文件格式。
上传数据至OSS
以下内容为通过OSS控制台上传数据。如果您需要通过ossutil工具上传数据,请参见使用ossutil工具上传数据文件。
- 登录OSS管理控制台。
- 单击左侧导航栏的Bucket列表,然后单击目标Bucket名称。
- 单击上传文件。
- 在上传文件面板,配置文件存储目录、读写权限并选择待上传文件。
- 单击上传文件。
完成上传后,您可以返回文件管理页面查看文件存储路径,在导入数据到图数据库GDB时需要使用该路径。

如上图所示,gdbOssDemo/node路径存放了点文件,gdbOssDemo/edge路径存放了边文件,假如Bucket名称为gdbbucket
,则点文件和边文件的OSS路径分别为:
- 点文件
oss://gdbbucket/gdbOssDemo/node/
- 边文件
oss://gdbbucket/gdbOssDemo/edge/
导入数据到图数据库GDB
以下内容仅为导入数据到图数据库GDB的示例步骤,更多参数说明,请参见使用curl命令导入数据文件。
成功上传后,您可以通过loadId查看导入任务的任务状态,示例如下:
curl -u gdb_user:PassWord -X GET 'http://gds-*****.graphdb.rds.aliyuncs.com:8182/loader/<loadId>'
常见问题
- Q:导入相同的文件后,系统返回
LOAD_NOT_SUPPORT TO RESUME LOAD
错误。A:需要将之前导入数据生成的loadId删除,删除语句如下:
curl -u gdb_account:******** -X DELETE 'http://gds-123.graphdb.rds.aliyuncs.com:****/loader/552617AF-4F1E-4CD8-9533-A2EC154688DC'
如果有很多loadId,您可以使用以下脚本批量删除:
#!/bin/bash GDB_HOST=YOU_GDB_HOST GDB_PORT=YOU_GDB_PORT GDB_USER=YOUR_GDB_USER GDB_PASSWORD=YOUR_GDB_PASSWORD curl -u "${GDB_USER}:${GDB_PASSWORD}" "http://${GDB_HOST}:${GDB_PORT}/loader"| python3 -c 'import json,sys;print("\n".join(json.load(sys.stdin)["payload"]["loadIds"]))'| while read TASK; do echo delete task: $TASK curl -u "${GDB_USER}:${GDB_PASSWORD}" -XDELETE "http://${GDB_HOST}:${GDB_PORT}/loader/${TASK}" done curl -u "${GDB_USER}:${GDB_PASSWORD}" "http://${GDB_HOST}:${GDB_PORT}/loader"
- Q:导入文件时,提示
Commit record Error(21-0)
错误。A:您需要将导入参数failOnError修改为false,修改操作,请参见导入接口介绍。
更多错误信息,请参见错误信息列表。