elasticsearch Elasticsearch接收器使用kafka connect Elasticsearch+;仅获取新消息,而不获取上一条消息;时间戳SMT,elasticsearch,apache-kafka,apache-kafka-connect,elasticsearch,Apache Kafka,Apache Kafka Connect" /> elasticsearch Elasticsearch接收器使用kafka connect Elasticsearch+;仅获取新消息,而不获取上一条消息;时间戳SMT,elasticsearch,apache-kafka,apache-kafka-connect,elasticsearch,Apache Kafka,Apache Kafka Connect" />

elasticsearch Elasticsearch接收器使用kafka connect Elasticsearch+;仅获取新消息,而不获取上一条消息;时间戳SMT

elasticsearch Elasticsearch接收器使用kafka connect Elasticsearch+;仅获取新消息,而不获取上一条消息;时间戳SMT,elasticsearch,apache-kafka,apache-kafka-connect,elasticsearch,Apache Kafka,Apache Kafka Connect,我正在使用kafka connect elasticsearch插件从我的kafka到elasticsearch获取消息。 我在卡夫卡中的数据包含一个日期字段(时间戳格式) 我的第一个问题是,当我使用这个插件时,Elasticsearch index没有将日期字段识别为日期类型,而是识别为长。。。 我在连接器配置中使用SMT转换解决了这个问题 以下是我当前的配置,允许我以弹性方式推送数据: { "name": "elasticsearch-sink-test", "config": {

我正在使用kafka connect elasticsearch插件从我的kafka到elasticsearch获取消息。 我在卡夫卡中的数据包含一个日期字段(时间戳格式)

我的第一个问题是,当我使用这个插件时,Elasticsearch index没有将日期字段识别为日期类型,而是识别为长。。。 我在连接器配置中使用SMT转换解决了这个问题

以下是我当前的配置,允许我以弹性方式推送数据:

{
  "name": "elasticsearch-sink-test",
  "config": {
    "connector.class": "io.confluent.connect.elasticsearch.ElasticsearchSinkConnector",
    "tasks.max": "1",
    "topics": "test.test",
    "key.ignore": "true",
    "connection.url": "http://localhost:9200",
    "type.name": "kafka-connect",
    "name": "elasticsearch-sink-test",
    "Batch.size": 100,
    "max.buffered.records": 1000,
    "Max.retries": 10,
    "Retry.backoff.ms": 1000,
    "flush.timeout.ms": 20000,
    "max.in.flight.requests": 3
    "transforms": "date",
    "transforms.date.type": "org.apache.kafka.connect.transforms.TimestampConverter$Value",
    "transforms.date.target.type": "Date",
    "transforms.date.field": "date",
    "transforms.date.format": "yyyy-MM-dd HH:mm:ss"
  }
}
我现在的问题是: Elasticsearch不会获取存储在kafka中的所有以前的消息,而只获取新消息(启动Elasticsearch连接器后推送到kafka的所有新消息)

如何配置连接器使其能够获取所有消息? 是否有任何解决办法使“理解”日期字段是时间戳

(有关信息,我的数据源是带有debezium CDC连接器的MongoDB)

先谢谢你

如何配置连接器使其能够获取所有消息

就像普通的卡夫卡消费者一样,您需要将偏移设置为最早的偏移

consumer.auto.offset.reset=earliest 
是否有任何解决办法使“理解”日期字段是时间戳


是的,在Elasticsearch中使用索引或动态映射。默认情况下,所有接收的数字都只是数值。只有格式正确的日期字符串才真正被索引为日期。如果您不控制Elasticsearch服务器或索引设置,这通常是由该系统的管理员设置的

谢谢您的回答,但仍然不起作用。我在配置文件的末尾添加了“consumer.auto.offset.reset”:“earliset”,没有任何变化。这是设置偏移的好方法吗?如果不知道如何操作,即您已经启动了一次连接器,那么它将被设置为最新的偏移量。。。您需要重置用户组或重命名连接器。我已经验证了此设置是否有效,但您在注释中拼写的最早时间不正确,现在完全可以正常工作了。我重命名了连接器并更正了输入错误。。。谢谢