本文介绍导入数据量大或数据属性复杂时,可以使用的解决方法,帮助您更快地导入数据。
导入方法
图数据库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。