Apache kafka 卡夫卡连接SMT以添加卡夫卡标题字段

Apache kafka 卡夫卡连接SMT以添加卡夫卡标题字段,apache-kafka,kafka-consumer-api,apache-kafka-connect,Apache Kafka,Kafka Consumer Api,Apache Kafka Connect,我需要找到或编写一个SMT,它将向请求中添加头字段。请求缺少一些类型字段,我想添加它们 如何在SMT中添加标题?我所看到的只是下面这样的记录转换,但如果它是我想要更改或添加字段的标题,该怎么办 private R applySchemaless(R record) { final Map<String, Object> value = requireMap(operatingValue(record), PURPOSE); // record.headers.add

我需要找到或编写一个SMT,它将向请求中添加头字段。请求缺少一些类型字段,我想添加它们

如何在SMT中添加标题?我所看到的只是下面这样的记录转换,但如果它是我想要更改或添加字段的标题,该怎么办

   private R applySchemaless(R record) {

   final Map<String, Object> value = requireMap(operatingValue(record), PURPOSE);
  // record.headers.add(Header)  but how do I define the header
  // or record.headers.add(String, Schema) but I am not sure how to define Schema? 
  final Map<String, Object> updatedValue = new HashMap<>(value);

  updatedValue.put(fieldName, getRandomUuid());
  

  return newRecord(record, null, updatedValue);
  
}
private R applyschemales(R记录){
最终映射值=要求映射(操作值(记录),目的);
//record.headers.add(Header)但是如何定义Header呢
//或者record.headers.add(字符串,模式),但我不确定如何定义模式?
最终映射更新值=新HashMap(值);
updatedValue.put(字段名,getRandomUuid());
返回newRecord(record,null,updatedValue);
}
这应该行得通

Headers headers = new ConnectHeaders();
headers.add(myKey, myValue, mySchema);
headers.forEach(h -> record.headers().add(h));

ConnectHeaders信息可以在这里找到-

因此我看到了record.headers().add(Header),但Header是一种抽象类型如何创建Header的实例。还有record.headers().add(String,Schema),但Schema也抽象了这是如何指定的?您可能想使用这个-我会试试。我看到的任何建议都有headers.addString(s1,s2)。你有没有关于构造一个抽象接口的schema对象的信息。头文件必须来自connect包,还有一个通用的头文件。它工作得很好。现在我开始自定义反序列化程序!