环保产品 | 为排污企业量身打造的数字化产品正式落地—a环保“嫁接”TDengine ,7天上线INECO平台
昆岳互联
日期:2020-06-09
开发背景
一直以来,环保产业的重点在末端治理,当前环保产业正从制造业向服务业发展,从单一治理向综合治理发展,从末端管控向源头和全生命周期管控发展。随着人工智能、云计算、5G、大数据中心、工业互联网时代的到来,企业应用工业软件、工业APP等工具提高企业管理效率已成为大势所趋,环保产业向现代服务业转型是产业发展趋势,环保产业数字化升级也势在必行。
昆岳互联环境技术(江苏)有限公司(简称:昆岳互联)融合时代发展,通过建设环保产业互联网平台(INECO平台)对系统数据分析与建模,让客户从过去的经验管理转型为数据驱动下的创新管理,实现成本、安全、设备、排放和团队等多方面的精细化管理。同时,增加移动端APP服务,让客户管理上省心、运营上省钱、协调上省事。a环保软件正是昆岳人数字化思维的落地。
业务场景
a环保基于昆岳互联和阿里云共建的国内 个环保产业互联网平台(INECO平台),对环境基础设施海量数据实时处理与分析,创新了掌上环境治理新模式,为排污企业、工业园区和传统环保企业提供数字化升级服务。结合TDengine成熟的时序云服务,迅速将a环保打造成一款高效便捷的环保管理软件,为我们排污企业的中高层管理者提供高效便捷的集中式、透明化、全方位的手机端精准环保运营管理与绩效管理,大幅提高了企业环保运营管理效率,从而降低了环保运营管理成本。
软件架构
a环保的整个数据采集服务基于MQTT协议开发,通过阿里Nacos集群搭建配置中心和服务发现,结合Feign模式调用其他微服务模块的业务数据,对上报的数据进行业务解析,并将解析的结果存入对应监控指标对应的点位表中。采集服务用Mybatis-Plus的多数据源配置,使用目前性能 *佳的HikariCP数据连接池,分别配置MySQL、涛思等多个数据库,实现了多数据源的无缝切换。整个采集服务基于容器化部署,采用Kubernates进行容器编排,通过分布式锁方式避免了数据重复入库,提高了数据的解析速度,实现MQTT的分布式分组采集。
数据库建立逻辑
1、选型
我们选用了TDengine云服务作为各项监控指标的存储数据库,并且只用一周时间上线系统。选择TDengine,首先是因为其性价比高,开源,支持云端和本地部署;其次,TDengine一张设备一张表的建表思路和我们的程序设计方式非常契合;另外,TDengine还有一个超级表的设计,可以给不同的设备打上标签,比如客户ID、设备ID、指标名称等等,管理多条时间线变得非常方便;整个数据库是SQL交互方式,支持标准JDBC接口,可以无缝对接MyBastis ORM框架,开发起来非常方便。
2、建表思路
结合TDengine超级表的模式进行数据建表、子表用point_#{采集点 编码} ,标签对应为客户 标识、设备 标识、采集指标编号、指标名称、计量单位名称等,支持增加、删除、修改、查询等功能,整理设计灵活,体验感强。
(1)建立超级表
create table point(ts timestamp,valfloat,flag bool) tags(cusid bigint, devid bigint, code bigint, pointnamebinary(20),unitname binary(20));
(2)根据超级表建立子表
create table point_0301 using pointtags(10000000, 301, 107, 'DUST', 'mg/Nm3');
create table point_0302 using pointtags(10000000, 302, 107, 'DUST', 'mg/Nm3');
...
这样的设计很自然的对采集数据进行了分表。而在查询时,可以从超级表进行查询,无需针对每张子表进行。
3、方便的流式计算与时间维度聚合
TDengine支持对原始的秒级采集数据进行年、月、日、分钟等的聚合计算、监控、查询和绘图等功能。例如,在污染排放的监控中,业务要求对NOx的浓度实时监控,并且让用户选择时间范围显示浓度变化曲线以及聚合的窗口长度(5分钟、15分钟、30分钟、日、月、年),时序数据库可以迅速反应形成报表。聚合结果可以自动持久化存储,支持历史数据即时回看。
select val from point_0301 where ts<'2020-05-30 00:00:00.000' and ts>'2020-05-29 00:00:00.000' interval(5m); //每5分钟聚合
select val from point_0301 where ts<'2020-05-30 00:00:00.000' and ts>'2020-05-29 00:00:00.000' interval(15m); //每15分钟聚合
select val from point_0301 where ts<'2020-05-30 00:00:00.000' and ts>'2020-05-29 00:00:00.000' interval(30m); //每30分钟聚合
日流量
a环保“嫁接”TDengine实现了秒级采集工业大气环保各项监控指标的数据,落地了“a环保”软件对数据真实性、即时性和科学性的三个高质量属性,为客户创造节能、安全、高效、可靠和便捷的环保管理服务价值。