Ale*_*lex 7 oracle jdbc apache-kafka apache-kafka-connect confluent-platform
我正在使用 Confluent JDBCSourceConnector 从 Oracle 表中读取数据。我正在尝试使用 SMT 生成由 3 个连接字段组成的密钥。
transforms=createKey
transforms.createKey.type=org.apache.kafka.connect.transforms.ValueToKey
transforms.createKey.fields=BUS_OFC_ID_CD,SO_TYPE,SO_NO
Run Code Online (Sandbox Code Playgroud)
使用上面的转换,我得到了这样的东西:
{"BUS_OFC_ID_CD":"111","SO_TYPE":"I","SO_NO":"55555"}
Run Code Online (Sandbox Code Playgroud)
我想要类似的东西:
111I55555
Run Code Online (Sandbox Code Playgroud)
关于如何仅连接值的任何想法?
小智 5
我无法在属性文件中解决上述问题。因此,解决方法是:
例如:
CREATE VIEW XX_TEST_V AS
SELECT BUS_OFC_ID_CD, SO_TYPE, SO_NO, BUS_OFC_ID_CD||SO_TYPE||SO_NO as KEYNAME
FROM XX_TEST;
Run Code Online (Sandbox Code Playgroud)
这会给你一个 JSON 密钥消息
{"KEYNAME ":"111I55555"}
Run Code Online (Sandbox Code Playgroud)
要剥离 JSON 以仅包含文本,然后在属性文件中完成
例如:
transforms=createKey,extractString
transforms.createKey.type=org.apache.kafka.connect.transforms.ValueToKey
transforms.createKey.fields=KEYNAME
transforms.extractString.type=org.apache.kafka.connect.transforms.ExtractField$Key
transforms.extractString.field=KEYNAME
Run Code Online (Sandbox Code Playgroud)
这应该给你以下作为关键
"111I55555"
Run Code Online (Sandbox Code Playgroud)
问候彼得
| 归档时间: |
|
| 查看次数: |
2346 次 |
| 最近记录: |