本文介绍导入数据量大或数据属性复杂时,可以使用的解决方法,帮助您更快地导入数据。

导入方法

图数据库GDB支持如下三种导入方法,具体请参见数据导入简介
  • 从阿里云云存储对象(OSS)导入数据。
  • 使用DataWorks数据集成同步数据到GDB。
  • 使用DataX导入数据到GDB。

导入顺序

当需要导入的数据量较大时,您可以将数据划分为多个导入任务,然后按照先导入点文件,后导入边文件的顺序依次将数据导入至图数据库GDB。

代码格式如下:
  • 导入点文件
    curl -u {username}:{password} -X POST \
      -H 'Content-Type: application/json' \
      http://{mygdb-endpoint}:{port}/loader -d '
      {
        "source" : "oss://{mybucket}/{vertex}.csv",
        "ramRoleArn" : "acs:ram::{my-uid}:role/aliyunserviceroleforgdb",
      }'
  • 导入边文件
    curl -u {username}:{password} -X POST \
      -H 'Content-Type: application/json' \
      http://{mygdb-endpoint}:{port}/loader -d '
      {
        "source" : "oss://{mybucket}/{edge}.csv",
        "ramRoleArn" : "acs:ram::{my-uid}:role/aliyunserviceroleforgdb",
      }' 
说明 以下为需要根据实际情况替换的代码字段说明。关于字段值的获取方法请参见将OSS数据导入图数据库GDB实例
  • {username}:请替换为图数据库GDB实例的账号。
  • {password}:请替换为图数据库GDB实例账号对应的密码。
  • {mygdb-endpoint}:请替换为图数据库GDB实例的连接地址。
  • {port}:请替换为图数据库GDB实例连接地址对应的端口号。
  • {mybucket}:请替换为Bucket实例的实例名称。
  • {my-uid}:请替换为您的阿里云账号UID。
  • {vertex}:请替换为点文件名称。
  • {edge}:请替换为边文件名称。
示例:
  • 导入点文件
    curl -u gdb_account:******** -X POST \
      -H 'Content-Type: application/json' \
      http://gds-bp1t4x427r15331915****.graphdb.rds.aliyuncs.com:8182/loader -d '
      {
        "source" : "oss://gdb-document-test/vertex.csv",
        "ramRoleArn" : "acs:ram::140692647406****:role/aliyunserviceroleforgdb",
      }'
  • 导入边文件
     curl -u gdb_account:******** -X POST \
      -H 'Content-Type: application/json' \
      http://gds-bp1t4x427r15331915****.graphdb.rds.aliyuncs.com:8182/loader -d '
      {
        "source" : "oss://gdb-document-test/edge.csv",
        "ramRoleArn" : "acs:ram::140692647406****:role/aliyunserviceroleforgdb",
      }'

拆分导入

当点文件或边文件中的属性较多时,您可以根据属性将一个文件拆分为多个文件,然后将数据依次导入至图数据库GDB。
说明 导入时会更新id已存在数据的属性。
示例:
  • 拆分前
    | id | label  | prop1:int | prop2:int | prop3:int | prop4:int | prop5:int | prop6:int |
    | -- | ------ | --------- | --------- | --------- | --------- | --------- | --------- |
    | 1  | vertex | 1         |           |           |           |           |           |
    | 2  | vertex | 2         |           |           |           |           |           |
    | 3  | vertex | 3         |           |           |           |           |           |
    | 4  | vertex | 4         | 4         | 4         | 4         | 4         | 6         |
  • 拆分后
    # 文件1
    | id | label  | prop1:int | prop2:int | prop3:int | prop4:int | prop5:int | prop6:int |
    | -- | ------ | --------- | --------- | --------- | --------- | --------- | --------- |
    | 1  | vertex | 1         |           |           |           |           |           |
    | 2  | vertex | 2         |           |           |           |           |           |
    | 3  | vertex | 3         |           |           |           |           |           |
    # 文件2
    | id | label  | prop1:int | prop2:int | prop3:int | prop4:int | prop5:int | prop6:int |
    | -- | ------ | --------- | --------- | --------- | --------- | --------- | --------- |
    | 4  | vertex | 4         | 4         | 4         | 4         | 4         | 6         |
                    

从Neo4j迁移数据到图数据库GDB

图数据库GDB支持从Neo4j迁移数据至图数据库GDB,迁移方法请参见将Neo4j数据导入到GDB