【发布时间】:2018-07-16 16:20:18
【问题描述】:
我使用一个简单的文件源阅读器
connector.class=org.apache.kafka.connect.file.FileStreamSourceConnector
tasks.max=1
文件内容是每一行中的一个简单 JSON 对象。我发现有一种方法可以替换记录键并使用转换来执行此操作,例如
# Add the `id` field as the key using Simple Message Transformations
transforms=InsertKey
# `ValueToKey`: push an object of one of the column fields (`id`) into the key
transforms.InsertKey.type=org.apache.kafka.connect.transforms.ValueToKey
transforms.InsertKey.fields=ip
但是我遇到了一个错误
仅支持 [将字段从值复制到键] 的 Struct 对象, 找到:java.lang.String
有没有办法像使用 Flume 和 regex_extractor 一样解析字符串 json 并从那里获取密钥?
【问题讨论】:
-
你的键是一个字符串,而不是一个结构。您如何期望将某些内容“插入”到字符串中?
-
我已将配置替换为 transforms.ReplaceKey.type=org.apache.kafka.connect.transforms.ReplaceField$Key transforms.ReplaceKey.whitelist=ip 但它仍然会产生错误
Only Map objects supported in absence of schema -
我发现如果源没有模式是不可能的。它必须是另一个支持生成结构化模型的插件。
-
@SergeiGrigorev,在没有源代码的情况下,您是否在以后的任何时候发现了这个问题?
标签: json apache-kafka apache-kafka-connect