一、数据流的合并和分支
二、Dropping Unwanted Records
(1)required field可以在processor, executor, and most destination 节点,如果一个记录没人包含任何的必要字段那么这条记录将别丢给错误处理操作。
(2)Preconditions 前置条件,数据必须满足前置条件的情况下才能进入相关的步骤进行数据的处理。前置条件可以在processor, executor, and most destination 中使用,在前置条件中可以使用function,变量和运行时的属性
例如使用如下表达式排
${record:value('/COUNTRY') == 'US'}
三、Error Record Handling
record handling 可以在stage level 和 pipeline level进行定义,也可以将stage中定义的错误不进行处理,传给pipeline的错误处理。
stage中的错误处理机制会优先与pipeline的错误机制。
注意:缺少必要字段的记录将不会进入此stage,这些数据直接被pipeline的error handing进行处理
错误处理的常见方式:
pipeline error Handing
1.丢弃数据(discard) 2.写入管道(Write to Another Pipeline):此模式需要自己创建SDC RPC origin pipeline 3.写入文件系统 4.写入kafka
stage error handing
1.丢弃数据(discard)2.将error发送到pipeline error handing(Send to Error)进行处理 3.停止pipeline(Stop Pipeline):停止pipeline并记录相关错误信息,停止管道打错误在管道历史记录中显示为error .注意:集群模式暂不支持此模式
四、Processing Changed Data(处理变化的数据)
Steamsets可以捕获数据的变化,比如增删改查。
1.常用CDC-enabled stages:
JDBC Query Consumer for Microsoft SQL Server
MySQL Binary Log
Oracle CDC Client
PostgreSQL CDC Client
SQL Parser,
SQL Server CDC Client,
SQL Server Change Tracking
2.CRUD enabled stages:
JDBC Tee processor
JDBC Producer destination
数据处理(processing the data),因为存储的log日志保存了不同格式的记录数据,使用 JDBC Tee processor and JDBC Producer能够解码大多数更改日志格式,从而根据原始更改日志生成记录数据。当使用其他的CRUD-enabled destinations,你需要添加其它stage用于处理数据格式
对应mysql的数据变更捕获: