
互联网
在物联网、工业
互联网等领域会产生难以预估的时序大数据,这种情况下这两款数据库都不适用。大家可别以为我在危言耸听,越来越多的实例表明,在物联网场景中,面对大量时序数据处理需求时,Oracle、
PostgreSQL、
MySQL等传统关系型数据库愈发显得力不从心。当前,国内外主流工业
互联网平台基本都采用更为专业的时序数据库,以承接海量涌来的工业数据。那这种情况为何会出现?就数据本质而言,时序数据库(具备不变性、唯一性和可排序性)与传统关系型数据库的服务需求截然不同。时序数据在数据处理操作方面,95% - 99%都是写入操作;在数据读取时,几乎不存在随机位置的单个测量读取、删除操作,读取和删除都是批量进行的,从某个时间点开始的一段时间内读取的数据量可能极为庞大;在数据存储上,时序数据结构简单,其价值随着时间流逝迅速下降,通常会借助压缩、转移、删除等方法来削减存储成本。时序数据库正是依据时序数据的这些特性来设计与优化的。反观像Oracle这类关系型数据库,其对应的数据特点和时序数据差异很大。首先,在数据写入方面,多数操作是DML操作,例如插入、更新、删除等;其次,它的数据读取逻辑通常较为复杂;第三,在数据存储方面,很少有压缩需求,一般也不设置数据生命周期管理。在业务规模初期不大、所需处理的数据量有限时,使用Oracle还能勉强应付。但随着时间推移,业务规模与数据量按比例增长,Oracle的不适用性就会导致越来越多的问题,很多数据处理需求无法满足,运维成本也会不断攀升。我们之前接触过一个地质灾害专业监测物联网平台项目,这个项目要实现数据采集、数据传输、数据存储(对入库性能有很强的依赖性)、数据分析(对查询性能有很强的依赖性)、预警预报这五大功能点。要达成这些功能,首先要解决海量时序数据的存储和计算问题。该项目在2018年刚研发时,选用的是大型企业级数据库Oracle。随着接入的设备传感器不断增多、数据量日益增大,数据入库和查询变得越来越慢。尤其是雨季来临,传感器数据采集频率提升到秒级、毫秒级时,数据入库就会堵塞,效率极低。由于原有的关系型数据库Oracle已经无法满足实时写入和高性能查询的要求,后来经过调研,他们决定替换为时序数据库TDengine。至于为何在众多时序数据库产品中选择了TDengine,他们在数据架构改造案例文章里有所阐述,相关链接我贴在下面,有兴趣的小伙伴可以自行查询。如下为该方案的架构图可供参考:
如下为该企业研发团队自测的查询对比数据:
要是所提需求处于时序数据场景下的话,不妨尝试一下国产的时序数据库TDengine,或许会有意想不到的收获。这款由涛思数据完全用C语言自主研发的时序数据库,于去年推出的3.0版本成功构建了真正的云原生时序数据库,攻克了一直困扰时序数据库发展的高基数难题。它能够支持10亿个设备采集数据,支持100个节点,还支持存储与计算分离。TDengine的单机版和集群版均已在GitHub开源,已收获19.7k个star,开源地址为https://github.com/taosdata/TDengine,欢迎随时下载使用并clone代码提issue。当前,TDengine在全球的安装实例已超64万,为顺丰科技、理想汽车、京东云、同花顺、得物、转转、零跑汽车、跨越速运等数十家企业客户提供服务。由于篇幅限制,若有兴趣,欢迎前往TDengine官网https://www.taosdata.com/,官网开放了所有官方技术文档和客户案例,大家可依据文档自行安装和测试数据库。