Apache NiFi处理器:CaptureChangeMySQL 2.2.0
Bundle
org.apache.nifi | nifi--cdc--mysql--nar
描述
从MySQL数据库捕获变更数据(CDC)事件。CDC事件包括INSERT、UPDATE、DELETE操作。事件可以按指定数量分组输出(默认为1,即每个事件生成一个独立的FlowFile),或按完整事务(从BEGIN到COMMIT)分组输出。所有事件按操作发生时间排序。
注意:如果在达到指定事件数量前处理器被停止,已处理的部分事件仍会输出为FlowFile,以保证事件流的连续性。
标签
cdc, event, jdbc, mysql, sql, transaction
输入要求
FORBIDDEN
支持敏感动态属性
false
属性配置
数据库/模式名称模式
- 显示名称:数据库/模式名称模式
- 描述:用于匹配CDC事件数据库(或模式,取决于RDBMS术语)的正则表达式。正则表达式必须与数据库中存储的名称完全匹配。若未设置此属性,则不会根据数据库名称过滤CDC事件。
注意:DDL事件(即使影响其他数据库)与会话执行DDL时使用的数据库关联。例如,若连接到数据库A但针对数据库B执行DDL,则匹配的数据库名称将是A。 - API名称:capture—change—mysql—db—name—pattern
- 表达式语言支持:不支持
- 敏感:false
- 必填:false
分布式Map缓存客户端(已弃用)
- 显示名称:分布式Map缓存客户端(已弃用)
- 描述:此属性已不再用于存储表信息,处理器将自行处理表信息(列名、类型等)。
- API名称:capture—change—mysql—dist—map—cache—client
- 服务接口:org.apache.nifi.distributed.cache.client.DistributedMapCacheClientService
- 表达式语言支持:不支持
- 敏感:false
- 必填:false
MySQL驱动类名
- 显示名称:MySQL驱动类名
- 描述:MySQL数据库驱动类的类名。
- API名称:capture—change—mysql—driver—class
- 默认值:com.mysql.jdbc.Driver
- 表达式语言支持:JVM环境变量及系统属性
- 敏感:false
- 必填:true
MySQL驱动位置
- 显示名称:MySQL驱动位置
- 描述:逗号分隔的MySQL驱动JAR及其依赖(若有)的文件/文件夹路径或URL。例如:/var/tmp/mysql-connector-java-5.1.38-bin.jar
- API名称:capture—change—mysql—driver—locations
- 表达式语言支持:JVM环境变量及系统属性
- 敏感:false
- 必填:false
MySQL节点
- 显示名称:MySQL节点
- 描述:MySQL集群节点的主机名(及可选端口)列表,格式为逗号分隔的host:port条目(端口可省略,默认3306)。例如:mysql.myhost.com:3306。处理器按列表顺序尝试连接节点。若集群启用了故障转移且节点失效,处理器将连接到活动节点(需在列表中指定)。
- API名称:capture-change-mysql-hosts
- 表达式语言支持:JVM环境变量及系统属性
- 敏感:false
- 必填:true
包含Begin/Commit事件
- 显示名称:包含Begin/Commit事件
- 描述:是否输出二进制日志中的BEGIN/COMMIT事件。设为true可保留这些事件供下游流程使用;设为false可提升性能。
- API名称:capture-change-mysql-include-begin-commit
- 默认值:false
- 允许值:true、false
- 表达式语言支持:不支持
- 敏感:false
- 必填:true
包含DDL事件
- 显示名称:包含DDL事件
- 描述:是否输出DDL事件(如ALTER TABLE、TRUNCATE TABLE)。设为true可保留这些事件;设为false可提升性能。
- API名称:capture-change-mysql-include-ddl-events
- 默认值:false
- 允许值:true、false
- 表达式语言支持:不支持
- 敏感:false
- 必填:true
初始Binlog文件名
- 显示名称:初始Binlog文件名
- 描述:若处理器状态中无当前binlog文件名,则使用此属性指定的文件名。若已存在状态或“使用GTID”设为false,则忽略此属性。可与“初始Binlog位置”配合跳过历史事件。注意:支持NiFi表达式语言,但仅在配置时解析(无法使用FlowFile属性)。
- API名称:capture-change-mysql-init-binlog-filename
- 表达式语言支持:JVM环境变量及系统属性
- 敏感:false
- 必填:false
初始Binlog位置
- 显示名称:初始Binlog位置
- 描述:若处理器状态中无当前binlog文件名,则使用此属性指定的偏移量。若已存在状态或“使用GTID”设为false,则忽略此属性。
- API名称:capture-change-mysql-init-binlog-position
- 表达式语言支持:JVM环境变量及系统属性
- 敏感:false
- 必填:false
初始Binlog GTID
- 显示名称:初始Binlog GTID
- 描述:若处理器状态中无当前GTID,则使用此属性指定的GTID。若已存在状态或“使用GTID”设为false,则忽略此属性。
- API名称:capture--change--mysql--init--gtid
- 表达式语言支持:JVM环境变量及系统属性
- 敏感:false
- 必填:false
初始序列ID
- 显示名称:初始序列ID
- 描述:若处理器状态中无当前序列ID,则使用此属性指定的ID。序列ID为单调递增整数,用于记录CDC事件顺序,可与EnforceOrder处理器配合保证有序交付。
- API名称:capture--change--mysql--init--seq--id
- 表达式语言支持:JVM环境变量及系统属性
- 敏感:false
- 必填:false
最大等待时间
- 显示名称:最大等待时间
- 描述:建立连接的最大允许时间(0表示无限制)。
- API名称:capture--change--mysql--max-wait-time
- 默认值:30秒
- 表达式语言支持:JVM环境变量及系统属性
- 敏感:false
- 必填:true
表名称模式
- 显示名称:表名称模式
- 描述:匹配CDC事件表名的正则表达式。若未设置,则不过滤表名。
- API名称:capture-change-mysql-name-pattern
- 表达式语言支持:不支持
- 敏感:false
- 必填:false
密码
- 显示名称:密码
- 描述:访问MySQL集群的密码。
- API名称:capture-change-mysql-password
- 表达式语言支持:JVM环境变量及系统属性
- 敏感:true
- 必填:false
检索所有记录
- 显示名称:检索所有记录
- 描述:是否获取所有可用CDC事件(忽略当前binlog状态)。若处理器状态中已有binlog数据,则此属性无效。重置行为需清除处理器状态。
- API名称:capture—change—mysql–retrieve–all–records
- 默认值:true
- 允许值:true、false
- 表达式语言支持:不支持
- 敏感:false
- 必填:true
服务器ID
- 显示名称:服务器ID
- 描述:客户端连接到MySQL复制组时需唯一ID(默认65535)。每个CaptureChangeMySQL实例的ID必须全局唯一。
- API名称:capture—change—mysql–server–id
- 表达式语言支持:JVM环境变量及系统属性
- 敏感:false
- 必填:false
使用Binlog GTID
- 显示名称:使用Binlog GTID
- 描述:是否使用全局事务ID(GTID)跟踪binlog。设为true时忽略binlog文件名/位置状态,提升故障转移可靠性。
- API名称:capture—change—mysql–use–gtid
- 默认值:false
- 允许值:true、false
- 表达式语言支持:不支持
- 敏感:false
- 必填:true
用户名
- 显示名称:用户名
- 描述:访问MySQL集群的用户名。
- API名称:capture-change-mysql-username
- 表达式语言支持:JVM环境变量及系统属性
- 敏感:false
- 必填:false
事件处理策略
- 显示名称:事件处理策略
- 描述:指定将事件写入FlowFile的策略,如“每个FlowFile最大事件数”。
- API名称:events-per-flowfile-strategy
- 默认值:MAX_EVENTS_PER_FLOWFILE
- 允许值:
- Max Events Per FlowFile
- One Transaction Per FlowFile
- 表达式语言支持:不支持
- 敏感:false
- 必填:true
每个FlowFile的事件数
- 显示名称:每个FlowFile的事件数
- 描述:单个FlowFile包含的事件数量。若处理器在达到数量前停止,已处理事件仍会输出。
- API名称:number-of-events-per-flowfile
- 默认值:1
- 表达式语言支持:JVM环境变量及系统属性
- 敏感:false
- 必填:true
- 依赖条件:事件处理策略为MAX_EVENTS_PER_FLOWFILE
SSL配置
SSL上下文服务
- 显示名称:SSL上下文服务
- 描述:支持加密通信的SSL上下文服务。
- API名称:SSL Context Service
- 服务接口:org.apache.nifi.ssl.SSLContextService
- 表达式语言支持:不支持
- 敏感:false
- 必填:false
- 依赖条件:SSL模式为PREFERRED、VERIFY_IDENTITY或REQUIRED
SSL模式
- 显示名称:SSL模式
- 描述:SSL证书验证模式(需配置SSL上下文服务)。
- API名称:SSL Mode
- 默认值:DISABLED
- 允许值:
- DISABLED
- PREFERRED
- REQUIRED
- VERIFY_IDENTITY
- 表达式语言支持:不支持
- 敏感:false
- 必填:true
状态管理
作用域 | 描述 |
CLUSTER | 存储当前CDC事件在数据库中的“指针”信息,确保重启后可从断点继续。 |
限制
所需权限 | 说明 |
reference remote resources | 数据库驱动位置可引用HTTP远程资源。 |
关系
名称 | 描述 |
success | 成功从SQL查询结果集生成FlowFile。 |
写入属性
属性名 | 描述 |
cdc.sequence.id | 严格递增的序列ID,表示CDC事件FlowFile的顺序。 |
cdc.event.type | 事件类型,如begin、insert、update、delete、ddl、commit等。 |
mime.type | FlowFile内容为JSON格式,此属性值为application/json。 |