Oracle GoldenGate for Kafka更新记录时JSON仅含更新列与主键列问题
解决Oracle GoldenGate Big Data for Kafka更新时JSON仅含更新列和主键的问题
我之前也碰到过一模一样的情况——OGG for Kafka默认会对更新操作做轻量化优化,只把被修改的列和主键列放到after字段里,目的是减少Kafka消息的体积、提升传输效率。如果你的下游系统需要完整的行数据,只需要调整一下OGG Big Data Adapter的配置就能解决:
具体配置步骤
- 找到你的Kafka Handler配置文件(一般是类似
kafka-handler.properties的文件,存放在OGG的adapter配置目录下) - 在配置文件中添加或修改以下参数:
# 开启更新操作时输出全列数据到after字段 gg.handler.kafka.fullUpdateColumns=true
- 重启OGG的Extract进程,让新配置生效
补充说明
- 如果你还需要
before字段也包含完整的行数据,要确保你的Extract配置里已经开启了GETUPDATEBEFORES,这样OGG才能捕获到更新前的完整记录 - 默认的轻量化输出在大多数流式处理场景下是合理的,但如果下游需要基于完整行做业务逻辑,开启全列输出就很有必要
调整后,更新操作生成的JSON的after部分就会包含表中所有列,而不是只有更新列和主键了。
内容的提问来源于stack exchange,提问作者Francis John




