推送自己的ID。融合的kafka connect elasticsearch docker

时间:2018-08-07 10:33:11

标签: docker elasticsearch apache-kafka confluent

我正在使用confluentinc / cp-kafka-connect docker映像。 我正在尝试将具有Elasticsearch ID的JSON文件发送到kafka。

{"_id":10000725, "_source": {"createdByIdentity":"tu_adminn","createdBy":"Admin Testuser"}}

这是我的连接器

{
  "name": "test-connector",
  "config": {
    "connector.class": "io.confluent.connect.elasticsearch.ElasticsearchSinkConnector",
    "tasks.max": "1",
    "topics": "andrii",
    "key.ignore": "false",
    "schema.ignore": "true",
    "connection.url": "http://elasticsearch:9200",
    "type.name": "test-type",
    "name": "elasticsearch-sink"
  }
}

当我使用key.ignore = true时,它会生成一些奇怪的ID。 如何准确传递我的ID和来源?

1 个答案:

答案 0 :(得分:2)

Per the docs

  • 如果您指定key.ignore=true,则Kafka Connect将使用消息的kafka主题,分区和偏移量的复合键-这是您看到的“怪异ID”。

  • 如果要为创建的Elasticsearch文档使用自己的ID,可以设置key.ignore=false,Kafka Connect将使用Kafka消息的密钥作为ID。

如果您的Kafka消息没有适合您要执行的操作的密钥,则需要进行设置。一种选择是使用类似KSQL的内容:

CREATE STREAM target AS SELECT * FROM source PARTITION BY _id

免责声明:我为Confluent工作,该公司是开源KSQL项目背后的公司