如何将可在运行时定义的规则应用于流数据集?

时间:2017-06-20 19:38:23

标签: apache-spark apache-spark-sql spark-structured-streaming

不确定标题是否适合我想要达到的目标,所以请耐心等待。

我将首先定义我的用例:

许多(比如数百万)IoT设备正在向我的Spark流发送数据。这些设备每10秒发送一次当前温度。 所有这些IoT设备的所有者都能够定义预设规则,例如:如果温度> 1。 50然后做点什么。

如果>我试图弄清楚我是否可以输出这些设备中有多少已达到此目的一段时间内有50个标准。问题在于规则是实时定义的,应该实时应用于Spark作业。

我该怎么做? Spark是否适合这项工作?

非常感谢

1 个答案:

答案 0 :(得分:0)

  

Spark是否适合这项工作?

我想是的。

  

规则是实时定义的,应该实时应用于Spark作业。

让我们假设规则在数据库中,因此每个批处理间隔Spark都会获取它们并逐个应用。它们也可以存在于文件或任何其他存储中。这恰好与主要要求正交。

  

我该怎么做?

批处理间隔为"某段时间" 。我假设有效载荷将具有deviceId和temperature。有了这个,您可以使用常规过滤器温度并恢复deviceId。除非您希望随时间累积超过批处理间隔的数据,否则您不需要有状态管道。