使用悦数数据迁移导出数据¶
本文介绍如何使用悦数数据迁移从悦数图数据库开发版中导出数据。你可以选择以下方式进行数据导出:
- 导出至本地文件。
- 导出至悦数图数据库开发版,支持将数据从一个图导出到另一个图中,源图与目标图可以在相同或不同的悦数图数据库开发版集群中。
前提条件¶
- 悦数数据迁移已部署。更多信息,请参见部署悦数数据迁移。
- 源数据所在的悦数图数据库开发版服务组正在运行中。更多信息,请参见快速开始。
- 若要导出数据至不同的悦数图数据库开发版集群,请确保目标悦数图数据库开发版集群的服务组正在运行中。
步骤¶
-
前往
yueshu-graph-exchange/目录,使用脚本start.sh启动 Spark 集群,命令如下:./start.sh若启动成功,会显示 Spark master 和 worker 实例的进程 ID。
-
在
yueshu-graph-exchange/目录下,使用脚本export.sh导出数据,命令如下:./export.sh [ -f | -g ] -c "<export_parameters>"- 导出数据至本地文件时,必须指定
-f及-c,然后参考导出至本地文件配置"<export_parameters>"参数。 - 导出数据至悦数图数据库开发版时,必须指定
-g及-c,然后参考导出至悦数数据迁移配置"<export_parameters>"参数。
下表列出了所有可配置的命令行选项:
选项 描述 是否必选 默认值 -f导出数据至文件。
如果选项-g未指定,此项必填。否 无 -g导出数据至悦数图数据库开发版。
如果选项-f未指定,此项必填。否 无 -c数据导出任务的相关配置。
如果指定选项-f,请参见导出至本地文件配置此项。
如果指定选项-g,请参见导出至悦数图数据库开发版配置此项。是 无 -j悦数数据迁移 JAR 包的路径。 否 yueshu-exchange-5.3.0.jar-m每个作业可使用的最大内存。一个作业包含多个数据导出任务,能够实现一次完整的数据导出过程。 否 1G-n用于导出数据的作业数。 否 20-p每个作业中并行运行的核数。 否 5-PSpark 服务器的端口。 否 1077-h是否打印帮助信息。 否 无 -s您的 Spark 主目录的路径。
如已拥有自己的 Spark,按需启用此选项。否 无 -o您的 Spark 的主模式。
如果指定了选项-spark,此项必填。否 无 注意:
n * p的值必须小于部署悦数数据迁移时设置的c * i的值。 - 导出数据至本地文件时,必须指定
-
等待系统运行并返回导出结果。
-
若选择导出数据至本地文件,成功提交导出命令后会显示以下示例信息:
... start to export data to file... logging to /home/user/tmp/yueshu-graph-exchange/logs/export_to_file.log 25/05/06 18:21:37 INFO Nebula2File$: >>>>> finished the export! cost: 15.743s.
-
若选择导出数据至悦数图数据库开发版,成功提交导出命令后会显示以下示例信息:
... start to export data to nebula... logging to /home/user/tmp/yueshu-graph-exchange/logs/export_to_nebula.log 25/05/06 18:21:37 INFO Nebula2Nebula$: >>>>> finished the sync! cost: 15.743s.
-
-
导出任务完成后,根据不同导出方式,前往对应位置查看结果。
- 导出数据至本地文件时,前往
--writePath选项指定的路径查看导出的数据。若结果异常,在export_to_file.log日志文件中排查错误。 - 导出数据至悦数图数据库开发版时,前往
--targetGraphAddress选项指定的图中查询导出的数据。若结果异常,在export_to_nebula.log日志文件中排查错误。
- 导出数据至本地文件时,前往
配置项参考¶
您需要指定选项-c中的不同参数,来配置导出数据至本地文件或悦数数据迁移。
导出至本地文件¶
下表列出了导出数据至本地文件时,选项-c的配置项信息。配置时需要用英文双引号(")包围参数。例如:
将<source-password>和<target-password>分别替换为登录源实例和目标实例所用账号的当前密码。若已修改密码,请使用修改后的密码。
./export.sh -f -c "-sourceGraph 127.0.0.1:9669 -sourceGraphName movie -sourceGraphType movie_type -sourcePasswd <source-password> -path file:///tmp/export1/"
| 选项 | 别名 | 描述 | 是否必需 | 默认值 |
|---|---|---|---|---|
--excludeEdges |
-excludeEdges |
不导出的边的边类型名称,多条边之间使用逗号(,)分隔。 |
否 | 无 |
--excludeNodes |
-excludeNodes |
不导出的点的点类型名称,多个点类型之间使用逗号(,)分隔。 |
否 | 无 |
--format |
-f |
导出的文件格式。支持的格式:csv、txt和json。 |
否 | csv |
--header |
-h |
是否在csv文件中写入表头。有效值:true和false。 |
否 | true |
--includeNode |
-includeNode |
仅导出的点的点类型,您可用作导出任务测试。 | 否 | 无 |
--writePath |
-path |
保存导出的数据的路径。 若导出至 HDFS,路径前缀为 hdfs://。若导出至本地文件系统,路径前缀为 file:///。 |
是 | 无 |
--readBatchSize |
-readBatchSize |
每次读取请求的批大小。 | 否 | 无 |
--sep |
-s |
csv文件中每行数据之间的分隔符。 |
否 | 逗号(,) |
--sourceGraphAddress |
-sourceGraph |
源数据所在的 Graph 服务的地址,多个地址之间使用逗号(,)分隔。 |
是 | 无 |
--sourceGraphName |
-sourceGraphName |
源数据的图名称。 | 是 | 无 |
--sourceGraphType |
-sourceGraphType |
源数据的图类型。 | 是 | 无 |
--sourceGraphPassword |
-sourcePasswd |
源数据所在的 Graph 服务登录密码。 | 是 | 无 |
--sourceSchema |
-sourceSchema |
源数据的 Schema 路径。 | 否 | 无 |
--sourceGraphUser |
-sourceUser |
源数据所在的 Graph 服务的用户名。 | 否 | root |
--timeout |
-timeout |
客户端的超时时间。超过该时间请求将被中止。单位:秒。 | 否 | 5 |
导出至悦数图数据库开发版¶
下表列出了导出数据至悦数数据迁移时,选项-c的配置项信息。配置时需要用英文双引号(")包围参数。例如:
./export.sh -g -c "-sourceGraph 127.0.0.1:9669 -sourceGraphName movie -sourceGraphType movie_type -sourcePasswd <source-password> -targetGraph 127.0.0.1:9669 -targetGraphName movie1 -targetPasswd <target-password>"
| 选项 | 别名 | 描述 | 是否必需 | 默认值 |
|---|---|---|---|---|
--excludeEdges |
-excludeEdges |
不导出的边的边类型名称,多条边之间使用逗号(,)分隔。 |
否 | 无 |
--excludeNodes |
-excludeNodes |
不导出的点的点类型名称,多个点类型之间使用逗号(,)分隔。 |
否 | 无 |
--includeNode |
-includeNode |
仅导出的点的点类型,您可用作导出任务测试。 | 否 | 无 |
--mode |
-m |
写入数据的模式。所有模式均插入不存在的点或边;点或边已存在时,按以下方式处理:
|
否 | insert_ignore |
--parallel |
-p |
写入数据的并行度,例如-1表示与悦数图数据库开发版分区的并行度相同。更多信息,请参见 SHOW PARTITIONS。 |
否 | -1 |
--readBatchSize |
-readBatchSize |
每次读取请求的批大小。 | 否 | 无 |
--sourceGraphAddress |
-sourceGraph |
源数据所在的 Graph 服务的地址,多个地址之间使用逗号(,)分隔。 |
是 | 无 |
--sourceGraphName |
-sourceGraphName |
源数据的图名称。 | 是 | 无 |
--sourceGraphType |
-sourceGraphType |
源数据的图类型。 | 是 | 无 |
--sourceGraphPassword |
-sourcePasswd |
源数据所在的 Graph 服务登录密码。 | 是 | 无 |
--sourceSchema |
-sourceSchema |
源数据的 Schema 路径。 | 否 | 无 |
--sourceGraphUser |
-sourceUser |
源数据所在的 Graph 服务的用户名。 | 否 | root |
--targetGraphAddress |
-targetGraph |
数据写入的 Graph 服务的目标地址,多个地址之间使用逗号(,)分隔。 |
是 | 无 |
--targetGraphName |
-targetGraphName |
数据写入的图名称。若未指定,系统自动写入源数据的图名称。 | 否 | 无 |
--targetGraphType |
-targetGraphType |
数据写入的图类型。若未指定,系统自动写入源数据的图类型。 | 否 | 无 |
--targetGraphPassword |
-targetPasswd |
数据写入的 Graph 服务登录密码。 | 是 | 无 |
--targetSchema |
-targetSchema |
数据写入的 Schema 路径。 | 否 | 无 |
--targetUser |
-targetUser |
数据写入的 Graph 服务的用户名。 | 否 | root |
--timeout |
-timeout |
客户端的超时时间。超过该时间请求将被中止。单位:秒。 | 否 | 5 |
--writeBatchSize |
-writeBatchSize |
每次写入请求的批大小。 | 否 | 无 |