我正在尝试使用 Kafka 消息(作为 StreamSource)更新 Elasticsearch 中的文档。使用窗口和 Elasticsearch 连接器作为接收器批量写入 Elasticsearch 是可以的,但是,我们需要更新文档中的现有数据并以批量性能的方式读取它(不是针对每个元组,而是例如,在我们要聚合的byKey()
拆分后的整个窗口)
我们现在使用的是 Storm Trident,它在persistentAggregate
之前执行批量读取,并在之后将更新的聚合写入,从而最大限度地减少与后端的交互。我只是在 Flink 中找不到类似的东西 - 有什么提示吗?
如何在流上运行两个窗口调用 -
window1
- 从弹性搜索批量读取
window2
- 批量到弹性搜索中。
streamData
.window1(bulkRead and update/join)
.processFunction(...)
.window2(BulkPush)
- 您可以使用任何合适的方法进行批量读取,例如
Storm Trident
。 - 在窗口 2 链接中使用批量处理器