加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

实时数据库:一夜之间,我感受到了时序数据库的威胁

发布时间:2019-05-01 10:13:43 所属栏目:MySql教程 来源:王妙琼
导读:副标题#e# 进入正题之前,咱们先讲个故事 在2018年接触到工业互联网之前,我完全没了解过时序数据库(下面简称为TSDB),因为做标准的原因开始慢慢接触起国内一些做TSDB的厂家,其中不乏充满干劲的创业公司和经验丰厚的老牌信息化厂商,实力雄厚的BATH天团在T

随着IoT和工业互联网带来的新一波风口,一系列新的生产方式、组织方式和商业模式开始涌现。物联网技术逐步渗透工业,不断增长的传感器、飙升的数据量,以及更高的大数据分析需求对实时数据库传统的技术架构提出了挑战。有些问题是需要直面的:

扩展性遇到瓶颈。传统的技术架构虽然能保证单机具备极高的性能,也可以通过增加机器使性能线性扩展,但是不能像分布式系统那样实现动态灵活的扩容和缩容,需要提前进行规划。当业务升级需要系统扩容时,老架构的扩展性就很难满足需求了。

无法和大数据生态对接。数据采集的最终目的是被理解和使用,大数据产业中对于海量数据的存储分析已经有很成熟的方案,不论是hadoop还是spark的生态圈,都面临着新老技术的对接。很多工业企业因为想使用新的大数据分析技术,不得不对现有的系统进行升级或是替换。

价格高昂。传统的工业实时数据库解决方案价格都十分昂贵,一般只有大型企业能忍痛接受。但是随着新技术新理念的普及,更多的中小企业也意识到数据的重要性,但考虑到资金投入,会倾向于寻找价格更低廉的方案。

这时候来自互联网大家庭的时序数据库方案就展现出了一些先天优势,比如:

分布式架构的天然优势:传统的实时数据库多是主备的部署架构,通常要求有较高配置的机器,来追求单机极致的性能;同时,在稳定性方面,会对运行软件的稳定性做极高的要求,完全由高质量的代码来保证运行的稳定;由于存储容量有限,也会要求超高的数据压缩比。但是时序数据库的分布式架构,使得系统能够轻松的进行水平扩展,让数据库不再依赖昂贵的硬件和存储设备,以集群天然的优势来实现高可用,不会出现单点的瓶颈或故障,在普通的x86服务器甚至是虚拟机上都可以运行,大大降低了使用成本。

更灵活的数据模型:传统的实时数据库由于工业场景的特殊性,常使用的是单值模型,一个被监控的参数称为一个测点,在写入时会对每一个测点建一个模型,比如一个风机的温度指标算一个测点,十个风机的十个指标就是100个测点,每个测点会附带描述信息(名称、精度、数据类型、开关量/模拟量等)查询的时候就会针对每个测点去查询数值。单值模型的写入效率会很高。

单值模型示例

而时序数据库,开始采用多值模型,类似面向对象的处理方式,例如风机是一种数据模型,可以包括温度、压力等多个测量维度,还包括经纬度、编号等tag信息,这样对外提供服务时会更适合分析的场景。当然单值模型和多值模型是可以互相转换的。很多数据库对外提供的服务为多值模型,但是底层存储还是单值模型。

多值模型示例

现在大部分的时序数据库都选择了扩展性较好的NoSQL数据库,相比于关系型数据库,数据模型更灵活,非常适合时序数据的多值模型;更易扩展,在资源受限或者需要提升性能的时候,可以轻易的增加机器;查询效率高;开源软件成本低;可以与大数据生态无缝对接。看下使用NoSQL数据库作为底层存储的TSDB:

开源TSDB的底层存储模型

但是使用NoSQL数据库也会丢失一些特性,比如不支持事务,需要通过其他手段来保证数据一致性;比如不支持SQL,SQL作为一种标准查询语句,已经被人们所习惯,是一种学习成本极低的操作,所以现在做时序数据库的厂家也在尝试去集成SQL引擎,降低使用的门槛。

时序数据库被描述得这么优秀,那它会接班传统的实时数据库吗?不是这么容易的事。

首先,工业中的实时数据库经受过多年客户需求的打磨,性能上绝对一流,甚至可以进行一定的反馈控制。产品的配套也非常齐全,通常自带采集工具、适配各种接口协议、具备计算能力及定制化的可视化能力(实时数据库在这一块的设计投入了很大精力,以使图表能展示出监控数据的一些特征和细节),是一套完整的解决方案。而时序数据库的设计在这些领域知识的积累方面是很欠缺的,而且大多数只用于监控分析的场景;部署依赖过多,配套工具不完善也是一方面的问题;性能和可靠性离实时的反馈控制也还有一定距离。

再者,近几年做实时数据库的厂家也在积极行动中,陆续都为产品增加了分布式版本甚至是云服务版本,通常会以实时数据库为核心反向建立起一套数据管理和分析的生态体系,势头一点都不输互联网玩家。

跑道上枪声响起,这场比赛没有人弃权。

那我们共同进步吧

不管技术架构如何变化,解决用户的需求才是最终目的,以需求为导向的设计,永远不会过时。那接下来我们来看看还出现了哪些新需求:

对查询的要求逐渐超过了写入要求:在互联网时代,查询的要求已经不仅仅是满足于一些基础的条件查询或是插值查询,随着物联网场景的丰富以及人们对信息全面掌控的需求,基于地图的应用越来越多,查询会由时间的维度逐步扩展到空间的维度,除了保证实时性之外,更丰富的可视化的展现也是一大趋势。

逐步转向云服务:传统的工业场景处理实时数据出于安全和性能等原因都会使用私有化部署。机器、软件以及后续的服务是一笔十分高昂的开销,还需要配备专业的技术人员进行系统的维护。当服务逐步上云后,一方面省去了购置机器的成本,也不需要特别安排维护机器和软件系统的工程师,只需要懂得如何开发和维护业务就可以。另外服务使用多少就购买多少,避免一次性购买服务造成的资源浪费或者资源不足再进行二次建设,可以为企业减少很大一笔开销。随着网络和云计算技术的成熟,相关的性能和安全性也会不断的升级,最终趋近于私有化部署的效果,服务上云已经成为了一个不可阻挡的趋势。

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读