推特 阿里云技术文档正文

OSS数据导入示例_数据导入_图数据库GDB

admin 阿里云技术文档 2020-02-11 176 0
阿里云服务器优惠

OSS数据导入示例

以下演示如何将数据导入到GDB实例,下面所有操作都是在与GDB相同Region的ECS上执行。

环境准备

在开始之前,您必须准备以下内容:

  • 一个GDB数据库实例。有关创建GDB数据库实例的信息,请参考快速入门

  • 一个与GDB实例在相同Region的OSS存储bucket。您可以使用已有的bucket,如果没有可以参考开始使用阿里云OSS创建存储空间

  • 授权GDB访问您OSS存储空间的权限,参照导入授权完成角色创建,您也可以准备有OSS访问权限的账号AccessKey信息。导入程序只需要对您OSS数据有读取访问权限。

  • 需要导入到GDB实例的CSV数据文件,如果您还没有构造测试数据,可以使用air-routes数据集,下载CSV格式的点文件边文件

将数据导入到GDB实例中

  • 将准备的数据上传到OSS的存储bucket中,bucket必须与GDB实例在相同Region。

    可以参照OSS上传文件完成待导入的CSV格式数据文件上传,下面使用ossutil上传air-routes数据集到OSS,你也可以直接在OSS控制台通过页面操作上传。

    1. # 点文件
    2. ./ossutil cp air-routes-latest-nodes.csv oss://{mybucket}/air-routes/air-routes-latest-nodes.csv
    3. # 边文件
    4. ./ossutil cp air-routes-latest-edges.csv oss://{mybucket}/air-routes/air-routes-latest-edges.csv
  • 从命令行发送HTTP请求启动导入任务。替换下面大括弧中的参数,包括GDB地址、端口、OSS文件路径和授权资源名称,以及访问实例的用户名密码。

    GDB实例地址和端口可以从实例基本信息页面查看,分别对应内网地址和内网端口。

    1. {mygdb-endpoint}:8182

    示例OSS文件路径分别使用上述air-routes数据集点/边文件的路径

    授权资源名称参照导入授权获取,您也可以提供AccessKey参数,示例使用授权后的以下ARN。

    1. ramRoleArn : acs:ram::{my-uid}:role/{role-name}

    发送导入数据命令

    1. curl -u {username}:{password} -X POST \
    2. -H 'Content-Type: application/json' \
    3. https://{mygdb-endpoint}:8182/loader -d '
    4. {
    5. "source" : "oss://{mybucket}/air-routes/air-routes-latest-nodes.csv",
    6. "ramRoleArn" : "acs:ram::{my-uid}:role/{role-name}",
    7. }'

    注意

    待导入点完成后,提供source为边文件路径,再启动一个边的导入任务

  • GDB导入程序检查参数正确后返回任务id,例如:

    1. {
    2. "status" : "200 OK",
    3. "payload" : {
    4. "loadId" : "552617AF-4F1E-4CD8-9533-A2EC154688DC"
    5. }
    6. }
  • 使用上述步骤的id获取导入任务的状态:

    1. curl -u {username}:{password} -X GET '{mygdb-endpoint}:8182/loader/552617AF-4F1E-4CD8-9533-A2EC154688DC'

    如果返回结果有列出错误,请参考错误信息列表了解更详细内容。

  • (可选)使用上述步骤的id取消导入任务:

    1. curl -u {username}:{password} -X DELETE '{mygdb-endpoint}:8182/loader/552617AF-4F1E-4CD8-9533-A2EC154688DC'

    命令会在取消成功后返回HTTP状态码200 OK,取消正在后台执行的任务会阻塞等待任务停止再返回。

    任务中已经导入到GDB实例的点或边数据不会回滚,将保留在GDB中。

导入工具

除使用curl命令发送请求外,您也可以使用GDB工具集中的GdbLoader脚本完成以上示例,具体使用可以参考脚本说明。

  1. # 添加导入点任务
  2. python GdbLoader.py --host {mygdb-endpoint}:8182 --username ${username} --password ${password} --todo add_task --source oss://{mybucket}/air-routes/air-routes-latest-nodes.csv --arn acs:ram::{my-uid}:role/{role-name}
  3. # 添加导入边任务
  4. python GdbLoader.py --host {mygdb-endpoint}:8182 --username ${username} --password ${password} --todo add_task --source oss://{mybucket}/air-routes/air-routes-latest-edges.csv --arn acs:ram::{my-uid}:role/{role-name}
  5. # 查询任务详情
  6. python GdbLoader.py --host {mygdb-endpoint}:8182 --username ${username} --password ${password} --todo get_task --loaderId 552617AF-4F1E-4CD8-9533-A2EC154688DC
  7. # 取消任务
  8. python GdbLoader.py --host {mygdb-endpoint}:8182 --username ${username} --password ${password} --todo delete_task --loaderId 552617AF-4F1E-4CD8-9533-A2EC154688DC
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

评论

-----