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

说明

配置同步任务脚本

在DataWorks对应工作空间(相同区域)的数据开发环境,参照文档创建离线同步节点

  • 数据来源项下选择MySQL和您配置好的MySQL数据源,以及需要导入到GDB中的数据库表。
    说明

    先配置好MySQL数据源,包括数据过滤参数,如果有需要。以下示例使用事先准备好的comment表,同步到GDB点数据。

  • 数据去向项下选择GDB和您配置好的GDB数据源,目前GDB不支持向导模式,点击转换到脚本再编辑同步任务参数。

以下示例配置是同步数据源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有线上请求,酌情减小任务并发
        }
    }
}

执行同步任务脚本

上述脚本配置完成后,保存并提交。在脚本窗口侧边栏选择数据集成资源组配置,选取您购买的独享数据集成资源组。

点击脚本窗口的运行图标,开始导入MySQL数据表到GDB。如果配置以及网络环境没问题,您将看到周期性的同步信息输出,最后同步完成时会输出任务的统计信息。

说明

如果您只需要导入少量测试数据到GDB,也可以使用GDB的外网地址创建数据源,使用默认资源组运行导入任务。但由于外网环境复杂,且延时较高,不能保障服务质量,仅限于测试使用。