将流数据引入激活器或 向对象分配事件后,可以创建规则来处理数据。 规则定义要在对象上检测的条件,以及满足这些条件时要采取的措施。 例如,冰柜对象上的规则可能会检测到温度何时高于安全阈值,并自动向分配的技术人员发送电子邮件警报。
每个激活器都包含一个或多个持续评估的规则。 这些可以是简单的技术比较(value < threshold)或有状态表达式,例如 BECOMES,DECREASES、INCREASES、EXIT RANGE,或者数据缺失(心跳)。 活动器确保每个对象进行状态跟踪,从而支持复杂模式的时间检测。
行动
当规则的条件得到满足并启动行动时,该规则就被激活。 动作支持的目标包括:
- 构造管道(用于数据移动、扩充)
- Fabric笔记本(用于机器学习评分、诊断)
- Power Automate 流(用于业务流程集成)
- Teams 通知(使用基于模板的消息传送)
有三种类型的规则:事件规则、添加到对象的事件规则以及对象属性的规则。
创建事件规则
通过创建事件规则,可以获取事件流中每个事件的激活。 创建这些类型的规则时,可以跟踪某事物随时间推移的状态。 例如:
- 每次新事件出现在具有单个 IoT 传感器读数的事件流上时,都会收到警报。
- 每次出现新事件时都会收到警报,该事件中的列的值满足定义的条件。
创建对象事件规则
对象是通过流数据创建的,并由一个或多个流中的唯一列标识。 选择要捆绑到对象中的特定列和唯一列。 然后,创建规则来监视事件并报告该对象的到达或满足定义条件的对象到达,而不是在事件到达时创建规则。 每当事件流对象上出现新事件时,规则都会激活。 并且,你还可以确定它是针对哪个实例出现的。
基于属性创建规则
通过创建属性规则,可以监视一段时间内对象的属性。 如果要监视对象上属性的状态,请在属性上创建规则。 例如,可以监视包上的温度,以及它是否随时间推移保持在一定范围内。
无状态规则与有状态规则
激活器中的规则可以是无状态或有状态的:
- 无状态规则 以隔离方式评估每个事件(例如值 < 50)。
- 有状态规则 会在每个对象的相关事件之间保持记忆(例如数值减少、变为、退出范围)
有状态评估依赖于:
- Delta 检测:跟踪先前和当前事件值之间的更改。
- 时间序列:评估基于时间的条件,如事件的缺失(心跳检测)
- 状态转换:仅在进入新状态时触发规则,防止在未改变的情况下重复触发
每个规则条件会被编译成一个执行图,该图在内存中持续且近乎即时地进行评估。 系统针对事件到达后的次秒决策延迟进行优化。
关键设计注意事项
- 有状态逻辑与无状态筛选 - 无状态筛选器(例如值 < 5)可能过于干扰。 首选过渡逻辑(如 REDUCES 或 BECOMES)来减少误报和垃圾邮件。
- 对象密钥基数 - 每个唯一对象键(例如设备 ID)都会产生内存和计算跟踪。 应仔细分析高基数实现(>10,000 个唯一对象),以保持性能。
- 组合规则 - 激活器支持 AND 和 OR 逻辑。 使用它们生成复杂的检测树(例如温度下降和状态变得“关键”)。
- 警报疲劳管理 - 设计规则以仅在边缘转换时触发。 除非输入新状态,否则激活器会自动取消重复警报,但良好的设计进一步降低了噪音。