> 小 T 导读:随着智慧城市的减速建设,物联设施的治理问题凸显,数字政通研发“城市治理物联网平台”对物联网设施履行监督,通过鸟瞰整体数据来发现设施问题,便于及时派单解决。面对海量物联网数据的解决,TDengine 的高效存储给了数字政通相当大的助力。
企业简介
北京数字政通科技股份有限公司是北京市认证的高新技术企业和领有多项自主知识产权的软件企业,业余从事电子政务和 GIS 利用平台的开发和推广工作,为政府部门提供 GIS、MIS、OA 一体化的电子政务解决方案,并提供政府各个部门间基于数据共享的协同工作平台。
随着 5G 基站等通信工程的放慢建设,城市治理、城市平安治理成为热门话题,物联设施在咱们的社会中表演的角色也变得越来越重要,智慧燃气、智能电表、智能井盖等我的项目在泛滥城市开始布局。我的项目的疾速暴发也让“如何治理物联设施”成为一个待解的难题。
作为一个设施数据中台,由数字政通研发的“城市治理物联网平台”致力于为智慧园林、智慧井盖、智慧排水、智慧市政等城市治理我的项目的各子系统,提供数据荡涤、数据接入、数据计算、数据存储的能力。通过接入各个市区的智能设施,该平台可能提供各类设施的实时监测数据及报警数据,进一步满足各类设施的数据分析、关联剖析、历史剖析、比照剖析等需要。简略来讲,平台性能的实现就是通过鸟瞰整体数据来发现设施问题,便于及时派单解决,助力智慧城市治理。
目前,咱们曾经在全国累计接入 60 余个市区我的项目,累计单干 100 余家设施厂商,累计接入 69 种设施类型、9 万余设施量,全国范畴下日累计 5000 万数据量,全国范畴下无效报警累计 20 万 +,解决 10 万 + 报警案件。
面对海量物联网数据的解决,时序数据库 TDengine 的高效存储给了咱们相当大的助力。
技术架构剖析
设施数据的解决门路如下:通过各个协定(MQ、MQTT、AMQP、HTTP、TCP、HJT212、ModBus、NB 等)接入物联设施到 Kafka 中进行生产,随后进行设施数据的噪点荡涤,将有用的数据及时更新到 MySQL 以及 TDengine 中,同时依据配置的报警策略生成报警数据。
平台的报警是通过应用层来管制的,依照优先级排位如下:1- 强制报警、2- 具体监测项报警、3- 全局报警、4- 根底报警。
落地教训分享
因为咱们的数据库服务泛滥,而且物联网平台次要工作是对接物联网设施,所以不同的数据库服务对硬件的需要配置要以我的项目理论接入的设施数量为衡量标准。本文案例中的场景有 57,634 个设施,对应的服务器配置为:CPU 16 核、内存 32G、硬盘 1T、带宽 120MB/s。
咱们以 TDengine 2.0.22.3 版本单正本模式落地了一个三节点的集群,备份目前依附其余形式实现。
上文中提到的 57,634 个设施属于同一类型,所以归属于同一个超级表,表构造和相干信息如下:
通过 select count(*) from iot_equip_data 能够看到,咱们以后曾经保留了 9 亿条数据。
压缩与查问成果
通过查看 3 个节点的 Vnode 目录总大小,能够得悉目前数据占用总量为 8.7G。而从上述表构造咱们也能看出理论入库数据总量大略为 203GB,通过压缩后为 8.7G,压缩率达到了 4% 左右,大幅节约了存储老本。
咱们罕用的业务 SQL 大略有如下类型:
-
- 对 9 亿数据量的超级表应用降采样查问,展现设施指标日月年线,耗时仅仅 0.22 秒。
Select first(value) as value from egovaiot.iot_equip_data where field_id=’346fb64a-3e0f-4632-bd83-f4830ad91611′ and time>=1645963
586260 and time<=1648555586260 interval(1000a) order by time;
- 2. 对 9 亿数据量的超级表应用降采样查问,并计算每个工夫窗口的平均值、最大值、最小值,后果如下所示。
select avg(value) as ‘avgValue’,max(value) as ‘maxValue’,min(value) as ‘minValue’ from egovaiot.iot_equip_data where field_id=’346fb64a-3e0f-4
bd83-f4830ad91611′ and time>=1646137565000 and time<=1648556765000 interval(1000a) order by time;
- 3. 对 9 亿数据量的超级表应用降采样查问,并计算每个工夫窗口的最大值最小值后,求出差值。
select spread(value) as value from egovaiot.iot_equip_data where equip_type_id=’1′ and time>=1633004978592 and time<=1648556978592 and field_c
ode like ‘WATER_LEVEL’ interval(1d) group by field_id order by time;
写在最初
物联设施在咱们的生存中表演的角色越来越重要,是实现智慧生存、智慧城市的重要媒介。携手 TDengine,数字政通始终在致力于做好物联设施的智能化治理,以此助力智慧生存、智慧城市的倒退。将来,咱们还将会与 TDengine 一起摸索更多维度的生态单干,为建设智慧城市、保障社会民生提供本身力不从心的帮忙。
作者简介
张东旭,数字政通 Java 研发,城市治理物联网产品负责人。专一于城市物联设施数据采集和替换、数据计算能力。趣味是看书和爬山。
想理解更多 TDengine 的具体细节,欢送大家在 GitHub 上查看相干源代码。