【发布时间】:2021-01-28 19:09:19
【问题描述】:
我的要求是将数据发送到不同的 ES 接收器(基于数据)。例如:如果数据包含特定信息,则将其发送到 sink1,否则将其发送到 sink2 等(基本上根据数据将其动态发送到任何一个 sink)。我还想分别为 ES sink1、ES sink2、Es sink3 等设置并行度。
-> Es sink1 (parallelism 4)
Kafka -> Map(Transformations) -> ES sink2 (parallelism 2)
-> Es sink3 (parallelism 2)
有没有什么简单的方法可以在flink中实现以上功能?
我的解决方案:(但不满意)
我可以想出一个解决方案,但是我会写一些中间 kafka 主题(topic1、topic2、topic3),然后为 Essink1、Essink2 和 ESsink3 提供单独的管道。我想避免写这些中间的 kafka 主题。
kafka -> Map(Transformations) -> Kafka topics (Insert into topic1,topic2,topic3 based on the data)
Kafka topic1 -> Essink1(parallelism 4)
Kafka topic2 -> Essink2(parallelism 2)
Kafka topic3 -> Essink3(parallelism 2)
【问题讨论】:
标签: elasticsearch apache-flink flink-streaming