Debezium系列之:统一离线和实时采集使用的参数
一、背景
- 离线和实时采集使用的参数不一致,有的参数使用了默认值,有的参数使用了特殊值
- 避免在日常维护中,出现参数值遗漏或者改变参数值的情况,降低风险
- 因此考虑统一离线和实时使用的参数,明确标出使用的全部参数
二、处理bigint类型
bigint.unsigned.handling.mode:
- 默认值:long
- 指定 BIGINT UNSIGNED 列应如何在更改事件中表示。可能的设置有:
- long 使用 Java 的 long 来表示值,这可能无法提供精度,但对于消费者来说很容易使用。 long 通常是首选设置。
- Precision 使用 java.math.BigDecimal 来表示值,这些值通过使用二进制表示形式和 Kafka Connect 的 org.apache.kafka.connect.data.Decimal 类型在更改事件中进行编码。当使用大于 2^63 的值时,请使用此设置,因为这些值无法使用 long 来传送。
现状:
- 目前mysql离线使用了bigint.unsigned.handling.mode,使用的值是precise,实时connector中没有加上参数bigint.unsigned.handling.mode,使用的是默认值long
改变的方向:
- 实时加上参数bigint.unsigned.handling.mode,明确使用的值是long
三、处理decimal类型
d