如何使用融合属性中可用的tranform方法将主题名称转换为小写

时间:2019-05-02 10:01:57

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

我正在使用JDBC kafka连接器将数据从oracle提取到kafka主题。我有小写定义的主题名称。但是,由于默认情况下属性是用引号定义的,因此Oracle会将所有内容都区分大小写。我也设置了quote.sql.identifiers = NEVER,但是它对我不起作用。我剩下的唯一方法就是转换主题名称。

topic.prefix = ab_gh.cc_kk_gh。

table.whitelist = XGH_YTUG_GHH

因此主题名称即将显示为ab_gh.cc_kk_gh.XGH_YTUG_GHH,但我需要ab_gh.cc_kk_gh.xgh_ytug_ghh 基本上,我需要将小写的表名附加到topic.prefix。

请帮助

1 个答案:

答案 0 :(得分:0)

您可以使用转换来做到这一点:

  1. 添加带有值的静态字段,taht将用作主题名称。使用

  2. ExtractTopic转换以设置从消息中提取的主题名称

示例配置如下:

{
    ...
    "transforms": "InsertTableName, ExtractTopic",
    "transforms.InsertTableName.type": "org.apache.kafka.connect.transforms.InsertField$Value",
    "transforms.InsertTableName.static.field": "newTopicName",
    "transforms.InsertTableName.static.value": "ab_gh.cc_kk_gh.xgh.ytug.ghh",
    "transforms.ExtractTopic.type": "io.confluent.connect.transforms.ExtractTopic$Value",
    "transforms.ExtractTopic.field": "newTopicName",
    ...
}