debezium/dbz

Explore SMT for externalizing large column values [DBZ-1541]

已关闭

#258 创建于 2025年12月11日

 (4 条评论) (0 个反应) (1 位负责人)HTML (6 个派生)auto 404
component/core-librarygood first issuemigrated-from-jiratype/enhancement

仓库指标

星标
 (3 个星标)
PR 合并指标
 (PR 指标待抓取)

描述

Migrated from DBZ-1541

This came up in a Twitter [discussion|https://twitter.com/gunnarmorling/status/1181687283071803392]: it could be useful to have an SMT which externalizes large BLOB/CLOB column values and propagates the external reference in data change events. The motivation is to avoid large messages in Apache Kafka.

One particular implementation could be based on Amazon S3: when creating a change event, the values of any configured large columns would be written to the S3 object storage, and in change events the corresponding field value would describe bucket name and object id. The object id should be based on the offset of the change event (and the column name, and optionally a before/after flag), so that the same id would be used when processing the same offset a second time after a connector restart.

Consumers might either resolve the reference, retrieve the referenced object and persist that in a sink datastore. More common usage would probably simply persist the object reference, pushing the object retrieval to readers of that sink datastore.

Eventually, multiple object stores may be supported, but S3 will be a good candidate for an initial PoC.

贡献者指南