如何将可以在运行时定义的规则应用于流式数据集?
Posted
技术标签:
【中文标题】如何将可以在运行时定义的规则应用于流式数据集?【英文标题】:How to apply rules that can be defined at runtime to streaming datasets? 【发布时间】:2017-06-20 19:38:22 【问题描述】:不确定标题是否适合我想要实现的目标,请耐心等待。
我将从定义我的用例开始:
许多(比如数百万)物联网设备正在向我的 Spark 流发送数据。这些设备每 10 秒发送一次当前温度水平。 所有这些物联网设备的所有者都可以定义预设规则,例如:如果温度 > 50 则执行某项操作。
如果在某个时间段内超过 50 个条件,我正在尝试确定是否可以输出这些设备中有多少符合此条件。问题是规则是实时定义的,应该实时应用于 Spark 作业。
我会怎么做。 Spark 是适合这项工作的工具吗?
非常感谢
【问题讨论】:
这些规则是如何定义的? Spark 是正确的工具吗 -> 您有哪些选择? 【参考方案1】:Spark 是适合这项工作的工具吗?
我想是的。
规则是实时定义的,应实时应用于 Spark 作业。
让我们假设规则在数据库中,因此 Spark 会在每个批处理间隔中获取它们并一个一个地应用它们。它们也可以在文件或任何其他存储中。这与主要要求是正交的。
我该怎么做?
批处理间隔将是“某个时间段”。我假设有效载荷将具有 deviceId 和温度。这样,您就可以在温度范围内使用常规过滤器并返回 deviceId。您不需要有状态的管道,除非您想在超过批处理间隔的时间内累积数据。
【讨论】:
以上是关于如何将可以在运行时定义的规则应用于流式数据集?的主要内容,如果未能解决你的问题,请参考以下文章