【问题标题】:Kafka Elasticsearch Connector TimestampsKafka Elasticsearch 连接器时间戳
【发布时间】:2020-01-24 08:37:43
【问题描述】:

我可以看到这已经讨论了几次here for instance,但我认为由于 Elasticsearch 中的重大变化,这些解决方案已经过时了。

我正在尝试将我的 Kafka 主题中的 Json 中的 long/epoch 字段转换为通过连接器推送的 Elasticsearch 日期类型。

当我尝试添加动态映射时,我的 Kafka 连接更新失败,因为我尝试将两个映射应用到一个字段,_doc 和 kafkaconnect。这是版本 6 的一项重大更改,我相信每个索引只能有一个映射。

{
    "index_patterns": [ "depart_details" ],
  "mappings": {
    "dynamic_templates": [
      {
        "scheduled_to_date": {
          "match":   "scheduled",
          "mapping": {
            "type": "date"
          }
        }
      } 
    ]
}}

我现在专注于尝试通过将字段更改为时间戳、时间或日期来在连接器中从源头翻译消息。

    "transforms.TimestampConverter.type": "org.apache.kafka.connect.transforms.TimestampConverter$Value",
        "transforms.TimestampConverter.field" : "scheduled",
        "transforms.TimestampConverter.target.type": "Timestamp"

但是,我尝试通过此转换器发送的任何消息都失败了

Caused by: org.apache.kafka.connect.errors.DataException: Java class class java.util.Date does not have corresponding schema type.
    at org.apache.kafka.connect.json.JsonConverter.convertToJson(JsonConverter.java:604)
    at org.apache.kafka.connect.json.JsonConverter.convertToJson(JsonConverter.java:668)
    at org.apache.kafka.connect.json.JsonConverter.convertToJsonWithoutEnvelope(JsonConverter.java:574)
    at org.apache.kafka.connect.json.JsonConverter.fromConnectData(JsonConverter.java:324)
    at io.confluent.connect.elasticsearch.DataConverter.getPayload(DataConverter.java:181)
    at io.confluent.connect.elasticsearch.DataConverter.convertRecord(DataConverter.java:163)
    at io.confluent.connect.elasticsearch.ElasticsearchWriter.tryWriteRecord(ElasticsearchWriter.java:285)
    at io.confluent.connect.elasticsearch.ElasticsearchWriter.write(ElasticsearchWriter.java:270)
    at io.confluent.connect.elasticsearch.ElasticsearchSinkTask.put(ElasticsearchSinkTask.java:169)

这似乎是一件很常见的事情,但我不知道如何在版本 7 中通过此连接器将日期或时间字段输入 Elastic?

【问题讨论】:

  • Confluent 文档指出 ES 连接器 is currently not supported 与 ES 7。你能展示你当前的 depart_details 映射的样子吗?
  • 该死的,我为此花了一天的时间,甚至去寻找兼容性。谢谢!
  • 更改type.name=_doc(而不是type.name=kafkaconnect)可能就足够了。根据this issue,这对其他人有效。

标签: elasticsearch apache-kafka-connect confluent-platform


【解决方案1】:

Confluent 文档指出 ES 连接器 is currently not supported 与 ES 7。

根据this issue,在您的连接器配置中将type.name=kafkaconnect 更改为type.name=_doc 可能就足够了。

【讨论】:

  • 这个问题好几天了,非常感谢!
猜你喜欢
  • 1970-01-01
  • 2020-11-24
  • 2019-09-28
  • 2021-01-08
  • 2021-08-16
  • 2019-10-31
  • 1970-01-01
  • 2017-08-05
  • 2019-04-18
相关资源
最近更新 更多