ThingsBoard资产设备总数/离线数/在线数统计
注意:本文只在sql层面做介绍,接口没有!目标4在语雀知识库.此文没有!
注意:本文只在sql层面做介绍,接口没有!目标4在语雀知识库.此文没有!
注意:本文只在sql层面做介绍,接口没有!目标4在语雀知识库.此文没有!
注意:本文只在sql层面做介绍,接口没有!目标4在语雀知识库.此文没有!
github ThingsBoard的问题反馈中提到类似需求
准备
创建五个设备ABCDE,三个资产ABC,关联关系如下:关联类型都是Contains,关联方向都是从。
通过几个目标来一步步实现
- 查询资产A/B/C下面的所有设备,包括资产下的资产中的设备,且设备不能重复统计。
- 查询资产A/B/C下面的所有设备总数
- 查询资产A/B/C下面的所有设备离线总数和在线总数
- 查询租户/客户下的设备离线总数和在线总数(不关联资产,同于首页展示,谁登陆展示谁的所有设备)
说明:
目标2.3:可用于仪表板显示某些资产的设备总数,在线数,离线数。
也可以结合添加首页设置-展示仪表功能和添加首页设置-指定客户首页仪表功能为租户和客户定制首页仪表板。
目标4:用于首页展示当前登录用户的所有设备在线数,离线数。
本文描述的在线离线是基于设备服务端属性的active字段,设备disconnect不会立刻触发。可参考active服务端属性分析。
文章在sql层面进行分析,没有发布接口相关文字。
relation相关介绍参考ThingsBoard中的关系Relation
目标1
查询资产A/B/C下面的所有设备,但设备不能重复。例如资产A包含的设备应该是五个,资产B五个设备,资产C三个设备。
设备及资产的id如下
先查询资产C id=ff8a1860-b2e4-11eb-8988-8dc0a81563ee
WITH RECURSIVE views AS (SELECT from_type, from_id, to_type, to_idFROM relationWHERE from_id = 'ff8a1860-b2e4-11eb-8988-8dc0a81563ee'UNIONSELECT r.from_type, r.from_id, r.to_type, r.to_idFROM relation rINNER JOIN views v ON v.to_id = r.from_id
)
SELECT distinct to_id FROM views v where v.to_type = 'DEVICE';
结果
查询资产B id=f584c9a0-b2e4-11eb-8988-8dc0a81563ee
结果
查询资产A id=ef2418e0-b2e4-11eb-8988-8dc0a81563ee
结果
都符合预期。现在是查询资产下的所有设备,那么如何统计资产下面设备的总数,离线数,在线数呢?
目标2
统计资产A/B/C下面的所有设备总数,要求和前面一样。
WITH RECURSIVE views AS (SELECT from_type, from_id, to_type, to_idFROM relationWHERE from_id = 'ef2418e0-b2e4-11eb-8988-8dc0a81563ee'UNIONSELECT r.from_type, r.from_id, r.to_type, r.to_idFROM relation rINNER JOIN views v ON v.to_id = r.from_id
)
select count(devices.to_id) from (SELECT distinct to_id FROM views v where v.to_type = 'DEVICE') devices;
测试结果就不贴出来了
目标3
查询资产A/B/C下面的所有设备离线总数和在线总数
使用MQTTBox让设备A/B/D在线
那么实际结果应该是资产A在线3离线2,资产B在线3离线2,资产C在线1离线2.结合active字段来实现。
先看结果:
资产A资产B资产C
SQL如下:
WITH RECURSIVE views AS (SELECT from_type, from_id, to_type, to_idFROM relationWHERE from_id = 'ff8a1860-b2e4-11eb-8988-8dc0a81563ee'UNIONSELECT r.from_type, r.from_id, r.to_type, r.to_idFROM relation rINNER JOIN views v ON v.to_id = r.from_id
)
select count(devices.to_id) as count, (case kv.bool_v when true then 'online' else 'offline' end) as status
from attribute_kv kv
right join (SELECT distinct to_id FROM views v where v.to_type = 'DEVICE') devices
on devices.to_id = kv.entity_id and kv.attribute_key='active'
group by kv.bool_v;
目标4
查询租户/客户下的设备离线总数和在线总数
后续内容到语雀知识库查看
ThingsBoard资产设备总数/离线数/在线数统计相关推荐
- 离线实时一体化数仓与湖仓一体—云原生大数据平台的持续演进
简介:阿里云智能研究员 林伟 :阿里巴巴从湖到仓的演进给我们带来了湖仓一体的思考,使得湖的灵活性.数据种类丰富与仓的可成长性和企业级管理得到有机融合,这是阿里巴巴最佳实践的宝贵资产,是大数据的新一代架 ...
- 关于并发数与在线数的概念
关于并发数与在线数的概念: 3月11日的测试交流会上大家有问到并发数,后来互相做了交流,我也说了些,但还是不清晰.下面稍微详细点描述下,仅供参考. 并发是操作系统的概念,是指在一定时间内物理机器上有两 ...
- oracle分页查询加总数,oracle count 百万级 分页查询记要总数、总条数优化
oracle count 百万级 分页查询记录总数.总条数优化 oracle count 百万级 查询记录总数.总条数优化 最近做一个项目时,做分页时,发现分页查询速度很慢,分页我做的是两次查询,一次 ...
- java netty post_API调用Netty长链接执行发送消息(在线数、用户列表)
前言 在原项目中,对于WebSocket的长连接,聊天系统并没有开放接口出来给第三方的系统调用,只有我们系统内部的人员才知道,确切的说系统内部也没有实际的查询接口,那么我们今天就来实现这个功能. 在N ...
- java统计在线人数_java统计当前在线数 (转)
java统计当前在线数 (转)[@more@] package com.hnedu.stat; /** * 计算在线人数,说明: * * 在访问页面放入: * com.hnedu.stat.Onlin ...
- 数一数Google的软件和服务
数一数Google的软件和服务 Peter Lee 不知不觉中,Google走过了他的第十个年头,印象中他还很年轻似的:不知不觉中,Google的软件和服务已经遍地开花了,印象中Google总是搜索的 ...
- java 鸡和兔一共35只_鸡和兔一共有35只,数一数腿有94条,鸡、兔各有多少只?...
鸡兔同笼公式: 公式1: (兔的脚数×总只数-总脚数)÷(兔的脚数-鸡的脚数)=鸡的只数 总只数-鸡的只数=兔的只数 公式2: (总脚数-鸡的脚数×总只数)÷(兔的脚数-鸡的脚数)=兔的只数 总只数- ...
- Catalan数——卡特兰数
今天阿里淘宝笔试中碰到两道组合数学题,感觉非常亲切,但是笔试中失踪推导不出来 后来查了下,原来是Catalan数.悲剧啊,现在整理一下 Catalan数--卡特兰数] 一.Catalan数的定义令h( ...
- 【Kafka】Kafka-分区数-备份数-如何设置-怎么确定-怎么修改
Kafka-分区数-备份数-如何设置-怎么确定-怎么修改 kafka partition 数量 更新_百度搜索kafka重新分配partition - - CSDN博客如何为Kafka集群选择合适的P ...
最新文章
- linux 进程 崩溃被杀 原因查找
- JVM中GC的停顿现象
- javaweb----DAO模型设计
- Android开发之EditText无法获取光标的问题
- C++ 输出调试信息 类似MFC的TRACE等宏
- python3 线程隔离_Python的线程隔离实现方法
- php mysql读取数据查询_PHP MySQL 读取数据
- 工作随想---关于业务流程,落实责任制
- js常用字符串处理方法
- 【Visual Studio Code 】使用Visual Studio Code + Node.js搭建TypeScript开发环境
- Rust: Rust Language Cheat Sheet,强烈推荐!
- STM32F205 PWM配置
- 城管系统服务器,数字城管系统建设方案详细.doc
- AI+Science系列(一) :飞桨加速CFD(计算流体力学)原理与实践
- 布朗运动、伊藤引理、BS公式
- win服务器系统下的软路由,如何用Windows 2000 Server充当软路由
- qcom 音频相关的dsp driver笔记(基于msm8996平台)
- PS 抠图几种典型方法
- 微信小程序用户信息解
- 台式计算机cpu允许温度,台式cpu温度多少正常呢?老司机科普一下CPU常见问题