本文为您介绍通过DataWorks的数据集成功能,从RDS MySQL导入数据至图数据库GDB。

前提条件

操作步骤

  1. 配置同步任务脚本
    1. 单击目标DataWorks工作空间所在行操作列的进入数据开发
    2. 创建离线同步节点,具体请参见创建离线同步节点
    3. 选择数据源向导下,执行以下操作。
      • 数据来源区域,选择数据源类型MySQL数据源为已配置完成的MySQL数据源。
      • 数据去向区域,选择数据源类型GDB数据源为已配置完成的GDB数据源。
        说明 图数据库GDB当前仅支持通过脚本模式配置数据去向,具体请参见通过脚本模式配置任务
        1. 单击工具栏提示信息中的点击转换为脚本
        2. 在配置脚本页面,编辑同步任务参数。
          以下示例配置是同步数据源mysql_loader中数据表comment到GDB数据源gdb_loader中,将表数据转换成GDB的点,表中部分列映射为点的属性。
          {
              "type": "job",
              "steps": [
                  {
                      "stepType": "mysql",               // 数据来源类型
                      "parameter": {
                          "datasource": "mysql_loader",  // mysql数据源
                          "column": [                    // 读取的数据表列名
                              "node_id",
                              "node_label",
                              "m_id",
                              "imagefile",
                              "creationDate"
                          ],
                          "connection": [                 // 连接信息
                              {
                                  "datasource": "mysql_loader",
                                  "table": [              // 读取的数据库表
                                      "post"
                                  ]
                              }
                          ],
                          "where": "",
                          "splitPk": "",
                          "encoding": "UTF-8"
                      },
                      "name": "Reader",
                      "category": "reader"
                  },
                  {
                      "stepType": "gdb",                           // 数据去向类型
                      "parameter": {
                          "datasource": "gdb_loader",              // gdb数据源
                          "session": true,                         // 使用GDB的批量事务模式
                          "column": [                              // 到GDB数据的映射规则
                              {
                                  "columnType": "primaryKey",      // 主键ID映射
                                  "name": "id",
                                  "type": "string",                // 主键值类型,配置为非string类型会导致异常。
                                  "value": "#{0}"                  // 主键映射列序号
                              },
                              {
                                  "columnType": "vertexProperty",  // 点属性映射
                                  "name": "m_id",                  // 属性名
                                  "type": "string",                // 属性值类型
                                  "value": "#{2}"                  // 属性值映射列序号
                              },
                              {
                                  "columnType": "vertexProperty",  // 点属性映射
                                  "name": "imagefile",             // 属性名
                                  "type": "string",                // 属性值类型
                                  "value": "#{3}"                  // 属性值映射列序号
                              },
                              {
                                  "columnType": "vertexProperty",  // 点属性映射
                                  "name": "creationDate",          // 属性名
                                  "type": "long",                  // 属性值类型
                                  "value": "#{4}"                  // 属性值映射列序号
                              }
                          ],
                          "labelType": "VERTEX",                   // 导入GDB数据类型,可选VERTEX和EDGE。
                          "maxRecordsInBatch": 32,                 // 批量事务中一次事务更新的记录数,在打开批量事务时有效,建议使用默认值。
                          "label": "#{1}",                         // 导入数据点名称label,可直接提供常量字符串如果本次导入的点名称相同。
                          "writeMode": "INSERT",                   // 写入数据类型,INSERT模式时重复写入会报错。
                          "idTransRule": "none"                    // 主键ID映射规则,配置none表示保持原配置的映射值。
                      },
                      "name": "Writer",
                      "category": "writer"
                  }
              ],
              "version": "2.0",
              "order": {
                  "hops": [
                      {
                          "from": "Reader",
                          "to": "Writer"
                      }
                  ]
              },
              "setting": {
                  "errorLimit": {
                      "record": ""
                  },
                  "speed": {
                      "throttle": false,
                      "concurrent": 4                          // 任务并发数,建议配置为GDB实例Core数量的2倍,如果GDB有线上请求,酌情减小任务并发。
                  }
              }
          }
    4. 单击保存,并单击提交
  2. 执行同步任务脚本
    1. 单击脚本窗口右侧导航栏的基本配置,在弹出窗口选择资源组
    2. 单击运行,开始导入RDS MySQL数据至图数据库GDB。
    说明
    • 如果配置以及网络环境正确,您将看到周期性的同步信息输出,最后同步完成时会输出任务的统计信息。
    • 如果您只需要导入少量测试数据到GDB,也可以使用GDB的外网地址创建数据源,使用默认资源组运行导入任务。但由于外网环境复杂,且延时较高,不能保障服务质量,仅限于测试使用。