想象你是一栋 32 层智慧大厦的物业经理。你不需要亲自守在每层楼的配电间、电梯井和水泵房,你只需要在一楼大厅设一个总控室:墙上挂着整栋楼的电路图,桌上摆着每间办公室的设备台账,电话一响你就知道是哪层哪户出了什么事。阿里云 IoT 平台,就是这样一个「云上物业总控室」。它负责登记每一台设备(住户)、维护它们的状态(住客档案)、收集它们上报的数据(水电表读数)、并在异常时自动派发工单(规则引擎告警)。本篇文章,我们就从「物业视角」出发,把阿里云 IoT 平台的产品创建、设备接入、物模型定义、生命周期管理和规则引擎,串成一堂听得懂、记得住的架构课。

岗位关联

物联网工程师每天都在跟「设备接进来、数据送上来、告警发出去」打交道,掌握了阿里云 IoT 平台的物模型与规则引擎,你就拿到了智慧园区、工业监控等场景的项目入场券。

目录
  1. 可视化演示
  2. 平台整体架构
  3. 产品与设备创建
  4. 物模型三要素
  5. 设备生命周期
  6. 数据上报与存储
  7. 规则引擎
  8. 场景部署方案
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

可视化展示阿里云IoT平台设备接入与物模型、规则引擎数据处理、设备生命周期管理三大核心流程,交互调节参数体验物联网平台架构。

本节配有交互动效(进入视口后自动加载,约 3KB)。

设备接入与物模型 MQTT协议连接设备与IoT平台 物模型定义属性服务与事件 Topic = /product/device/property 设备通过物模型描述能力实现数据标准化

平台整体架构

站在物业总控室里,你首先要搞清这栋楼的骨架:每层楼的闸机(端设备)、楼层值班室(边缘节点)、以及总控室(云平台)。阿里云 IoT 平台同样采用云、边、端三层架构。端层是数以万计的传感器、摄像头、PLC 控制器,它们负责采集物理世界的温度、振动、电流等信号;边层是部署在园区机房或工厂产线旁的边缘网关,负责把不同协议统一成标准报文、在本地做初步过滤;云层才是阿里云 IoT 平台本体,它承担设备纳管、数据存储、规则运算和应用开放等核心职责。

三层之间靠什么对话?答案是 MQTT 协议。你可以把它理解成物业的对讲机频道:设备通过 publish(喊话)上报消息,应用通过 subscribe(收听)接收消息,主题(Topic)则像分机号一样把每类消息送到对应的接线员手里。MQTT 的发布订阅模型天然适合海量设备低带宽、弱网环境的通信需求,这也是它成为物联网事实标准的原因。

在架构层面,我们可以用一个集合来表示平台的三个核心层次:

回到物业的比喻:你要是只守着总控室,不去管楼层闸机和值班室,消息传不上来、命令发不下去,物业管理就是一句空话。云边端三层架构,恰好让每层各司其职,这也是任何 IoT 项目画拓扑图时最先落笔的三块积木。

Arch={端层,边层,云层}\displaystyle \text{Arch} = \{ \text{端层}, \text{边层}, \text{云层} \}
平台架构的本质就是三个层次的分工协作:端层负责感知,边层负责规整,云层负责大脑运算。
  1. Arch(架构)整个系统的功能集合,代表阿里云 IoT 平台的总体结构。
    Arch\displaystyle \text{Arch}
  2. 端层设备侧采集与执行,包括传感器、执行器和嵌入式 SDK。
    {端层}\displaystyle \{\text{端层}\}
  3. 边层边缘网关与边缘计算节点,负责协议转换和本地预处理。
    {边层}\displaystyle \{\text{边层}\}
  4. 云层平台核心服务,涵盖设备管理、数据存储、规则引擎与 API 开放。
    {云层}\displaystyle \{\text{云层}\}

产品与设备创建

物业要管理 500 间办公室,不会一间一间手工登记,而是先做一件事:定义「户型模板」。这个户型模板对应阿里云 IoT 平台里的产品(Product)。产品是同一类设备的抽象,比如「环境温湿度传感器」就是一个产品,它规定了这类设备有哪些功能、上报什么数据。而每间办公室的具体门牌号与钥匙,则对应设备(Device)——设备是产品下的具体实例,每个设备拥有全世界唯一的身份标识。

创建产品的流程并不复杂:先在阿里云控制台注册账号并开通 IoT 物联网平台服务,然后创建产品,填写产品名称、所属品类(如智能城市/工业监测)、联网方式(Wi-Fi、2G/4G、以太网)和数据格式(ICA 标准数据格式或透传)。产品定义完成后,每个设备会领取到一组「身份证 + 钥匙」:

想象一下:没有户型模板,物业没法批量管理同类房间;没有门牌号和钥匙,住户无法进门也无法报修。产品与设备的创建流程,就是物联网世界里的「户型备案 + 入住发钥匙」,这一步做好了,后面的物模型定义和设备接入才有稳定的根基。

Auth=(PK,DN,DS)\displaystyle \text{Auth} = (PK, DN, DS)
这组三元组(ProductKey、DeviceName、DeviceSecret)是设备接入平台的唯一凭证,缺一不可。
  1. Auth(认证三元组)设备接入平台时用于身份核验的三项信息,相当于门禁卡上的卡号、姓名和签名。
    Auth\displaystyle \text{Auth}
  2. PK(ProductKey)产品在平台上的全局唯一编码,标识设备属于哪个产品。
    (PK\displaystyle (PK
  3. DN(DeviceName)设备在产品内的唯一名称,通常由业务方自定义命名。
    ,DN\displaystyle , DN
  4. DS(DeviceSecret)设备密钥,用于物联网通信时的消息签名校验,等同于住户钥匙。
    ,DS)\displaystyle , DS)

物模型三要素

住户入住后,物业会给每间房建一份「入住档案表」。这张表上有三栏:一是「当前状态」栏,比如室温是 26℃、空调处于制冷模式;二是「突发记录」栏,比如烟雾报警器响了、门被异常打开;三是「服务申请」栏,比如住户一键呼叫保洁、远程开启新风系统。物模型(Thing Specification Language, TSL)就是阿里云给每类设备定制的这张标准化档案表。

物模型由三要素组成:属性(Property)描述设备某一时刻的稳态特征,温度、湿度、转速、开关状态都属于属性,属性可以被查询,也可以被设置;事件(Event)描述设备主动上报的瞬时消息,例如过热告警、软件崩溃、门禁被撬,事件带时间戳,事后可以回溯;服务(Service)描述设备可以被外部调用的能力,比如远程重启设备、下发清除缓存指令,服务有输入参数和输出结果。

三者的关系可以用一个并集表达式概括:

在控制台定义物模型时,你实际上是在维护一份 JSON Schema,每个属性要指定标识符(identifier)、数据类型(int/float/bool/text)、取值范围和读写权限。有了这份「标准话术」,不同厂商的设备都能用统一语义和云端对话——就像不同装修队都按同一张户型图施工,物业验收起来毫不费力。

M={P,E,S}\displaystyle M = \{ P, E, S \}
物模型 M 由属性集合 P、事件集合 E 和服务集合 S 共同组成,三者共同定义了设备与云端的全部交互语义。
  1. M(物模型)对设备功能特征的完整数字化描述,是设备与平台之间的「普通话标准」。
    M\displaystyle M
  2. P(属性集合)所有可读可写的状态量,如温度、湿度、开关状态。
    {P\displaystyle \{P
  3. E(事件集合)所有可上报的突发信息,如告警、故障、生命周期变化。
    ,E\displaystyle , E
  4. S(服务集合)所有可被云端调用的能力,如重启、校准、执行动作。
    ,S}\displaystyle , S\}

设备生命周期

入住一间办公室,它的「人生轨迹」会被物业完整记录:刚拿到钥匙还没搬进去,叫未激活;入住后有人走动,叫在线;出差锁门断电,叫离线;因违规被物业收回权限,叫禁用。阿里云 IoT 平台的设备生命周期管理,就是这套住户状态档案的自动化版本。

设备首次连接平台并完成认证后,状态从未激活变为在线;平台通过 MQTT 心跳和 KeepAlive 机制维护连接,若设备在超时窗口(默认 120 秒)内没有发送任何报文,平台判定设备离线;运维人员可以在控制台主动禁用某个设备,禁止其再次接入,或者彻底删除该设备及其数据。设备在生命周期中不断在状态之间切换,这个过程可以抽象成状态机模型:

在真实项目里,设备生命周期状态往往比想像的复杂:网关掉线但子设备仍在上报、设备频繁上下线导致抖动、禁用设备后旧数据是否保留……这些细节都必须靠状态机里的「边界条件」来兜底。物业最怕住户失联,IoT 项目最怕设备状态混乱,生命周期管理就是把「失联」这件事变成一条可追踪、可处置的状态流水线。

St+1=f(St,et)\displaystyle S_{t+1} = f(S_t, e_t)
设备下一时刻的状态 S(t+1),由当前状态 S(t) 和发生的事件 e(t) 共同决定,就像住户是否入住,取决于钥匙是否启用、是否退租。
  1. S(t+1)(下一状态)设备执行完某个动作后进入的新状态,例如从离线变为在线。
    St+1\displaystyle S_{t+1}
  2. f(状态转移函数)状态机中定义的转移规则,决定什么事件能把状态从 A 变为 B。
    f\displaystyle f
  3. S(t)(当前状态)设备此刻所处的状态,如未激活、在线、离线、禁用。
    (St\displaystyle (S_t
  4. e(t)(触发事件)导致状态变化的外部输入,如设备上报、连接断开、管理员禁用。
    ,et)\displaystyle , e_t)

数据上报与存储

每天深夜,住户家里的电表会把读数报给物业;物业不会只记「今天用了多少电」,而是把「什么时候、哪一户、走了多少字」一笔一笔记在台账上。IoT 平台的数据上报机制与之如出一辙:设备通过 MQTT 协议,把采集结果封装成标准 JSON 报文,发布到固定的 Topic(例如 /sys/{ProductKey}/{DeviceName}/thing/event/property/post),平台校验身份与数据格式后写入存储。

上行报文的结构通常是这样的:

平台收到后会做两件事:第一,把属性值追加到时序数据库中,按设备维度、时间维度组织成高效的写入与查询结构;第二,更新该设备在设备影子(Device Shadow)中的状态快照。设备影子是平台为每个设备维护的一份「最新状态白板」,即使设备离线,应用也可以读取影子获取设备最后一次上报的状态,并下发期望状态(desired),待设备上线后自行同步。

这份「白板 + 台账」的分工可以用下面的关系式理解:

从物业视角看,时序数据库是厚厚的水电台账,设备影子是墙上那块实时更新的状态白板。台账用来做月度统计和异常追溯,白板用来快速回答「现在第几层什么状态」。理解了这套「台账 + 白板」机制,你就理解了大半物联网数据流的走向。

Data={ts,props}\displaystyle \text{Data} = \{ ts, props \}
一条数据记录的本质是「时间戳 ts + 属性集合 props」,时间决定时序排列,属性决定业务含义。
  1. Data(数据记录)设备上报到平台后被持久化的一条完整记录。
    Data\displaystyle \text{Data}
  2. ts(时间戳)上报发生的时刻,时序数据库按它建索引,支撑「某设备某时段」的快速查询。
    {ts\displaystyle \{ts
  3. props(属性集合)本次上报携带的物模型属性键值对,如 temperature=36.5。
    ,props}\displaystyle , props\}
  4. 集合关系ts 与 props 共同构成一条记录,两者缺一不可。
    {ts,props}\displaystyle \{ ts, props \}
json8 行
{  "productKey": "pk123456",  "deviceName": "sensor-01",  "report": {    "temperature": 36.5,    "humidity": 58.2  }}

规则引擎

物业最值钱的地方,不是那本水电台账,而是「自动发现异常并响应」的值班制度:当 18 层烟感报警时,中控室自动联动喷淋并通知消防;当机房温度超过 40℃ 时,自动拉闸并呼叫维修。阿里云 IoT 平台的规则引擎,正是把这类值班制度写成可执行、可运维的自动化逻辑。

规则引擎的核心是类 SQL 的流转规则。你可以写这样一条规则:

这条规则做了三件事:从指定 Topic 订阅设备属性上报消息;用 WHERE 做条件过滤;用 SELECT 提取关键字段。规则一旦命中,平台会把结果转发到预设的数据目标:另一个 Topic(供业务应用订阅)、函数计算(执行自定义代码)、RDS 数据库(持久化)、或消息队列(削峰填谷)。

规则引擎的本质是一个带条件的映射函数,可以简化为加权求和形式的判定:

回到物业场景:规则引擎就是那个风雨无阻、从不瞌睡的值班保安。它不需要人盯屏,只要条件满足就立刻行动。在工业监控中,它负责把振动、温度、电流合成一个「健康分」;在智慧园区中,它负责把门禁、烟感、能耗联动成一条应急链路——数据的价值,在规则命中那一刻才真正落地。

∑i=1nwixi>θ\displaystyle \sum_{i=1}^{n} w_i x_i > \theta
当多个设备指标的加权和超过阈值 θ 时,规则引擎判定条件成立,并触发预定义的告警或转发动作。
  1. 求和符号对参与判定的 n 个设备指标逐一累加,体现了多条件联合判断。
    ∑i=1n\displaystyle \sum_{i=1}^{n}
  2. 权重 w_i每个指标对最终判定结果的贡献程度,例如温度权重高于湿度。
    wixi\displaystyle w_i x_i
  3. 阈值 θ触发告警的门限值,不同业务场景可调参,阈值越低越敏感。
    >θ\displaystyle > \theta
sql3 行
SELECT deviceName() AS dev, items.temperature.value AS tempFROM "/sys/a1XXXXXX/${deviceName}/thing/event/property/post"WHERE items.temperature.value > 30

场景部署方案

物业的标准化制度,最终要落到具体的楼盘上:智慧园区是一栋 32 层的写字楼,工业监控是一座 24 小时运转的厂房。两者的部署方法同源,但侧重点各异。智慧园区方案强调「广覆盖、多系统打通」:门禁、照明、空调、烟感、水电表统一接入 IoT 平台,物模型按楼栋统一建模,规则引擎实现联动场景(人走灯灭、高温告警、车位引导),数据最终沉淀到数据中台做能耗分析。工业监控方案则强调「可靠性与低时延」:PLC、振动传感器、电机控制器通过 Modbus 等协议接入边缘网关,数据先经边缘节点做实时分析(如振动超限立即停机),再定时上行云端做寿命预测。

项目落地一般遵循五步法:第一步,盘点设备清单并按品类创建产品;第二步,为每类设备定义物模型(属性、事件、服务);第三步,批量创建设备并烧录三元组凭证;第四步,编写设备端 SDK 代码打通上报链路;第五步,配置规则引擎实现业务闭环。整个部署的规模估算可以用一个简单公式:

物业每接一个新楼盘,都要算一算总控室需要几块屏幕、几个接线员;IoT 平台每接一个新项目,也要算一算需要多少设备连接量和消息 TPS。智慧园区与工业监控虽然业务不同,但「先建模、再入网、后联动」的部署逻辑完全一致——掌握了这套方法论,你就能在绝大多数 IoT 项目里快速上手。

T=D×RP\displaystyle T = \frac{D \times R}{P}
平台所需处理能力 T,约等于设备总数 D 乘以单设备上报频率 R,再除以单实例吞吐 P,这决定了你要买多大的云资源。
  1. T(总吞吐需求)平台每秒需要处理的报文数量,是容量规划的起点。
    T\displaystyle T
  2. D(设备总数)接入平台的全部设备数量,包括在线与离线设备。
    D×RP\displaystyle \frac{D \times R}{P}
  3. R(上报频率)每台设备每秒的平均上报次数,频率越高数据越实时、资源消耗越大。
    D×R\displaystyle D \times R
  4. P(单实例吞吐)一个平台实例每秒能处理的报文上限,决定了需要部署的实例数。
    P\displaystyle P

AI 应用场景

智慧园区能耗优化

阶段:数据采集 → 规则引擎 → 应用闭环

解决的问题:传统园区空调「定时开关、温度固定」,人走灯不灭、冷气空耗严重,能耗账单居高不下。通过阿里云 IoT 平台接入人体红外传感器与空调面板,物模型定义 occupancy(占用状态)与 temperature(设定温度)属性,规则引擎在人离开 10 分钟后自动下发关机指令。

具体案例:某科技园区 3 栋办公楼接入 600 个无线传感器,通过规则引擎联动楼宇自控系统,夏季空调能耗降低 18%。运维人员在钉钉上就能收到「3 层西区 10:20 无人但空调开启」的告警卡片。

工业设备预测性维护

阶段:设备生命周期管理 → 数据上报 → 告警联动

解决的问题:产线电机设备一旦故障停机,单次损失可达数十万元。传统巡检靠人工听音辨振,漏检率高。通过 IoT 平台对电机创建产品并定义 vibration(振动)、temperature(温度)等物模型属性,边缘网关每 5 秒上报一次,规则引擎对振动均方根值超限的电机触发报警,并联动工单系统自动派单。

具体案例:某汽车零部件工厂为 200 台注塑机电机接入 IoT 平台,上线 3 个月成功提前预警 12 次轴承磨损,避免非计划停机累计 40 小时。

Python 演示

python54 行
import jsonimport randomimport time  class IotClient:    """模拟一台接入阿里云IoT平台的设备终端"""     def __init__(self, product_key, device_name, device_secret):        self.product_key = product_key        self.device_name = device_name        self.device_secret = device_secret     def report(self):        """生成一条符合物模型规范的上行属性报文"""        return {            "productKey": self.product_key,            "deviceName": self.device_name,            "deviceSecret": self.device_secret,            "report": {                "temperature": round(random.uniform(20.0, 45.0), 1),                "humidity": round(random.uniform(30.0, 70.0), 1),            },        }  class RuleEngine:    """模拟平台规则引擎:温度超限则触发告警"""     def __init__(self, threshold):        self.threshold = threshold        self.alert_count = 0     def handle(self, payload):        temp = payload["report"]["temperature"]        device = payload["deviceName"]        if temp > self.threshold:            self.alert_count += 1            return "[告警] {} 温度 {} 超限, 已推送工单".format(device, temp)        return "[正常] {} 温度 {} 未超限".format(device, temp)  def main():    rules = RuleEngine(threshold=35.0)    client = IotClient("pk123456", "sensor-01", "secret-9527")    for index in range(5):        payload = client.report()        print("第 {} 次上报: {}".format(index + 1, rules.handle(payload)))        time.sleep(0.5)    print("本次模拟共触发 {} 条告警".format(rules.alert_count))  if __name__ == "__main__":    main()
目的:演示一台设备按物模型报文格式上报数据,并由规则引擎按温度阈值自动判定的完整逻辑。
  1. self.threshold = threshold保存规则引擎的温度告警阈值,35 度是「物业值班制度」的门限。
  2. def report(self)设备端生成上行报文,temperature 与 humidity 对应物模型中的属性定义。
  3. payload["report"]["temperature"]从设备上报的 JSON 结构中取出温度值,交给规则引擎判定。
  4. self.alert_count += 1统计命中的告警条数,相当于物业值班表上的「已派工单数」。
  5. main()循环模拟 5 次随机上报,观察同一台设备在不同温度下的规则判定结果。

常见误区

误区我以为「产品」就是那个能摸到的传感器硬件,创建设备就是把硬件寄到云平台去。结果在控制台里创建了一个产品之后,发现还要再「创建设备」,完全不知道两者有什么关系。

正解产品是「户型模板」,描述同一类硬件设备的共同功能;设备是「具体房间」,是模板下的一个真实实例。一台环境传感器对应一个产品「环境传感器」,但它下面可以有 1000 个设备「sensor-001」「sensor-002」。先有产品、后有设备,这条顺序不能乱。

为何常见:现实世界里「产品」通常指实物,而云平台里「产品」是一份抽象定义,这种词语迁移让初学者很容易把抽象层和实例层混为一谈。

误区DeviceSecret 就是登录密码,存到数据库里明文放着没关系,反正别人看不到我们的服务器。

正解DeviceSecret 是设备签名计算的密钥,泄露后攻击者可以伪造设备身份向平台上报虚假数据、下发恶意指令。正确做法是把密钥烧录在设备安全芯片或加密存储区,云端只保存 Hash 或使用证书认证,绝不能把明文密钥上传到日志或数据库。

为何常见:习惯 Web 开发的「密码+Session」思路后,容易忽视 IoT 设备私钥的物理不可复制性,低估密钥泄露对生产安全的危害。

误区平台上看到设备状态变成「离线」,立刻断定是硬件故障,急急忙忙派工程师去现场检修。

正解离线只代表设备与平台之间的 MQTT 连接断开了,可能是断电、断网、设备休眠、网络抖动,也可能是设备被禁用或密钥过期。排查要先看设备日志和网络链路,再结合设备上报的历史规律判断是偶发断连还是真故障。

为何常见:把「在线状态」等同于「设备健康状态」,忽略了 IoT 场景中离线本身就是一个需要多原因归因的普通状态,而不是异常终点。

误区规则引擎支持 SQL,那我把报表统计、多表关联、机器学习推理都写进规则引擎里,岂不是一步到位?

正解规则引擎的 SQL 是面向流式数据的轻量过滤与转发,擅长「单条消息的字段提取 + 简单条件判断」。涉及多设备跨时间窗口聚合、复杂状态机、模型推理等场景,应把数据转发到函数计算、Flink 或普通数据库后处理,而不是硬塞进规则。

为何常见:看到「SQL」三个字母就以为与关系型数据库等价,忽略了物联网规则引擎本质上是「实时流处理管道」而不是通用计算平台。

面试题

Q1. 阿里云 IoT 平台中,「产品」的核心含义是什么?

单选题 · easy

  • A.在售卖的传感器硬件型号
  • B.同一类设备的抽象定义模板← 正确答案
  • C.部署平台的服务器实例
  • D.设备上报数据的存储表

答案:B。产品是同一类设备的语义模板,描述共有功能和物模型;具体硬件是产品的实例,应创建设备来表示。B 准确地刻画了「模板」这一抽象角色,其余选项都混淆了硬件、服务与存储。

Q2. 设备接入阿里云 IoT 平台时,身份认证三元组是?

单选题 · easy

  • A.产品密钥产品名称设备名称
  • B.应用ID应用密钥用户Token
  • C.产品密钥设备名称设备密钥← 正确答案
  • D.IP地址端口号MAC地址

答案:C。认证三元组是 ProductKey(产品密钥)、DeviceName(设备名称)、DeviceSecret(设备密钥),它们共同完成设备身份核验。A 漏了设备密钥,B 是应用层鉴权概念,D 是网络层信息,均不构成设备级身份凭证。

Q3. 物模型中用于描述设备「主动上报的瞬时故障」的要素是?

单选题 · easy

  • A.属性 Property
  • B.事件 Event← 正确答案
  • C.服务 Service
  • D.影子 Shadow

答案:B。事件描述设备主动上报的瞬时消息,如过热告警、软件崩溃;属性描述稳态状态,服务描述可被调用的能力,影子是状态缓存。故 B 正确。

Q4. 设备首次连接平台完成认证后,其生命周期状态变化是?

单选题 · mid

  • A.离线变禁用
  • B.未激活变在线← 正确答案
  • C.在线变未激活
  • D.禁用变未激活

答案:B。设备刚创建时处于「未激活」,首次连接并认证成功后变为「在线」。A 的离线变禁用需要管理员手动操作,C 和 D 的状态回退方向均不符合平台规则。

Q5. 设备影子(Device Shadow)的核心作用是?

单选题 · mid

  • A.存储设备上报的完整历史数据
  • B.缓存设备最新状态并支持离线读写← 正确答案
  • C.执行设备固件的远程升级任务
  • D.加密设备与平台之间的网络流量

答案:B。设备影子为每台设备维护一份状态 JSON 快照,应用不依赖设备在线即可读取最近状态、写入期望状态。A 是时序数据库的职责,C 是 OTA 服务,D 是传输层安全机制,均非影子功能。

Q6. 规则引擎中,类 SQL 语句的 WHERE 子句承担什么职责?

单选题 · mid

  • A.指定数据转发到的目标组件
  • B.从消息中提取输出字段
  • C.按条件过滤满足要求的数据← 正确答案
  • D.将多个消息合并成一条结果

答案:C。WHERE 子句负责条件过滤,只有满足条件的数据才会进入后续转发流程。SELECT 负责字段提取,转发目标是规则动作配置,多消息合并通常由流式计算完成,故 C 正确。

Q7. 以下哪些属于物模型三要素的组成?

多选题 · mid

  • A.属性 Property← 正确答案
  • B.事件 Event← 正确答案
  • C.服务 Service← 正确答案
  • D.时序 TimeSeries

答案:ABC。物模型由属性、事件、服务组成,属性描述状态、事件描述突发、服务描述可调用能力。时序是数据存储组织方式,不属于物模型定义的三要素,故 D 错误。

Q8. 在智慧园区场景中,规则引擎适合承担哪些任务?

多选题 · hard

  • A.人员离场后自动关闭空调← 正确答案
  • B.设备温度超限触发告警工单← 正确答案
  • C.对一年电费做财务结算报表
  • D.烟感报警联动喷淋与通知← 正确答案

答案:ABD。规则引擎适合实时流式判定,如自动关空调、温度告警、烟感联动。年度财务结算是典型的离线批处理任务,应使用数据仓库或报表系统完成,故 C 不合适。

Q9. 某工厂 200 台设备每 5 秒上报一条消息,单实例平台吞吐为每秒 1000 条,至少需要几个实例?

单选题 · hard

  • A.1 个
  • B.2 个← 正确答案
  • C.3 个
  • D.4 个

答案:B。每秒消息总数 = 200 × (1/5) = 40 条,远小于单实例 1000 条吞吐,因此 1 个实例即可满足。此题考察容量估算公式 T = D×R/P,切忌把设备总数直接当成 TPS。

Q10. 关于设备生命周期状态,以下说法正确的是?

多选题 · hard

  • A.设备禁用后仍可被手动重新启用← 正确答案
  • B.设备离线表示设备一定发生了硬件故障
  • C.设备未激活状态发生在首次连接之前← 正确答案
  • D.设备删除后原有历史数据会永久保留

答案:AC。禁用是管理性操作,可随时重新启用;设备创建后未完成首次连接之前处于未激活状态。离线原因包括断网、休眠等,不能简单等同于硬件故障;删除设备通常连同其数据一起清理,故 B、D 错误。