如何使用SQL任务计算房间电量消耗的实践案例

简介: 文本介绍一例物联网平台数据服务SQL洞察用于智能家居的实践案例

1. 需求描述

在智能家居行业里产生了各种各样场景的数字解决方案,有解决方案商使用物联网平台的能力搭建各种数据分析应用,比如房间电量消耗统计,在公寓中部署了智能电表,每隔15min上传一次累计电量,需要根据设备上传值计算用电量。结合下表理解。

设备标示

上报属性值

上报时间

用电量

房间1电表

56.2

00:00

-

房间2电表

100.2

00:00

-

房间1电表

56.3

00:15

56.3-56.2 = 0.1度电

房间2电表

101

00:15

101-100.2 = 0.8度电

房间1电表

60

08:00

60-56.3 = 3.7度电

房间2电表

120

08:00

120-101 = 19度电


2. 实现方案

2.1 创建场景

创建电表模拟产品,电表产品只有一个只读属性Fwh,表示累计电量。参考图1。

创建两个电表设备:room1 和 room2。参考图2。

使用物联网在线调试功能定时上报属性, 为调试方便,可以将间隔设置为10s上报一次属性值。参考图3。

在数据开发页面刷新平台设备数据表,用于创建电表的分析模型。

image.png

图1 创建电表模拟产品

image.png

图2 创建模拟设备

image.png

图3 定时上报电量


2.2 计算公式

使用数据服务是具有计算能力的平台,可以在SQL工作台创建SQL脚本任务来完成计算,将计算结果用于业务系统。

设计计算公式如下:

image.png

可以使用窗口函数取出设备最后上传的2次属性值,计算差值即可。

-- 对原始数据加工,需要将j-1条数据拼接到j条数据上
create view ods_append_row as 
select 
  `$device_name`, 
    `$event_time`, 
    `$iot_id`,
    `Fwh`,
    -- over 窗口
    row_number() over(PARTITION BY `$iot_id` ORDER BY `$event_time` DESC ) as row_no,
    nth_value(`Fwh`, 1) over (PARTITION BY `$iot_id` ORDER BY `$event_time` DESC ) as latest_value,
    nth_value(`Fwh`, 2) over (PARTITION BY `$iot_id` ORDER BY `$event_time` DESC ) as previous_value
from your_table_name;
-- 对最近两次结果进行取差值
select 
    `$device_name`,
    `$event_time`,
    latest_value - previous_value as delta_Fwh
from ods_append_row where row_no <= 2 and previous_value is not null;

调试结果参考下图4。

image.png

图4 调试结果

3. 结果使用

数据API

在云云对接场景用于应用集成,则可以配置API及SDK调用获取结果数据。

数据导出
如何结果数据需要线下备份或者使用xls进一步分析,可以使用“导出”功能。

image.png

可以按照时间范围进行数据导出,目前导出格式只支持csv

image.png

详细操作步骤可以参考《IoT设备数据的存储、解析和价值挖掘实践》,这里不赘述。

相关产品文档
如您想要了解更细节的产品功能使用指南,可以访问物联网平台的官网产品文档。
分析洞察官网文档:https://help.aliyun.com/document_detail/325547.html

产品操作实践文档:https://developer.aliyun.com/article/1166086

相关文章
|
1月前
|
SQL 关系型数据库 MySQL
体验使用DAS实现数据库SQL优化,完成任务可得羊羔绒加厚坐垫!
本实验介绍如何通过数据库自治服务DAS对RDS MySQL高可用实例进行SQL优化,包含购买RDS实例并创建数据库、数据导入、生成并优化慢SQL、执行优化后的SQL语句等实验步骤。完成任务,即可领取羊羔绒加厚坐垫,限量500个,先到先得。
153 12
|
1月前
|
SQL 数据库
gbase 8a 数据库 SQL优化案例-关联顺序优化
gbase 8a 数据库 SQL优化案例-关联顺序优化
|
1月前
|
SQL 数据库 UED
SQL性能提升秘籍:5步优化法与10个实战案例
在数据库管理和应用开发中,SQL查询的性能优化至关重要。高效的SQL查询不仅可以提高应用的响应速度,还能降低服务器负载,提升用户体验。本文将分享SQL优化的五大步骤和十个实战案例,帮助构建高效、稳定的数据库应用。
68 3
|
2月前
|
SQL 运维
Doris同一个SQL任务,前一天执行成功,第二天执行失败
Doris 动态分区 插入数据 同样的代码隔天运行一个成功一个失败
|
1月前
|
SQL 缓存 监控
SQL性能提升指南:五大优化策略与十个实战案例
在数据库性能优化的世界里,SQL优化是提升查询效率的关键。一个高效的SQL查询可以显著减少数据库的负载,提高应用响应速度,甚至影响整个系统的稳定性和扩展性。本文将介绍SQL优化的五大步骤,并结合十个实战案例,为你提供一份详尽的性能提升指南。
52 0
|
2月前
|
SQL 关系型数据库 MySQL
Go语言项目高效对接SQL数据库:实践技巧与方法
在Go语言项目中,与SQL数据库进行对接是一项基础且重要的任务
96 11
|
2月前
|
SQL 存储 关系型数据库
添加数据到数据库的SQL语句详解与实践技巧
在数据库管理中,添加数据是一个基本操作,它涉及到向表中插入新的记录
|
2月前
|
SQL 存储 缓存
SQL计算班级语文平均分:详细步骤与技巧
在数据库管理和分析中,经常需要计算某个班级在特定科目上的平均分
|
2月前
|
SQL 关系型数据库 数据库
SQL数据库:核心原理与应用实践
随着信息技术的飞速发展,数据库管理系统已成为各类组织和企业中不可或缺的核心组件。在众多数据库管理系统中,SQL(结构化查询语言)数据库以其强大的数据管理能力和灵活性,广泛应用于各类业务场景。本文将深入探讨SQL数据库的基本原理、核心特性以及实际应用。一、SQL数据库概述SQL数据库是一种关系型数据库
116 5
|
2月前
|
SQL 开发框架 .NET
ASP连接SQL数据库:从基础到实践
随着互联网技术的快速发展,数据库与应用程序之间的连接成为了软件开发中的一项关键技术。ASP(ActiveServerPages)是一种在服务器端执行的脚本环境,它能够生成动态的网页内容。而SQL数据库则是一种关系型数据库管理系统,广泛应用于各类网站和应用程序的数据存储和管理。本文将详细介绍如何使用A
96 3