设置同步属性

为什么需要设置同步属性?

在数据同步过程中,我们可能需要根据业务需求对同步行为进行精细化控制。例如,某些场景下我们可能不希望同步删除操作,或者只关注特定的DDL操作。通过设置同步属性,我们可以灵活地控制哪些数据变更操作(DML)和结构变更操作(DDL)需要被同步,从而更好地满足业务需求,提高同步的效率和安全性。

在增量同步的时候,ProtonBase 根据对象属性过滤数据,包括 DDL 和 DML。可以修改对象属性来忽略源端某些数据行为,比如 Delete 数据。

修改属性

点击"修改属性"可以修改全局属性和任意节点属性。

对象属性默认使用 default 全局属性,每个节点可以配置各自的属性。节点属性配置之后,所有下属子节点使用该节点属性。

如下图所示:bit_type_test 表的属性,默认使用 mysql_normal_test database 的属性;mysql_normal_test database 的属性默认使用 default 属性。

一旦节点属性配置之后,会增加一个撤销按钮,如下图红框所示。点击该按钮,可以清空修改,使用上层节点属性或者全局属性

属性含义

支持的 DDL 操作

  • Alter:侦听修改表事件,比如新增字段、修改字段等(当前只支持新增字段),默认选中
  • Drop:侦听删除表事件
  • Truncate:侦听清空表事件

具体可选操作取决于数据源类型。新表是否进入同步范围由同步对象的 includes / excludes 决定,具体参见选择同步对象

支持的 DML 操作

  • Insert:新增数据,默认选中,当上游执行 Insert 命令时,下游同步执行 Insert。
  • Update:更新数据,默认选中,当上游执行 Update 命令时,下游同步执行 Update。
  • Delete:删除数据,默认选中,当上游执行 Delete 命令时,下游同步执行 Delete。

支持无损变更

当使用阿里云 DMS 提交数据结构变更时,可以选择无损变更模式。在该模式下,DMS 会创建临时表、迁移数据,最后通过 RENAME 完成临时表和原表的替换。如果目标表存在视图依赖,或者不希望临时表替换影响目标对象,可以在同步策略中启用无损变更选项。

无损变更模式下,不会创建临时表,而是利用 ProtonBase 数据库本身的 Online Schema Evolution 能力,直接将变更操作应用在目标表上。这个过程不需要创建新表,也不会变更 table id,无需下游视图重建。