Apache spark 流处理中的大数据集过滤

Apache spark 流处理中的大数据集过滤,apache-spark,apache-flink,apache-storm,flink-streaming,stream-processing,Apache Spark,Apache Flink,Apache Storm,Flink Streaming,Stream Processing,我正在开发一个流应用程序,输入流是一系列事件。对于每个事件,我需要从关系数据库中筛选出有效的订阅者 eventId=>eventId[subscriberId] 假设订阅表是boundedor unbounded(如果方便的话),并且有数百万行,有没有一种方法可以有效地进行过滤 假设我使用的是Flink,但我也对Spark或Storm解决方案持开放态度。假设有效订户集不断更新,并且在执行此验证时不得使用过期信息,则Flink提供了两种选择: 使用Flink的异步i/o操作符管理对关系数据库的查询

我正在开发一个流应用程序,输入流是一系列事件。对于每个事件,我需要从关系数据库中筛选出有效的订阅者

eventId=>eventId[subscriberId]

假设订阅表是boundedor unbounded(如果方便的话),并且有数百万行,有没有一种方法可以有效地进行过滤


假设我使用的是Flink,但我也对Spark或Storm解决方案持开放态度。

假设有效订户集不断更新,并且在执行此验证时不得使用过期信息,则Flink提供了两种选择:

使用Flink的异步i/o操作符管理对关系数据库的查询 通过在关系数据库的变更数据捕获流中进行流式传输,维护处于Flink状态的关系数据库镜像
所以,您有一个将eventId或eventType映射到有效subscriberId的表??你想用它过滤掉那些无效的吗?是的,它是一个订阅表,记录事件订阅状态@DominikowsińskiI对第二个选项感兴趣,它是否比选项1更有效?顺便说一句,我偶然发现了这一点,它看起来很像我现在正在处理的。你认为使用广播流,将订阅流广播到事件流进行查找是否可行?是的,通常,如果表不是很大,第二种解决方案可以很容易地使用broacastStream,然后在进程函数中预格式化查找。广播状态的潜在问题是它不能使用RocksDB,因此它必须位于堆上,并且每个实例都将检查它的副本-因此出于这些原因,你不希望它太大。