阅读738 返回首页    go 魔兽


DRDSWriter__Writer插件_使用手册_数据集成-阿里云

1 快速介绍

DRDSWriter 插件实现了写入数据到 DRDS 的目的表的功能。在底层实现上, DRDSWriter 通过 JDBC 连接远程 DRDS 数据库的 Proxy,并执行相应的 replace into ... 的 sql 语句将数据写入 DRDS,特别注意执行的 Sql 语句是 replace into,为了避免数据重复写入,需要你的表具备主键或者唯一性索引(Unique Key)。

DRDSWriter 面向ETL开发工程师,他们使用 DRDSWriter 从数仓导入数据到 DRDS。同时 DRDSWriter 亦可以作为数据迁移工具为DBA等用户提供服务。

2 实现原理

DRDSWriter 通过 CDP 框架获取 Reader 生成的协议数据,通过 replace into...(没有遇到主键/唯一性索引冲突时,与 insert into 行为一致,冲突时会用新行替换原有行所有字段) 的语句写入数据到 DRDS。DRDSWriter 累积一定数据,提交给 DRDS 的 Proxy,该 Proxy 内部决定数据是写入一张还是多张表以及多张表写入时如何路由数据。 注意:整个任务至少需要具备 replace into...的权限,是否需要其他权限,取决于你任务配置中在 preSql 和 postSql 中指定的语句。

3 功能说明

3.1 配置样例
  • 配置一个写入DRDS的作业。
{
    "type": "job",
    "traceId": "您可以在这里填写您作业的追踪ID,建议使用业务名+您的作业ID",
    "version": "1.0",
    "configuration": {
        "reader": {
            "plugin": "sqlserver",
            "parameter": {
                "instanceName": "rds.aliyun.com",
                "username": "username",
                "password": "password",
                "table": "table",
                "column": [
                    "*"
                ],
                "where": "1 = 1"
            }
        },
        "writer": {
            "plugin": "drds",
            "parameter": {
                "writeMode": "replace",
                "jdbcUrl": "jdbc:mysql://ip:port/database",
                "username": "username",
                "password": "password",
                "table": "table",
                "column": [
                    "*"
                ],
                "preSql": [
                    "delete from XXX;"
                ]
            }
        }
    }
}
3.2 参数说明
  • jdbcUrl
    • 描述:jdbc连接信息,使用mysql的jdbc协议格式填写内容。
    • 必选:是
    • 默认值:无
  • username
    • 描述:数据源的用户名
    • 必选:是
    • 默认值:无
  • password
    • 描述:数据源指定用户名的密码
    • 必选:是
    • 默认值:无
  • table
    • 描述:所选取的需要同步的表。
    • 必选:是
    • 默认值:无
  • writeMode
    • 描述: 选择导入模式,可以支持replace/insert ignore方式,
      • replace指没有遇到主键/唯一性索引冲突时,与 insert行为一致,当主键/唯一性索引冲突时会用新行替换原有行所有字段。
      • insert ignore指当主键/唯一性索引冲突,CDP将直接忽略更新丢弃,并且不记录!
    • 必选:否
    • 默认值:insert
  • column
    • 描述:所配置的表中需要同步的列名集合。以英文逗号(,)进行分隔。我们强烈不推荐用户使用默认列情况
    • 必选:是
    • 默认值:无
  • preSql
    • 描述:执行数据同步任务之前率先执行的sql语句,目前只允许执行一条SQL语句,例如清除旧数据。
    • 必选:否
    • 默认值:无
  • postSql
    • 描述:执行数据同步任务之后执行的sql语句,目前只允许执行一条SQL语句,例如加上某一个时间戳。
    • 必选:否
    • 默认值:无
  • batchSize
    • 描述:一次性批量提交的记录数大小,该值可以极大减少CDP与Mysql的网络交互次数,并提升整体吞吐量。但是该值设置过大可能会造成CDP运行进程OOM情况。
    • 必选:否
    • 默认值:1024
3.3 类型转换

目前 DRDSWriter 支持大部分 Mysql 类型,但也存在部分个别类型没有支持的情况,请注意检查你的类型。

下面列出 DRDSWriter 针对 DRDS 类型转换列表:

CDP 内部类型 DRDS 数据类型
Long int, tinyint, smallint, mediumint, int, bigint, year
Double float, double, decimal
String varchar, char, tinytext, text, mediumtext, longtext
Date date, datetime, timestamp, time
Boolean bit, bool
Bytes tinyblob, mediumblob, blob, longblob, varbinary

最后更新:2016-11-23 16:03:59

  上一篇:go OTSWriter__Writer插件_使用手册_数据集成-阿里云
  下一篇:go OSSWriter__Writer插件_使用手册_数据集成-阿里云