上云无忧 > 文档中心 > 百度智能云流式计算 BSC 实践 - 物联网设备实时监控预警
百度流式计算 BSC
百度智能云流式计算 BSC 实践 - 物联网设备实时监控预警

文档简介:
概览: 监控、预警工厂设备的用电情况。 需求场景: 用户拥有大量的大功率设备,如果没有在下班之前及时关闭,会造成用电浪费,甚至引起重大安全事故。每个设备上的传感器定时(5~30秒不等)将设备当前的情况推送到 物联网核心套件(IoT Core)或 物接入(IoT Hub) 的 MQTT 当中作为 source 【百度智能云】流式计算BSC
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

概览

监控、预警工厂设备的用电情况。

需求场景

用户拥有大量的大功率设备,如果没有在下班之前及时关闭,会造成用电浪费,甚至引起重大安全事故。每个设备上的传感器定时(5~30秒不等)将设备当前的情况推送到 物联网核心套件(IoT Core)或 物接入(IoT Hub) 的 MQTT 当中作为 source,在我们 BSC 中创建 FLINK_STREAM/SQL 类型的作业用于设备关键信息的提取,并实时将处理结果推送到 物联网核心套件(IoT Core)或 物接入(IoT Hub) 的 MQTT 当中,方便下游 规则引擎(Rule Engine) 和 时序时空数据库(TSDB)消费。用户可以基于 智能小程序 开发小程序或第三方平台调用 TSDB 的数据 API,并完成数据展示、历史数据分析、故障预警等功能。可以有效发现安全隐患、及时更换老旧设备、发现异常用电情况,为工厂运转节省成本、提升安全系数。

方案概述

用户设备 → IoT Hub → BSC → IoT Hub → Rule Engine → TSDB → 小程序

配置步骤

一个完整的 Flink SQL 作业由 source 表、sink 表和 DML 语句构成。

定义 MQTT Source 表

SET job.stream.timeType = 'PROCESSTIME'; -- 设置 PROCTIME CREATE TABLE source_mqtt_table
 ( `modbus` ROW( `request` ROW( `startAddr` BIGINT, `length` BIGINT ), `response`
 STRING, `parsedResponse` ARRAY < ROW( `desc` STRING, `type` STRING, `unit`
 STRING, `value` STRING, `errno` BIGINT ) > ) `metrics` ROW( `Settingtime_m` 
BIGINT, `Building` BIGINT, `Floor` BIGINT, `Company` BIGINT, `Equipment` BIGINT, 
`C_Temperature` DOUBLE, `S_Temperature` BIGINT, `Cabinet` BIGINT, `Runningtime_m` BIGINT, 
`Runningtime_h` BIGINT, `Settingtime_h` BIGINT ) ) WITH ( 'connector.type' = 'MQTT', 
'format.encode' = 'JSON', 'connector.url' = 'tcp://xxxxxxxxxx.mqtt.iot.gz.baidubce.com:1883', 
'connector.topic' = 'Device1', 'connector.username' = 'xxxxxxxxxx/yyyyyy', 'connector.password'
 = 'xxxxxxxx', 'connector.semantic' = 'at_least_once' );

定义 MQTT Sink 表

CREATE TABLE sink_mqtt_table ( `field` STRING, `timestamp` BIGINT, `value` DOUBLE, `Company` 
BIGINT, `Building` BIGINT, `Floor` BIGINT, `Cabinet` BIGINT, `Equipment` BIGINT ) WITH 
( 'connector.type' = 'MQTT', 'format.encode' = 'JSON', 'connector.url' = 
'tcp://xxxxxxx.mqtt.iot.gz.baidubce.com:1883', 'connector.topic' = 'Device1_Unnested', 
'connector.username' = 'xxxxxx/yyyyy', 'connector.password' = 'xxxxxxxx' );

编写数据提取DML语句

解析 source 表中的复杂嵌套 json, 提取出设备的关键信息,如位置编号、运行状态,并使用 PROCTIME 来为输出结果添加一条记录

INSERT INTO sink_mqtt_table SELECT `desc` AS field, TO_BIGINT(CURRENT_TIMESTAMP) AS `timestamp`,
 CAST(`value` AS DOUBLE) AS `value`, Company, Building, `Floor`, Cabinet, Equipment FROM source_mqtt_table,
 UNNEST(sink_mqtt_table.parsedResponse) AS A(`desc`, `type`, `unit`, `value`, `errno`) WHERE `desc` NOT IN 
( 'Company', 'Building', 'Floor', 'Cabinet', 'Equipment' )

相关产品

物联网核心套件 IoT Core、时序时空数据库TSDB

相似文档
  • 概览: 用户拥有多台服务器,托管了一些 API 调用服务,现在想统计 API 的调用情况,形成图表。 需求场景: 所有机器的 API 调用日志通过 自定义日志采集程序 进行日志采集后推送到 百度消息服务(BKAFKA)中作为流式计算 source , 在我们 BSC 中创建 FLINK_STREAM/SQL 类型的作业用于 API 日志的聚合统计 【百度智能云】流式计算BSC
  • 概览: 统计每个设备每分钟报警次数。 需求场景: 用户拥有1千多台设备,分布在不同城市的多个厂区,每个设备上的传感器大概每5秒采集并上传数据到 物联网核心套件(IoT Core)或 物接入(IoT Hub) 的 MQTT 当中作为第一个 source 【百度智能云】流式计算BSC
  • 流计算作业中的代码包括几部分? 流计算作业中的代码包括DDL语句(用于创建输入端、输出端)、DML语句(业务逻辑的执行语句)。目前,同一个作业内支持多个输入端、一个输出端。 【百度智能云】流式计算BSC
  • Sugar BI是百度智能云推出的敏捷 BI 和数据可视化平台,通过拖拽图表组件可实现 5 分钟搭建数据可视化页面,组件丰富,开箱即用,无需SQL和任何编码。通过可视化图表及强大的交互分析能力,企业可使用 Sugar BI有效助力自己的业务决策。
  • V4.6.1 / 2022-10-10: 新功能:历史版本、回收站。 新功能:私有部署中支持「数据服务」。 API 方式绑定图表数据时,支持API 认证。 数据模型的自定义 SQL 视图中支持嵌入 URL 参数等。 数据模型中整数类型的字段支持转字符串。 报表中也支持隐藏图表的 loading 效果。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部