上云无忧 > 文档中心 > 百度智能云流式计算 BSC 实践 - 物设备报警情况实时统计
百度流式计算 BSC
百度智能云流式计算 BSC 实践 - 物设备报警情况实时统计

文档简介:
概览: 统计每个设备每分钟报警次数。 需求场景: 用户拥有1千多台设备,分布在不同城市的多个厂区,每个设备上的传感器大概每5秒采集并上传数据到IoT Hub。 【百度智能云】流式计算BSC
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

概览

统计每个设备每分钟报警次数。

需求场景

用户拥有1千多台设备,分布在不同城市的多个厂区,每个设备上的传感器大概每5秒采集并上传数据到IoT Hub。

sensorId time status
传感器ID 发送时间 是否报警,status值为1代表报警

传感器分布在多个设备、多个厂区,用户在RDS还记录如下传感器、设备、厂区维表信息,如下:

sensorId sensorType deviceId useTime
传感器ID 传感器类型 设备ID 使用寿命

方案概述

统计每个设备每分钟发生报警的次数,并将统计结果通过输出到下游的RDS,最终展示在可视化报表中。

配置步骤

定义MQTT source表

CREATE TABLE source_mqtt_table(
sensorId STRING,
time STRING,
status INTEGER
) WITH(
type = 'MQTT',
brokerUrl = 'tcp://duig1nr.mqtt.iot.bj.baidubce.com:1883', --必填
topic = 'sensor', --必填
username = 'iotdemo', --必填
password = 'iotdemo', --必填
encode = 'JSON',
connectionTimeout = '30', --非必填,访问超时设置,单位:s
keepAliveInterval = '60', --非必填,规定时间段内不活动时连接会被断开,单位:s
maxBatchMessageNum = 'Int.Max', --非必填,每个batch最大数据条数
maxBatchMessageSize = 'Int.Max' --非必填,每个batch最大消息字节数
);

定义RDS source表

CREATE TABLE source_rds_table(
sensorId STRING,
sensorType STRING,
deviceId STRING,
useTime INTEGER
) WITH(
type = 'RDS',
user = 'rdsdemo', --必填,数据库用户名
password = 'rdsdemo', --必填,数据库访问密码
url = 'jdbc:mysql://mysql55.rdsmwi1zrjn5ww8.rds.bd.baidubce.com:3306/bsc_rds_test?u
seUnicode=true&characterEncoding=UTF8', --必填,jdbc访问RDS的url
dbTable = 'test' --必填,数据表名称
);

定义RDS sink表

CREATE TABLE sink_rds_table(
deviceId STRING,
time TIMESTAMP,
nums INTEGER
) WITH(
type = 'RDS',
user = 'iotdemo', --必填,数据库用户名
password = 'iotdemo11', --必填,数据库访问密码
url = 'jdbc:mysql://mysql55.rdsmwi1zrjn5ww8.rds.bd.baidubce.com:3306/bsc_rds?useUni
code=true&characterEncoding=UTF8', --必填,jdbc访问RDS的url
dbTable = 'iotdemo' --必填,数据表名称
);

编写数据统计DML语句

统计这一分钟内每个设备的报警次数。由于使用的是滚动窗口,也就意味着数据将在每分钟结束时候产出一份并写入到RDS。

INSERT INTO
sink_rds_table outputmode append
SELECT
source_rds_table.deviceId,
CAST(FROM_UNIXTIME(CAST(source_mqtt_table.time AS LONG)) AS TIMESTAMP) AS time,
count(*) AS nums
FROM
source_mqtt_table INNER JOIN source_rds_table ON source_mqtt_table.sensorId = source_rds_table.sensorId
WHERE
source_mqtt_table.status = 1
GROUP BY
window(time, "1 minute"),
deviceId

相关产品

物联网核心套件 IoT Core(MQTT)、云数据库 RDS

相似文档
  • 概览: 用户对 CDN 日志进行提取中转,属于 ETL 场景, 用于数据的实时清洗、归并和结构化。 需求场景: 所有的 CDN 日志通过 flume 直接推送到 百度消息服务(BKAFKA)中作为流式计算 source , 在我们 BSC 中创建 SPARK_STREAM/SQL 类型的作业用于 CDN 日志的提取中转 【百度智能云】流式计算BSC
  • 概览: 监控、预警工厂设备的用电情况。 需求场景: 用户拥有大量的大功率设备,如果没有在下班之前及时关闭,会造成用电浪费,甚至引起重大安全事故。每个设备上的传感器定时(5~30秒不等)将设备当前的情况推送到 物联网核心套件(IoT Core)或 物接入(IoT Hub) 的 MQTT 当中作为 source 【百度智能云】流式计算BSC
  • 概览: 用户拥有多台服务器,托管了一些 API 调用服务,现在想统计 API 的调用情况,形成图表。 需求场景: 所有机器的 API 调用日志通过 自定义日志采集程序 进行日志采集后推送到 百度消息服务(BKAFKA)中作为流式计算 source , 在我们 BSC 中创建 FLINK_STREAM/SQL 类型的作业用于 API 日志的聚合统计 【百度智能云】流式计算BSC
  • 概览: 统计每个设备每分钟报警次数。 需求场景: 用户拥有1千多台设备,分布在不同城市的多个厂区,每个设备上的传感器大概每5秒采集并上传数据到 物联网核心套件(IoT Core)或 物接入(IoT Hub) 的 MQTT 当中作为第一个 source 【百度智能云】流式计算BSC
  • 流计算作业中的代码包括几部分? 流计算作业中的代码包括DDL语句(用于创建输入端、输出端)、DML语句(业务逻辑的执行语句)。目前,同一个作业内支持多个输入端、一个输出端。 【百度智能云】流式计算BSC
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部