关于postgresql:苏州大学从-PostgreSQL-到-TDengine

6次阅读

共计 1984 个字符,预计需要花费 5 分钟才能阅读完成。

小 T 导读:除了要对几千台摄像头进行数据采集加在线检测,苏州大学还有 1500 多台交换机和 4000 多台服务器,在数据库的抉择上,它须要在扛住如此大量设施 24 * 7 高频长期写入的同时,还要确保相当杰出的查问效率。从 PostgreSQL 到 TDengine,本文分享了江苏纵目在面对业务难点时,在数据库的抉择、利用和功效方面的教训。

企业简介

苏州大学(Soochow University),简称“苏大”,坐落于漂亮的江苏省苏州市,是教育部与江苏省人民政府共建高校,国家“双一流”建设高校,国家“211 工程”、“2011 打算”首批入选高校,前身是 1900 年开办的东吴大学,是中国最早以古代大学学科体系举办的大学。

我的项目介绍

作为一所重点高校,苏州大学具备规模较大的 IT 基础设施及利用零碎,资源压力大,网络故障波及用户数量多。为保障全校零碎以及网络、服务器硬件、操作系统的可用性、可靠性和安全性,学校必须建设标准且全面的运维管理体系。 在此背景下,咱们江苏纵目与苏州大学与发展技术单干,打造了苏州大学智慧运维治理平台

该业务场景面临着以下难点:

  • 资源设施类型、品牌、版本繁冗,各厂商协定区别大,人员教训无奈全笼罩,原厂难以及时响应。
  • 业务利用、服务与资源的关联关系简单,问题定位工夫远超过解决问题的工夫。
  • 不足事先运维的无效工具,零碎网络异样会波及各部门 / 院系师生的教学工作的发展,被动解决负担重,导致业务部门投诉。

海量设施数据的存储和查问问题首当其冲

对于这样一个规模较大的 IT 基础设施及利用零碎来说,解决问题自身并不难,难的是如何高效地解决小问题、迷信地预防大问题、迅速地定位问题的根本原因。就从监控数据层面来说,如果想对设施进行 24 * 7 不间断监控的话,那么海量的设施数据存储和查问对于 Database 的压力将会十分大。

苏州大学有几千台摄像头,光摄像头的数据采集加在线检测的数据量就曾经很大了,更别提还有 1500 多台交换机、4000 多台服务器,在数据库的抉择上,它须要在扛住如此大量设施 24 * 7 高频长期写入的同时,还要确保相当杰出的查问效率。

此前,咱们应用的是 PostgreSQL 数据库单机版,因为是关系型数据库(Relational Database),在该时序数据的场景下数达到亿级数据量时,查问剖析提早会达到大几秒,压缩率上也不太现实(后文会有理论比照),无奈撑起一个全域一体化运维监控平台的继续运行。

数据的存储与读写是所有业务的根基,因而数据库选型这个环节尤为重要。早在此前,咱们就针对此类业务对时序数据库(Time Series Database)做了充沛的调研与实测。其中 TDengine 作为一个专为物联网、车联网、工业互联网、运维监测等优化而设计的时序数据库,非常符合该场景。最终咱们抉择将 TDengine 集成到咱们自研且专用于监控时序数据的 Argus 平台中 https://zmops.com。

理论利用与成果剖析

其实,从 2020 年开始,咱们就开始关注和接触 TDengine 了,很开心最终修成了正果,在应用 TDengine 对 Argus 平台进行全面降级后,不论是查问效率、剖析性能还是磁盘占用,都失去了质的晋升。

在将 TDengine 作为平台时序数据永恒存储之后,各项性能都合乎甚至超出了咱们的预期:

脚到实际上,咱们是在一台 4C 16G 机械硬盘规格的服务器上落地了该我的项目,应用单列模型建表,针对每个数据类型的指标都创立一个子表,并用一个超级表来对立治理。以后, 子表数量曾经达到四十多万张,轻松达成了数十万级指标的实时监控

在写入层面,因为各个设施采集频率不太一样,每秒钟大略写入 6000 多行,这对于 TDengine 来说毫无压力, 咱们通过官网测试工具 taosBenchmark,在本人的虚拟机上都能跑出每秒写出数百万测点的问题

目前,咱们的数据存储周期(keep 7 天)为一周,TDengine 所蕴含的数据量如下:

以下为用作比照的 PostgreSQL 中的数据量。

能够看到,TDengine 存储的大略 2 亿行数据,理论占用存储空间不过 2 GB。(注:Vnode2 是 log 库所占用的空间,即 TDengine 用于外部监控而自带的数据库),比起 PostgreSQL 占用的超过 200GB 的空间,简直能够忽略不计。

在查问上也是一样,针对性能详情页的指标查问,PostgreSQL 的很多查问都须要几秒返回后果,而 TDengine 都是毫秒级别

写在最初

当下,因为咱们的重点业务是实时监控,所以对历史数据还没有那么高的平安优先级,但后续业务会波及到对此前的监控进行复盘,咱们将会降级到 TDengine 集群版来确保数据的高可用。总而言之,从以后的利用状况来看,TDengine 适配十分顺利,为咱们的零碎提供了十分大的助力。


想理解更多 TDengine Database 的具体细节,欢送大家在 GitHub 上查看相干源代码。

正文完
 0