Vitess 删除字段
RemoveField SMT 可从事件记录中移除指定的字段。当连接器配置为提供事务元数据时,使用此 SMT 来移除 transaction.id 字段,以避免存储 VGTID 的重复条目。此转换仅设计用于 Debezium 连接器 for Vitess。
SMT 使用 field_names 配置选项来指定一个逗号分隔的路径列表,这些路径标识要移除的字段。SMT 会从事件记录和事件模式中移除您指定的每个字段。以下示例展示了如何将 SMT 添加到连接器配置中,以便移除连接器发出的变更事件记录中的特定字段。
示例:配置 RemoveField SMT
"connector.class": "io.debezium.connector.vitess.VitessConnector",
...
"transforms": "removeField",
"transforms.removeField.type": "io.debezium.connector.vitess.transforms.RemoveField",
"transforms.removeField.field_names": "transaction.id",
...
以下示例展示了在应用转换之前和之后变更事件记录的值。
示例 1. 应用
RemoveField SMT 的效果- SMT 处理记录之前的值
-
{ "before": {...} "after": {...} "source": {...} "transaction": { "id": "[{\"keyspace\":\"test_unsharded_keyspace\",\"shard\":\"0\",\"gtid\":\"MySQL56/e03ece6c-4c04-11ec-8e20-0242ac110004:1-68\"}]", "total_order": 1, "data_collection_order": 1 } } - SMT 处理记录之后的值
-
{ "before": {...} "after": {...} "source": {...} "transaction": { "total_order": 1, "data_collection_order": 1 } }