拥抱时序数据库,构筑IoT时代下智慧康养数据存储底座
随着 IoT 技术的快速发展,物联网设备产生的数据呈爆炸式增长。这些数据通常随时间产生,称之为时序数据。这样的一种专门用于管理时序数据的数据库被称为时序数据库。时序数据库是当前物联网 IoT垂直范畴最为合适的数据库解决方案。作为物联网下火热的智慧健康养老应用,时序数据库能为智慧健康养老行业带来哪些贡献?华为云数据库专家向宇解读了时序数据库在智慧健康养老行业应用之道。
时序数据库助力智慧健康养老场景化应用
https://p3.toutiaoimg.com/large/pgc-image/9f6cb0a029624151b6cdbc7aae0273a7
从智慧健康养老的全场景图看到,智慧健康养老整体上分为4个部分:
[*]设备:包括穿戴设备(比如手环,可以记录步数和心率)、环境监测设备(比如室内室外温度传感器)和医疗健康设备(比如血压仪、血糖仪)。这些设备产生的数据需要上传到平台或系统服务进行同一存储,为更上层的应用提供基本的数据输入;
[*]数据存储层:相同功能但不同厂商的设备产生的数据格式可能不尽相同。再者,随着业务的发展,可能还会接入更多类型设备,数据量也会越来越大。思量业务变动和数据库性能,为最大程度降低对上层应用的影响,把设备数据与其他业务数据分开存储;
[*]服务层:平台对外提供的能力,比如安全预警、健康风险评估、其他养老事务管理功能等;
[*]端侧应用:基于平台提供的服务,可以开辟出APP,利用APP把老人、子女、机构工作人员三类用户联系起来,例如:子女可以通过手机APP实时检察自己父母的活动情况,健康指标,工作人员可以在终端提交工单等等)。
针对智慧康养的场景化应用,在平台服务层面,云芯科技、蓝色健康和智康科技三家企业正在努力实现这些智慧养老的服务应用。他们正在用技术变革传统康养行业,给老人带来技术的温度。(了解更多:用技术变革传统康养行业,智慧养老的正确打开方式-云社区-华为云)
在物联网等范畴,特殊是智慧康养场景下,我们发现有这么一些数据,他们都有时间属性,有设备描述信息,有收罗的数据指标。举个例子,如下图所示:
https://p26.toutiaoimg.com/large/pgc-image/9c36c72a440f46098fda1a8c98c02388
第一列是数据产生的时间,第二列是设备编号,后面是收罗的数据内容,如体温、心率等。我们把数据划分为三个部分,时间部分称为时间戳,设备编号等描述设备信息的部分称之为数据的标签,剩余部分描述了收罗的具体指标,称之为指标项。像这样的数据,我们就称之为时序数据,因为它有显着的时间属性。那么这些时序数据,都是有自己的特点:
[*]不变性:时序数据在写入后,一般不会被修改。这个特征非常适用于压缩,不因修改某个数据对整个数据块进行修改;
[*]时效性:时间越近的数据被访问的概率大,时间越是久远,数据被访问的概率越低。因此,对于时序的热数据,可以采用压缩和解压速度比力好,压缩率公道的压缩算法,而对于冷数据,非常得当利用更高压缩比的算法;
[*]数据量庞大:时序数据的收罗类型丰富, 随着收罗硬件的普及和收罗频率增加,使得数据量出现暴增,比如自动驾驶中每辆车天天就会收罗将近 8T 的数据,带宽、实时写入、快速查询、存储、耗电以及维护本钱都是挑衅;
[*]数据利用冷热:用户可能对某些数据源或者时间段的关注远远超过其他,因此在海量数据中偏向某些特殊时间段或某些数据源的数据查询。
时序数据库如何选?
从我们的企业应用的情况来看,目前存放时序数据采用的数据库各种各样,有用关系数据库存放,有用NOSQL数据存储(比如HBASE,Cassandra,MongoDB),还有就是用到了时序数据库。我们总结了一下选型数据库之前需要思量的一些标题。
[*]本钱:分为运维本钱和存储本钱,比如用HBASE存储,它的技术栈很长,底层存储利用的是HDFS。运维就需要一个人既懂时序数据库,又要懂大数据平台,本钱比力高。其次,数据量渐渐地增加,存储需要不断的扩容,本钱随之上来了。所以,既要选择部署便捷、扩容操作简单,又要能提供数据压缩的数据库。
[*]性能:不同的业务对数据库的性能需求是不一样的,需要思量以后业务规模增加后,数据库能不能支持预期的设备数量和数据量。
[*]业务变动:对于物联网而言,由于缺乏标准,各式各样的设备都有可能接入,有的设备可能只有2列数据,有的设备可能有3列数据,这就要求数据库支持Schemaless。
[*]生态:主要是时序数据库上卑鄙接口的标题,选择的数据库需要思量其技术生态,数据要能进得来,出得去。比如用了SQLServer存时序数据,想用Granfana展示数据就很困难。
[*]数据分析:设备数据被存储下来,最终是需要通过数据分析挖掘数据隐蔽代价,还要思量数据库是否支持数据分析平台。
鉴于上述行业中存在的标题,以及对将来物联网发展的信心,华为云自研GaussDB(for Influx) (了解更多:时序数据库_GaussDB for Influx_数据库-华为云)基于华为自研的计算存储分离架构,兼容InfluxDB生态的云原生NoSQL时序数据库。提供大并发时序数据读写、压缩存储、多维聚合以及一键部署、快速备份恢复、计算存储独立扩容、监控告警等服务能力,可以完全满意康养的需求。
GaussDB(for Influx)时序数据库依靠华为在数据存储范畴多年的实践经验,整合华为云的计算、存储、服务保障和安全等方面的能力,大胆在架构、性能和数据压缩等方面进行了技术创新,到达了较好的效果,对内支持了华为云底子设施服务,对外以服务的情势开放,帮助上云企业解决相干业务标题。
https://p6.toutiaoimg.com/large/pgc-image/457d693683304fda9af4350da37a7cc7
GaussDB(for Influx)接口完全兼容InfluxDB,写入接口兼容OpenTSDB、Prometheus和Graphite。从架构上看,一个时序数据库集群可以分为三大组件。它们分别是:
[*]Shard节点:节点采用无状态设计,主要负责数据的写入和查询。在节点内,除了分片和时间线管理之外,还支持数据预聚合、数据降采样和TAG分组查询等专为时序场景而优化的功能。
[*]Config集群:存储和管理集群元数据,采用三节点的复制集模式,包管元数据的高可靠性。
[*]分布式存储系统:集中存储长期化的数据和日记,数据采用三副本方式存放,对上层应用透明。存储系统为华为自研,颠末多年产品实践检验,系统的高可用和高可靠性都得到了验证。
华为云时序数据库应对智慧康养应用场景有妙招
在面临AIoT物联网典范应用场景中,时序数据库天天会产生数GB乃至数TB的时序数据。如果无法对这些时序数据进行很好的管理和压缩,那将会给企业带来非常高的本钱压力。
GaussDB(for Influx)对数据采用列式存储,相同类型的数据被集中存储,更有利于数据压缩。采用自研的时序数据自适应压缩算法,在压缩前对数据进行抽样分析,根据数据量、数据分布以及数据类型选择最合适的数据压缩算法。在压缩算法上,相比原生的InfluxDB,重点针对Float、String、Timestamp这三种数据类型进行了优化和改进。
[*]Float数据类型: 对Gorilla压缩算法进行了优化,将可以无损转换的数值转为整数,再根据数据特点,选择最合适的数据压缩算法。
[*]String数据类型:采用了压缩效率更好的ZSTD压缩算法,并根据待压缩数据的Length利用不同Level的编码方法。
[*]Timestamp数据类型:采用差量压缩方法,最后还针对数据文件内的Timestamp进行相似性压缩,进一步降低时序数据存储本钱。
下图是分别采用实际业务场景的事件日记数据(数据集1)和云服务器监控指标数据 (数据集2)与InfluxDB进行了数据压缩效率的性能对比。
https://p3.toutiaoimg.com/large/pgc-image/a37cb0c78f62412aaf0e20ce0f27b49a
节省存储本钱并非只有数据压缩一种办法。针对时序数据越旧的数据被访问的概率越低的特点,GaussDB(for Influx)提供了时序数据的分级存储,支持用户自定义冷热数据,实现数据的冷热分离。热数据相对数据量小,访问频仍,被存储在性能更好、本钱较高的存储介质上;冷数据相对数据量大,访问概率低,保存时间较久,被存储在本钱较低的存储介质上,进而到达节省存储本钱的目的。根据实际业务数据测算,相同数据量下存储本钱仅有关系型数据库的1/20。
除了产品本身的技术优势特点,GuassDB(for Influx)能够开箱即用,用户只需要关注应用层就可以,不用关注运维。在利用的过程中,不需要去特意学习新的产品技术,会SQL就可以利用。GaussDB(for Influx)还兼容Influx 生态,整个生态下的工具、接口等都可以直接应用。
从数据安全角度看,GaussDB(for Influx)在容灾备份方面,支持异地3AZ,可以让数据存储在不同的城市,这样确保数据的安全性。
在智慧康养场景下,最紧张的是如何基于数据分析,来进一步对用户带来更好地产品服务。GuassDB(for Influx)还提供数据分析平台,能够和数据库融合在一起,可以把相干算法以热插拔的方式嵌入到平台中,从数据库直接读取数据进行分析,最终应用在相对应的场景下。这两边是以相互感知的情势,分析感知存储,从而轻量化存储分析开销。不管企业在什么地方,基于GuassDB(for Influx)能够解决康养企业的数据孤岛标题,实现代价共享。
据悉,GuassDB(for Influx)的开源计划正在进行中,开源的名字叫GeminiTSDB,兼容Influx DB接口,采用类SQL查询语言,提供单机和分布式集群两种部署模式,安装简单,部署灵活,无需外部依靠,具有高可用、高性能、低时延、低存储本钱、扩展灵活等优点,希望大家多多关注!
关注@华为云,了解更多资讯 转发了 转发了 转发了 @华为
页:
[1]