Skip to main content
Version: 4.2.0

MySQL

数据源配置

  • 配置项说明:
  1. 实例ID

    • 类型: 单行文本
    • 必须:
    • 默认值:
    • 说明: 数据源实例名称,请起一个有意义且唯一的名称
  2. 分库分表

    • 类型: 单行文本

    • 必须:

    • 默认值: off

    • 说明:

      如数据库中采用分表存放,可以开启此选项,默认为: off(不启用)

      on: 分表策略支持海量数据存放,每张表的数据结构需要保证相同,且有规则的后缀作为物理表的分区规则,逻辑层面视为同一张表。 如逻辑表order 对应的物理分表为: order_01,order_02,order_03,order_04

      详细说明

    • 可选项说明: 可选off,on以下是详细说明:

      • off

        • 配置项说明:
        1. host

          • 类型: 单行文本
          • 必须:
          • 默认值:
          • 说明: 服务器节点连接地址,可以为IP或者域名
      • on

        • 配置项说明:
        1. 分库节点

          • 类型: 富文本

          • 必须:

          • 默认值:

          • 说明:

            将分布在多个数据库冗余节点中的物理表视作一个逻辑表,在数据同步管道中进行配置,输入框中可输入以下内容:

            • 192.168.28.200[00-07] : 单节点多库,导入 192.168.28.200:3306 节点的 order00,order01,order02,order03,order04,order05,order06,order078个库。也可以将节点描述写成:192.168.28.200[0-7],则会导入 192.168.28.200:3306 节点的 order0,order1,order2,order3,order4,order5,order6,order78个库
            • 192.168.28.200[00-07],192.168.28.201[08-15]:会导入 192.168.28.200:3306 节点的 order00,order01,order02,order03,order04,order05,order06,order078个库 和 192.168.28.201:3306 节点的 order08,order09,order10,order11,order12,order13,order14,order158个库,共计16个库

            详细说明

        2. 分表识别

          • 类型: 单行文本

          • 必须:

          • 默认值:

          • 说明:

            识别分表的正则式,默认识别分表策略为 (tabname)_\d+ , 如需使用其他分表策略,如带字母[a-z]的后缀则需要用户自定义

            注意:如输入自定义正则式,表达式中逻辑表名部分,必须要用括号括起来,不然无法从物理表名中抽取出逻辑表名。

            可参考https://github.com/qlangtech/tis/issues/361

        3. 测试表

          • 类型: 单行文本
          • 必须:
          • 默认值:
          • 说明: 提交表单用户测试,所填正则式是否能正确识别物理分表。输入需要识别的逻辑表名,点击‘校验’按钮会进行自动识别。
        4. 增量前缀匹配

          • 类型: 单选

          • 必须:

          • 默认值: false

          • 说明:

            使用前缀匹配的样式,在flink-cdc表前缀通配匹配的场景中使用

            • 选择:在增量监听流程中使用逻辑表+*的方式对目标表监听,例如,逻辑表名为base,启动时使用base* 对数据库中 base01,base02启用增量监听,在运行期用户又增加了base03表则执行逻辑会自动对base03表开启监听
            • 选择:在增量监听流程中使用物理表全匹配的方式进行匹配。在运行期用户增加的新的分表忽略,如需对新加的分表增量监听生效,需要重启增量执行管道。
  3. 端口

    • 类型: 整型数字
    • 必须:
    • 默认值: 3306
    • 说明:
  4. 数据库名

    • 类型: 单行文本
    • 必须:
    • 默认值:
    • 说明: 数据库名,创建JDBC实例时用
  5. 用户名

    • 类型: 单行文本
    • 必须:
    • 默认值: root
    • 说明:
  6. 密码

    • 类型: 密码
    • 必须:
    • 默认值:
    • 说明:
  7. 编码

    • 类型: 单选
    • 必须:
    • 默认值:
    • 说明: 数据数据
  8. 传输压缩

  9. 附加参数

    • 类型: 单行文本
    • 必须:
    • 默认值:
    • 说明:

批量读

  • 配置项说明:
  1. 数据库名

    • 类型: 单选
    • 必须:
    • 默认值:
    • 说明:
  2. splitPk

    • 类型: 单选
    • 必须:
    • 默认值: false
    • 说明: 进行数据抽取时,如果指定splitPk,表示用户希望使用splitPk代表的字段进行数据分片,DataX因此会启动并发任务进行数据同步,这样可以大大提供数据同步的效能。 推荐splitPk用户使用表主键,因为表主键通常情况下比较均匀,因此切分出来的分片也不容易出现数据热点。 目前splitPk仅支持整形数据切分,不支持浮点、字符串、日期等其他类型。如果用户指定其他非支持类型,MysqlReader将报错! 如果splitPk不填写,包括不提供splitPk或者splitPk值为空,DataX视作使用单通道同步该表数据。
  3. fetchSize

    • 类型: 整型数字
    • 必须:
    • 默认值: 2000
    • 说明: 执行数据批量导出时单次从数据库中提取记录条数,可以有效减少网络IO次数,提升导出效率。切忌不能设置太大以免OOM发生
  4. 配置模版

    • 类型: 富文本
    • 必须:
    • 默认值: com.qlangtech.tis.plugin.datax.DataxMySQLReader.getDftTemplate()
    • 说明: 无特殊情况请不要修改模版内容,避免不必要的错误

批量写

  • 配置项说明:
  1. 数据库名

    • 类型: 单选
    • 必须:
    • 默认值:
    • 说明:
  2. writeMode

    • 类型: 单选

    • 必须:

    • 默认值: replace

    • 说明:

      控制写入数据到目标表采用 insert into 或者 replace into 或者 ON DUPLICATE KEY UPDATE 语句

  3. preSql

    • 类型: 富文本

    • 必须:

    • 默认值:

    • 说明:

      描述:写入数据到目的表前,会先执行这里的标准语句。如果 Sql 中有你需要操作到的表名称,请使用 @table 表示,这样在实际执行 Sql 语句时,会对变量按照实际表名称进行替换。比如你的任务是要写入到目的端的100个同构分表(表名称为:datax_00,datax01, ... datax_98,datax_99),并且你希望导入数据前,先对表中数据进行删除操作,那么你可以这样配置:"preSql":["delete from 表名"],效果是:在执行到每个表写入数据前,会先执行对应的 delete from 对应表名称

  4. postSql

    • 类型: 富文本

    • 必须:

    • 默认值:

    • 说明:

      写入数据到目的表后,会执行这里的标准语句。(原理同 preSql )

  5. session

    • 类型: 富文本

    • 必须:

    • 默认值:

    • 说明:

      DataX在获取Mysql连接时,执行session指定的SQL语句,修改当前connection session属性 

  6. 自动建表

    • 类型: 单选

    • 必须:

    • 默认值: on

    • 说明:

      解析Reader的元数据,自动生成Writer create table DDL语句,有三种选择:

      • off:关闭自动生成及同步目标端建表DDL语句,当目标端表实例已经存在可选择此选项。
      • default:打开动生成及自动执行目标端建表DDL语句,执行任务状态由程序自动控制毋需人为干涉。
      • customized:用户可自定义设置自动执行目标端建表DDL语句逻辑,如:是否需要生成列注释等。
    • 可选项说明: 可选off,on以下是详细说明:

      • off

        • 配置项说明:
        1. 别名前缀

          • 类型: 单行文本
          • 必须:
          • 默认值:
          • 说明: 统一为目标表添加前缀,例如在构建分层数仓用于为ods层目标表统一添加前缀,例如:ods_erp_
      • on

        • 配置项说明:
        1. 添加列注释

          • 类型: 单行文本
          • 必须:
          • 默认值: on
          • 说明: 在建表DDL上添加列注释,需要依赖源端表列是否定义注释,如源端列上没有列注释,则目标端建表列DDL上也没有列注释
        2. 别名前缀

          • 类型: 单行文本
          • 必须:
          • 默认值:
          • 说明: 统一为目标表添加前缀,例如在构建分层数仓用于为ods层目标表统一添加前缀,例如:ods_erp_
  7. batchSize

    • 类型: 整型数字

    • 必须:

    • 默认值: 1000

    • 说明:

      • 描述:一次性批量提交的记录数大小,该值可以极大减少DataX与Mysql的网络交互次数,并提升整体吞吐量。但是该值设置过大可能会造成DataX运行进程OOM情况。
  8. 配置模版

    • 类型: 富文本
    • 必须:
    • 默认值: com.qlangtech.tis.plugin.datax.DataxMySQLWriter.getDftTemplate()
    • 说明: 无特殊情况请不要修改模版内容,避免不必要的错误

实时读

  • 配置项说明:
  1. 起始位点

    • 类型: 单选

    • 必须:

    • 默认值: LATEST_OFFSET

    • 说明:

      Debezium startup options

      参数详细请参考:https://ververica.github.io/flink-cdc-connectors/master/content/connectors/mysql-cdc.html#connector-optionshttps://debezium.io/documentation/reference/1.5/connectors/mysql.html#mysql-property-snapshot-mode

      • Initial: Performs an initial snapshot on the monitored database tables upon first startup, and continue to read the latest binlog.

      • Earliest: Never to perform snapshot on the monitored database tables upon first startup, just read from the beginning of the binlog. This should be used with care, as it is only valid when the binlog is guaranteed to contain the entire history of the database.

      • Latest: Never to perform snapshot on the monitored database tables upon first startup, just read from the end of the binlog which means only have the changes since the connector was started.

      • Timestamp: Never to perform snapshot on the monitored database tables upon first startup, and directly read binlog from the specified timestamp.

        The consumer will traverse the binlog from the beginning and ignore change events whose timestamp is smaller than the specified timestamp.

    • 可选项说明: 可选EARLIEST_OFFSET,INITIAL,LATEST_OFFSET,TIMESTAMP以下是详细说明:

      • EARLIEST_OFFSET

      • INITIAL

      • LATEST_OFFSET

      • TIMESTAMP

        • 配置项说明:
        1. 开始时间

          • 类型: 日期
          • 必须:
          • 默认值:
          • 说明: timestamp for the startup offsets, as milliseconds from epoch.
  2. BinLog独立监听

    • 类型: 单选

    • 必须:

    • 默认值: false

    • 说明:

      执行Flink任务过程中,Binlog监听分配独立的Slot计算资源不会与下游计算算子混合在一起。

      如开启,带来的好处是运算时资源各自独立不会相互相互影响,弊端是,上游算子与下游算子独立在两个Solt中需要额外的网络传输开销

  3. 所在时区

    • 类型: 单选
    • 必须:
    • 默认值: com.qlangtech.tis.plugins.incr.flink.cdc.mysql.FlinkCDCMySQLSourceFactory.dftZoneId()
    • 说明: 设置MySQL服务端所在时区
  4. 过滤

    • 类型: 单选
    • 必须:
    • 默认值:
    • 说明: 可以将数据流中将某一种事件类型的事件过滤掉,有以下几种类型可以选择:INSERT, UPDATE_BEFORE, UPDATE_AFTER, DELETE

实时写

  • 配置项说明:
  1. semantic

    • 类型: 单选

    • 必须:

    • 默认值: at-least-once

    • 说明:

      描述: sink 端是否支持二阶段提交

      注意: 如果此参数为空,默认不开启二阶段提交,即 sink 端不支持 exactly_once 语义; 当前只支持 exactly-once 和 at-least-once

  2. 脚本类型

    • 类型: 单行文本

    • 必须:

    • 默认值: StreamAPI

    • 说明:

      TIS 为您自动生成 Flink Stream 脚本,现支持两种类型脚本:

      • SQL: 优点逻辑清晰,便于用户自行修改执行逻辑
      • Stream API优点基于系统更底层执行逻辑执行、轻量、高性能
    • 可选项说明: 可选SQL,StreamAPI以下是详细说明:

      • SQL

      • StreamAPI

  3. batchSize

    • 类型: 整型数字

    • 必须:

    • 默认值: 5000

    • 说明:

      描述:一次性批量提交的记录数大小,该值可以极大减少 ChunJun 与数据库的网络交互次数,并提升整体吞吐量。但是该值设置过大可能会造成 ChunJun 运行进程 OOM 情况

  4. flushIntervalMills

    • 类型: 整型数字
    • 必须:
    • 默认值: 10000
    • 说明: "the flush interval mills, over this time, asynchronous threads will flush data. The default value is 10s.
  5. parallelism

    • 类型: 整型数字
    • 必须:
    • 默认值: 1
    • 说明: sink 并行度