TableStore时序数据存储 - 架构篇

本文探讨时序数据存储的架构,包括数据模型、处理流程和TableStore在时序数据存储中的应用。文章指出,时序数据分为监控类和状态类,常见开源时序数据库针对监控类优化,但TableStore的多模型设计能更好地满足时序数据需求。文章详细阐述了TableStore如何支持时序数据存储、计算和分析,强调其存储计算分离、数据冷热分层和元数据检索的优势。
摘要由CSDN通过智能技术生成

摘要: 背景 随着近几年物联网的发展,时序数据迎来了一个不小的爆发。从DB-Engines上近两年的数据库类型增长趋势来看,时序数据库的增长是非常迅猛的。在去年我花了比较长的时间去了解了一些开源时序数据库,写了一个系列的文章(综述、HBase系、Cassandra系、InfluxDB、Prometheus),感兴趣的可以浏览。

背景

随着近几年物联网的发展,时序数据迎来了一个不小的爆发。从DB-Engines上近两年的数据库类型增长趋势来看,时序数据库的增长是非常迅猛的。在去年我花了比较长的时间去了解了一些开源时序数据库,写了一个系列的文章(综述HBase系Cassandra系InfluxDBPrometheus),感兴趣的可以浏览。

这几大开源时序数据库的实现各有千秋,都不是很完美,但是如果可以取长补短,倒是能实现一个比较完美的时序数据库。

TableStore作为阿里云自研的分布式NoSQL数据库,在数据模型上我们是多模型设计,包含和BigTable一样的Wide Column模型以及针对消息数据的Timeline模型。在存储模型、数据规模以及写入和查询能力上,都能比较好的满足时序数据场景的需求。但我们作为一个通用模型数据库,时序数据存储要完全发挥底层数据库的能力,在表Schema设计以及计算对接上,都要有比较特殊的设计,例如OpenTSDB针对HBase的RowKey设计以及UID编码等。

本篇文章是架构篇,主要探讨时序数据的数据模型定义、核心处理流程以及基于TableStore来构建时序数据存储的架构。之后还会有方案篇,会提供一个高效的时序数据和元数据存储的表Schema设计以及索引设计方案。最后还会有计算篇,会提供几个时序数据流计算和时序分析的方案设计。

 

什么是时序数据

e40db4459bce7bd9226c040c0e0a8259af8beb82

时序数据主要划分为两类,一类是监控类时序数据,另一类是状态类时序数据。当前开源的时序数据库,针对的都是监控类时序数据,针对该场景下数据特征做一些特定的优化。但按照时序数据的特征来看,还有一类是状态类时序数据。这两类时序数据分别对应不同的场景,监控类顾名思义对应的是监控场景,而状态类针对的是其他场景,例如轨迹溯源、异常状态记录等。我们最常见的包裹轨迹,就是状态类时序数据。

但为何把这两类数据都归类到时序,因为在数据模型定义、数据采集、数据存储以及计算上,两者是完全一致的,可以抽象出用同一个数据库及同一套技术架构。

 

时序数据模型

在定义时序数据模型之前,我们先对时序数据做一个抽象的表述。

dff5ff87046c407feccacae5101bbd29cc07f800

  • 个体或群体(WHO):描述产生数据的物体,可以是人、监控指标或者物体。通常描述个体会有多维的属性,可以通过某一类唯一ID来定位到个体,例如身份ID定位到人,设备ID定位到设备。也可以通过多维属性来定位到个体,例如通过集群、机器ID、进程名来定位到某个进程。

  • 时间(WHEN):时间是时序数据最重要的特征,是区别于其他数据的关键属性。

  • 时空(WHERE):通常是通过经纬度二维坐标定位到地点,在科学计算领域例如气象,通过经纬度和高度三维坐标来定位。

  • 状态(WHAT):用于描述特定个体在某一刻的状态,监控类时序数据通常是数值类型描述状态,轨迹数据是通过事件表述状态,不同场景有不同的表述方式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值