我收到的事件最终发生在卡夫卡。从这些事件中,我使用Kafka Streams应用程序获取id,并将其作为另一个主题中的一对(id,1)发送回Kafka。然后我想看看ID是否已存在于ElasticSearch中,如果是这样,则更新其计数器,否则在ElasticSearch中创建一个新记录,其中来自Kafka的id和计数器设置为1,即记录的upsert(id,1)到ES。
我本来希望将Kafka Connect用于ElasticSearch,但如果可能的话,它似乎并不那么简单。我可以看到向ES添加记录的工作,但与现有记录合并似乎是我尚未发现的东西。这是否已经存在,如果可能,如何计划在附近的版本中如何实现?
答案 0 :(得分:2)
我将datamountaineer ES sink connector分叉以允许Upsert。有了它,您可以指定PK并使用docAsUpsert运行更新到ES。您可以抓取项目并从my github fork编译Jar。