如何为动态索引Elasticsearch配置Kafka Connect API?

时间:2019-09-05 13:01:13

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

大家好,我有一个案例,当我使用Kafka Connect API将数据下沉到Elasticsearch时。现在,我对此有疑问。我的配置文件很简单

name=elasticsearch-sink
connector.class=io.confluent.connect.elasticsearch.ElasticsearchSinkConnector
tasks.max=5
topics=myTopicKafka
topic.index.map=myTopicKafka:myIndexES-1
schema.ignore=true
key.ignore=true
connection.url=http://elasticsearch:9200
type.name=kafka-connect
batch.size=200
#linger.ms=500

但是在ES中,我使用Curator来滚动索引

actions:
  # 1:
  #   action: create_index
  #   description: 'Create mwe.resource.locate index'
  #   options:
  #     name: 'myIndexES-1-%Y-%m-%d-1'
  2:
    action: rollover
    description: >-
      Rollover the index associated with alias 'myIndexES', after exceeds 500MB memory or is a day old
    options:
      name: all_myIndexES
      conditions:
        max_age: 1d
        max_size: 500mb

这将每500MB创建一个新索引,但是索引名称为myIndexES-00002,myIndexES-00003,依此类推。所以我的问题是如何使用Kafka Connect API支持这一点

1 个答案:

答案 0 :(得分:1)

使用Rollover API时,应该写一个指向单个索引的别名。

这意味着在您的elasticsearch-sink配置中,您应该改为使用它:

topic.index.map=myTopicKafka:myIndexES-write

Curator configuration中,您应该具有一个name属性,其中包含别名。

options:
  name: 'myIndexES-write'