apache-kafka - 使用连接接收器 HDFS 连接器包含来自 Kafka 消息的密钥
问题描述
我正在使用 Kafka 连接 HDFS 接收器连接器从 kafka 写入 HDFS,它工作正常。我的消息如下所示:
key: my-key
value: {
"name": "helen"
}
我的用例是需要将消息的键附加到我发送到 HDFS 的事件中。
问题是密钥没有出现在值有效负载中,因此我无法使用:
"partitioner.class":
"io.confluent.connect.hdfs.partitioner.FieldPartitioner",
"partition.field.name": "key",
我的问题是如何将密钥添加到发送到 HDFS 的消息中,或者如何根据密钥进行分区?
解决方案
开箱即用,您不能(S3 Connect 也是如此),仅基于代码的编写方式,而不是 Connect 框架的限制
编辑- 至少对于 S3 接收器,我认为现在有一个包含键的属性
至少,您需要构建此 SMT 并将其添加到您的 Connect 工作人员,这将在写入存储之前将键、主题和分区“移动”到 Connect 记录的“值”中
https://github.com/jcustenborder/kafka-connect-transform-archive
推荐阅读
- python - 将类实例附加到 Python 中的列表
- reporting-services - SSRS 中的数字格式
- ksqldb - KSQL:在 WHERE 表达式中展开
- android - 使用 Glide 在 GridView 中显示图像
- c# - C# Libgit2sharp:无法写入块头:服务器返回了无效或无法识别的响应
- java - 使用基本身份验证加载照片
- unity3d - 更新播放器按钮光子
- javascript - 机器人 ping?评估时间、延迟和 API 延迟!不和谐.js
- python - 如何以特定间隔在字符串之间添加空格?
- imagemagick - imagemagick 在不使用 -extent 的情况下将画布更改为正方形(保留最长边)