数据微服务

物联网数据的接入、存储与查询服务

概述

数据微服务(Data Service)是物联网平台中负责设备上报数据全流程处理的独立服务,涵盖实时接入、时序存储、多维查询、聚合统计、数据导出等能力。与设备微服务(管理设备生命周期)不同,数据微服务聚焦于"数据"本身:如何高效接收、存储、检索海量时序数据。物联网传感器数据具有高写入、强时序、多维度(设备×指标×时间)的特点,传统关系型数据库难以胜任,数据微服务通常采用InfluxDB、TDengine、TimescaleDB等时序数据库,或结合Kafka+ClickHouse等组合方案,支撑监控大屏、报表分析、AI训练、实时告警等场景。

数据微服务在架构上通常作为消息队列的消费者,从Kafka/RocketMQ拉取设备上报的原始消息,解析后按物模型、设备ID、时间戳写入时序库。同时对外提供RESTful或GraphQL查询API,供前端应用、规则引擎、报表系统调用。数据流为"设备→接入网关→消息队列→数据微服务→时序库",查询流为"应用→数据微服务API→时序库"。

核心能力

数据接入

从消息队列消费设备上报消息,解析JSON/二进制格式,校验设备ID、时间戳、指标合法性。支持批量写入、背压控制,避免消息队列积压。可接入多Topic(如按产品、按设备类型分Topic),实现数据分流与隔离。与数据清洗模块集成,在入库前完成异常值过滤、缺失补全。

时序存储

按设备、指标、时间高效存储。时序库采用列式存储、高压缩比、时间分区,支持百万级TPS写入与毫秒级查询。数据保留策略可配置:热数据保留7天、温数据保留30天、冷数据归档至对象存储。支持多租户隔离,按租户ID或产品ID分区。

查询API

时间范围查询、多指标聚合、降采样(如将1分钟粒度数据聚合为1小时、1天)。支持按设备、设备组、产品、区域等维度过滤。API设计需考虑大数据量场景下的分页、流式返回,避免一次性拉取过多数据导致OOM。可提供SQL或类SQL接口,降低使用门槛。

数据导出

支持CSV、Excel、JSON格式导出,供报表、审计、离线分析。大批量导出时采用异步任务+文件下载链接,避免长时间阻塞。与数据权限、脱敏策略结合,确保导出数据符合合规要求。

物联网典型应用

能源监控:电表、水表、燃气表用量数据,支持按户、按楼、按区域聚合,用于能耗分析、峰谷统计、异常用电检测。

环境监测:温湿度、PM2.5、空气质量等传感器数据,支撑智慧园区、智慧农业、智能楼宇的环境监控与告警。

设备运行数据:工业设备的振动、温度、电流等运行参数,用于预测性维护、故障诊断、能效分析。

产量统计:生产线计数、产量、良品率等,支持生产报表、产能分析、OEE计算。

与规则引擎、流计算的协同

数据微服务负责"存"与"查",规则引擎负责"算"与"告警"。设备数据写入时序库后,规则引擎可订阅或定时查询,进行阈值判断、复杂事件处理。流计算(如Flink)可直接消费消息队列,进行实时聚合、窗口计算,结果写入时序库或推送告警。数据微服务与规则引擎、流计算形成"存储—计算—告警"的完整数据链路。


相关链接