如何组合/合并两个jdbc接收器转换?

时间:2020-09-28 13:24:46

标签: jdbc apache-kafka apache-kafka-connect confluent-platform

在我的主题的Avro模式中,有两个字符串字段,field1field2。当前是否可以在JDBC Sink连接器上使用内置的转换将这两个Avro字段合并到一个数据库列中(通过concat或带有分隔符的concat的奖励积分,例如.: )?我熟悉一些基本的转换,例如:

transforms=myTransform
transforms.myTransform.type:org.apache.kafka.connect.transforms.InsertField$Value
transforms.myTransform.static.field:field2
transforms.myTransform.topic.value:field2

我实质上是在尝试进行这两个topic.value查找,然后将它们合并为单个下游db列。

1 个答案:

答案 0 :(得分:0)

不,我知道没有一个消息转换可以做到这一点。

您可以编写自己的代码,也可以使用ksqlDB实现相同的功能:

CREATE STREAM mysource WITH (KAFKA_TOPIC='source_topic', VALUE_FORMAT='AVRO');

CREATE STREAM concated WITH (KAFKA_TOPIC='target_topic' 
  AS SELECT field1 + '.' + field2 AS concat_field, * 
     FROM mysource

使用JDBC Sink连接器从那里流target_topic(FWIW,如果需要,可以在ksqlDB中使用CREATE SINK CONNECTOR进行流操作)