Debezium日常分享系列之:重新选择列

Debezium系列之:重新选择列

一、介绍

  • 仅 SQL 数据库连接器支持此后处理器。
  • 在某些情况下,由于某些源数据库的工作方式,当 Debezium 连接器发出更改事件时,该事件可能会排除特定列类型的值。例如,PostgreSQL 中的 TOAST 列、Oracle 中的 LOB 列或 Oracle Exadata 中的扩展字符串列的值可能全部被排除。
  • ReselectColumnsPostProcessor 提供了一种从数据库表中重新选择一个或多个列并获取当前状态的方法。您可以配置后处理器以重新选择以下列类型:
    • 空列。
    • 包含 unavailable.value.placeholder 标记值的列。

配置后处理器类似于配置自定义转换器或转换。

二、配置案例

配置 PostProcessor 的方式与配置 CustomConverter 或 Transformer 的方式大致相同。要使连接器能够使用 ReselectColumnsPostProcessor,请将以下选项添加到连接器配置中:

"post-processors": "reselector", 1
  "reselector.type": "io.debezium.processors.reselect.ReselectColumnsPostProcessor", 2
  "reselector.reselect.columns.include.list": "<schema_name>.<table_name>:<colA>,<schema_name>.<table_name>:<colB>", 3
  "reselector.reselect.unavailable.values": "true", 4
  "reselector.reselect.null.values": "true" 5
  1. 以逗号分隔的后处理器前缀列表。
  2. 后处理器的完全限定类类型名称。
  3. 使用以下格式指定的以逗号分隔的列名称列表:.:。
  4. 启用或禁用重新选择包含 unavailable.value.placeholder 标记值的列。
  5. 启用或禁用重新选择空列。

三、配置选项

下表列出了您可以为重新选择列后处理器设置的配置选项。

表 1. 重新选择列后处理器配置选项

属性默认值描述
reselect.columns.include.listNo default要从源数据库中重新选择的以逗号分隔的列名称列表。使用以下格式指定列名称: + .:__如果设置了 reselect.columns.exclude.list 属性,请勿设置此属性。
reselect.columns.exclude.listNo default源数据库中要从重新选择中排除的列名称的逗号分隔列表。使用以下格式指定列名称: + .:__如果设置了 reselect.columns.include.list 属性,请勿设置此属性。
reselect.unavailable.valuestrue指定如果列值由连接器的 unavailable.value.placeholder 属性提供,则后处理器是否重新选择与 reselect.columns.include.list 过滤器匹配的列。
reselect.null.valuestrue指定如果列值为空,后处理器是否重新选择与 reselect.columns.include.list 过滤器匹配的列。
  • 13
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

快乐骑行^_^

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值