【问题标题】:Is an upsert possible with Kafka Connect to ElasticSearchKafka Connect 到 ElasticSearch 是否可以进行升级
【发布时间】:2017-04-30 17:59:35
【问题描述】:

我收到了最终出现在 Kafka 中的事件。从这些事件中,我使用 Kafka Streams 应用程序获取 id,并将其作为另一个主题中的一对 (id, 1) 发布回 Kafka。然后我想看看 id 是否已经存在于 ElasticSearch 中,如果存在则更新其计数器,否则在 ElasticSearch 中创建一条新记录,其 id 来自 Kafka,计数器设置为 1,即记录的更新 (id, 1)到 ES。

我希望为此使用 Kafka Connect to ElasticSearch,但如果可能的话,这似乎并不那么简单。我可以看到向 ​​ES 添加记录是可行的,但是与现有记录合并似乎是我还没有发现的事情。这是否已经可以实现?如果可以,如何实现?如果不可以,是否计划在附近的版本中实现?

【问题讨论】:

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


    【解决方案1】:

    我分叉了 datamountaineer ES sink connector 以允许 Upsert。有了它,您可以指定一个 PK 并使用 docAsUpsert 将更新运行到 ES 中。您可以从my github fork 获取项目并编译Jar。

    【讨论】:

    • 注意updated answer here。您只需将其添加到 Kafka ES 连接器配置中:write.method=upsert
    • Elastic Sink Connector 现在好像也有这个功能了docs.lenses.io/4.2/integrations/connectors/stream-reactor/sinks/…
    • @RyanQuey 这个问答几乎是 5 年前的事了:D 很高兴听到现在有正式的解决方案
    • 抱歉,是的,我并不是要暗示这里给出的答案或您的解决方案是错误的或无用的 - 希望它没有以这种方式出现。我只是想将其他正在寻找答案并看到这篇文章(比如我自己)的人重定向到更多最新信息。我对问题和答案都投了赞成票:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-06
    • 2017-10-07
    • 2020-09-20
    • 1970-01-01
    • 1970-01-01
    • 2021-11-06
    相关资源
    最近更新 更多