跳转至
开发版采用单机部署,无需产品 License 文件。需要多机部署或大规模性能测试? 了解企业版

使用悦数数据迁移导出数据

本文介绍如何使用悦数数据迁移从悦数图数据库开发版中导出数据。你可以选择以下方式进行数据导出:

  • 导出至本地文件。
  • 导出至悦数图数据库开发版,支持将数据从一个图导出到另一个图中,源图与目标图可以在相同或不同的悦数图数据库开发版集群中。

前提条件

  • 悦数数据迁移已部署。更多信息,请参见部署悦数数据迁移。
  • 源数据所在的悦数图数据库开发版服务组正在运行中。更多信息,请参见快速开始。
  • 若要导出数据至不同的悦数图数据库开发版集群,请确保目标悦数图数据库开发版集群的服务组正在运行中。

步骤

  1. 前往yueshu-graph-exchange/目录,使用脚本start.sh启动 Spark 集群,命令如下:

    ./start.sh
    

    若启动成功,会显示 Spark master 和 worker 实例的进程 ID。

  2. 在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
    -P Spark 服务器的端口。 否 1077
    -h 是否打印帮助信息。 否 无
    -s 您的 Spark 主目录的路径。
    如已拥有自己的 Spark,按需启用此选项。
    否 无
    -o 您的 Spark 的主模式。
    如果指定了选项-spark,此项必填。
    否 无

    注意:n * p的值必须小于部署悦数数据迁移时设置的c * i的值。

  3. 等待系统运行并返回导出结果。

    • 若选择导出数据至本地文件,成功提交导出命令后会显示以下示例信息:

      ...
      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.
      
  4. 导出任务完成后,根据不同导出方式,前往对应位置查看结果。

    • 导出数据至本地文件时,前往--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:导出失败并报告错误。
  • insert_ignore:忽略本次写入,保留原有数据,不报错。
  • insert_replace:用本次提交的数据替换原有点或边。
  • insert_update:用本次提交的属性值更新原有点或边。
更多信息,请参见 INSERT。
否 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 每次写入请求的批大小。 否 无