Tablestore Timestream:为海量时序数据存储设计的全新数据模型

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 引言 随着近几年物联网的发展,时序数据迎来了一个不小的爆发。为了存储这些时序数据,各大企业纷纷推出自己的时序数据库。Tablestore作为阿里云自研的NoSQL多模型数据库,能够提供海量结构化数据存储以及快速的查询和分析服务,其在存储模型、数据规模以及写入和查询能力上,都能很好的满足时序数据的场景,另外已经支持很多时序类业务,例如监控类的云监控,事件类的阿里健康药品追踪以及快递包裹轨迹等。

引言

随着近几年物联网的发展,时序数据迎来了一个不小的爆发。为了存储这些时序数据,各大企业纷纷推出自己的时序数据库。
Tablestore作为阿里云自研的NoSQL多模型数据库,能够提供海量结构化数据存储以及快速的查询和分析服务,其在存储模型、数据规模以及写入和查询能力上,都能很好的满足时序数据的场景,另外已经支持很多时序类业务,例如监控类的云监控,事件类的阿里健康药品追踪以及快递包裹轨迹等。
为了让用户能够更加专注于业务开发,我们提供了Timestream时序模型,其适用于监控、金融、轨迹溯源等时序业务场景。

时序数据简介

参考维基百科对于时间序列的定义:时间序列是一组按照时间发生先后顺序进行排列的数据点序列。简单来说,时序数据就是描述一个主体在一组时间点上的状态,这里的时间可能是周期性的采样,也可能是离散的,其中周期性采样的数据可以称监控类数据,离散的数据称之为事件类数据。
_

时序数据常见于IT基础设施、监控运维、物联网等场景中,比如说设备或应用监控数据、物流轨迹数据、金融股票K线等等,这些时序数据包含以下特点:

  • 时间属性,数据包含时间信息,且写入的数据会按照时间顺序往后进行追加。
  • 随机写入,在某个时间点会写入不同主体的状态,而不是相同主体的不同时间点的数据。
  • 连续查询,会按照时间范围查询某个主体的数据。
  • 写多读少,在时序场景中,写入的速率稳定且远大于读取。
  • 数据维度很多,不同主体会有不同的维度信息,需要复杂的数据检索能力。

 Tablestore在支持时序数据存储场景上,有比较大的优势,主要体现在:

  • 高可用、高可靠、可伸缩
  • 高并发写入能力
  • 按照时间范围高效数据查询
  • 复杂的时间线索引能力
  • 数据聚合和分析能力
  • 数据生命周期管理

Tablestore作为一个多模型分布式NoSQL数据库,为了更好的支持时序数据场景,新推出了Timestream模型。该模型主要应用于时序和时空场景,也是Tablestore综合了业界主流的时序数据库,所定义和抽象的数据模型。

Tablestore Timestream

数据模型

_

上面是时序数据的抽象模型,我们可以定义下时序数据的一个完整模型:
_

这个定义中包含:

  • Name:定义数据的类别
  • Tags:唯一标识个体的元数据
  • Attributes: 个体的可变属性
  • Timestamp:数据产生的时间戳
  • Location:数据产生的空间信息
  • Fields:数据对应的值或状态,可提供多个值或状态,非一定是数值类型

时序数据包含元数据和数据点两个部分,其中元数据由Name、Tags以及Attributes组成,而Name+Tags唯一确定某个元数据;数据点则是由Timestamp、Location以及Fields组成。

下面通过事件类的物流轨迹场景来看一下Timestream数据模型是如何使用的。
_

这是一个快递的物流轨迹数据,其记录的是快递在不同时间点的状态变化。该轨迹数据的元数据则是快递本身,包含了单号、物流平台、快递当前位置信息以及快递寄件/收件等元信息,其中单号以及物流平台的组合(Identifier)唯一确定这个快递。下面分析一下数据存储方式:

  • 将物流平台作为Name进行存储,一个快递平台的数据属于同一类数据,对数据检索性能有一定的提升
  • 将快递单号作为Tags存储,唯一确定一个快递
  • 快递的其他元信息存储在Attributes中,避免Tags过长导致的性能问题,同时能够支持这些信息的修改
  • 将快递的当前位置也存在在Attributes中,可以实现根据某个位置检索当前时间附近的快递
  • 快递的轨迹时序数据(位置/状态)放在Fields中,可以查询某个快递在某个时间范围内的轨迹

特点和优势

_

以上是基于Tablestore Timestream来构建一个时序数据存储、计算和分析的完整架构。热数据通过agent直接写入到Tablestore中,再通过通道服务将数据增量流出到函数计算进行事件监测,以及流到流计算系统进行后聚合,再将聚合后的数据写回到表格存储中。
这是一套Serverless的架构,通过组合云产品的方式,能够做到提供完整的时序场景所需的所有功能。并且,各组件可以替换成其他同类云产品,架构灵活,相比开源时序数据库在以下方面有很大的优势:高性能&高可靠&高可用、全托管、元数据检索、冷热数据分层和灵活计算分析能力。

元数据检索

元数据是时序数据里非常重要的一块数据,其数据量比时序数据要小很多,但查询的复杂度却高很多,并且数据查询往往是需要先定位时间线,所以元数据检索是查询的核心之一。
_

元数据检索往往是通过Name, Tags,以及Attributes来定位满足条件的时间线。在元数据检索功能方面,Tablestore Timestream支持Name/Tags的精确查询、前缀查询,Attributes的GEO/精确/前缀/范围/模糊查询,还支持这四部分数据的多字段组合查询需求,能够很好的满足业务对于时间线元数据的检索需求。
性能方面,Tablestore Timestream能够支撑百亿级的时间线检索并且提供毫秒级的延迟。

计算分析能力

_

表格存储实现了与各计算产品的无缝对接,包括离线数据分析、流式计算、事件驱动等,能够提供灵活的计算分析能力,满足时序场景下的各类计算需求。特别是,Tablestore与Blink深度结合,可作为Blink的源和结果,让整个数据流可形成闭环,并借助Blink实现更灵活的计算配置,可以满足复杂的数据计算需求,比如说数据降维、降精度、异常状态检测、实时统计分析等需求。
另外,Tablestore也支持通过通道服务将数据增量实时流出,实现定制化分析。
Tablestore也提供了轻量级的交互式数据分析能力,满足常见的数据查询计算需求,比如sum,group by等。

冷热数据分层

时序数据有一个显著特征是数据访问冷热分明,最近写的数据会被更频繁的访问。基于Timestream的架构中,可以用高性能实例来存储热数据,满足交互式需要较快速度的数据分析。降维或者降精度之后的冷数据存储在容量型实例,满足离线计算场景。并且,对于冷数据,我们会通过Erasing Coding以及极致压缩算法进一步降低存储成本。

更多的时序介绍架构和优势介绍参考《Tablestore时序数据存储 - 架构篇》。

典型应用场景

_

前面介绍了时序场景根据数据的时间特性可以分为事件和监控两大类。这两类场景各有一些典型特征,比如说监控类场景时间线生命周期长,有降精度需求等;事件类场景时间线生命周期短,时间线数量庞大,无降精度需求,需要大规模时间线的高效检索。上面介绍了表格存储Timestream的优势,我们已经很好的支持了这两类业务,比如监控类的云监控,事件类的阿里健康药品追踪以及邮政包裹轨迹等。

后续我们会对不同的场景提供实战文档,敬请关注。

快速入门

  1. 创建TimestreamClient
        AsyncClient asyncClient = new AsyncClient(endpoint, accessKeyId, accessKeySecret, instance);
        TimestreamDBConfiguration conf = new TimestreamDBConfiguration(metaTableName);
        TimestreamDB db = new TimestreamDBClient(asyncClient, conf);
  1. 创建数据表和元数据表
        db.createMetaTable();
        db.createDataTable(dataTableName);
  1. 读写数据

        TimestreamIdentifier identifier = new TimestreamIdentifier.Builder("cpu").build();
        Point point = new Point.Builder(System.currentTimeMillis(), TimeUnit.MILLISECONDS)
                .addField("a1", 1)
                .build();

                // 写时序数据
        TimestreamDataTable dataTable = db.dataTable(dataTableName);
                dataTable.asyncWrite(identifier, point);
                // 查时序数据
                Iterator<Point> iter = dataTable.get(identifier)
                    .timeRange(TimeRange.range(0, 10000, TimeUnit.MILLISECONDS))    //查询[0, 10000)范围内的数据
                    .fetchAll();

                // 写时间线元数据
        TimestreamMeta meta = new TimestreamMeta(identifier)
                .addAttribute("a1", "");
        TimestreamMetaTable metaTable = db.metaTable();
        metaWriter.put(meta);
                // 查时间线元数据
                TimestreamMeta meta = metaTable.get(identifier).fetch();

更多示例请参考:Timestream使用参考

扩展阅读

基于Tablestore的Wifi设备监管系统架构实现
基于Tablestore管理海量快递轨迹数据架构实现
药品监管系统架构揭秘:元数据管理与轨迹溯源

欢迎加入

如果您对表格存储、时序模型感兴趣,对模型使用有疑问、想探讨,欢迎加入【表格存储公开交流群】,群号:11789671。

相关实践学习
阿里云表格存储使用教程
表格存储(Table Store)是构建在阿里云飞天分布式系统之上的分布式NoSQL数据存储服务,根据99.99%的高可用以及11个9的数据可靠性的标准设计。表格存储通过数据分片和负载均衡技术,实现数据规模与访问并发上的无缝扩展,提供海量结构化数据的存储和实时访问。 产品详情:https://www.aliyun.com/product/ots
目录
相关文章
|
9月前
|
存储 消息中间件 监控
Tablestore 物联网存储全面升级 -- 分析存储公测
物联网存储功能介绍随着物联网技术的快速发展,物联网已广泛应用于制造业、能源、建筑、医疗、交通、物流仓储等多个领域,物联网的应用能够有效节约资源、提高效率、保障安全以及降低成本,帮助各行业实现可持续发展目标。在物联网场景中根据数据特点进行分类,数据主要包括设备元数据、设备消息数据和设备时序数据三种类型,不同类型数据的存储需求不同。物联网场景中不同类型数据的存储核心需求如下:设备元数据:主要数据为设备
218 0
Tablestore 物联网存储全面升级 -- 分析存储公测
|
SQL 存储 传感器
表格存储物联网时序模型介绍
表格存储的时序模型是针对时间序列数据的特点进行设计,适用于物联网设备监控、设备采集数据、机器监控数据等场景。自21年9月公测,经过长时间打磨,功能已经正式商业化。本文简单介绍表格存储时序模型优势、特点以及数据建模建议。
766 0
表格存储物联网时序模型介绍
|
存储 传感器 运维
基于 Tablestore 时序模型构建车联网数据存储
背景最近几年,物联网得到了飞速的发展。在车联网、设备监控、网络监控、快递跟踪等物联网典型场景下,海量监控数据、轨迹数据、传感器数据被生产数来。这些数据产生频率高、数据量大、严重依赖采集时间,是典型的时序数据。传统的数据库是无法应对这种高写入的海量实时数据的,需要使用能够支持时序模型的时序数据库对这些数据进行储存和分析。表格存储时序模型是专门针对时序数据特点,为物联网、车联网等场景设计的。本文基于车
421 0
基于 Tablestore 时序模型构建车联网数据存储
|
存储 编解码 运维
阿里云云存储(OSS\TableStore\NAS?)+CDN 产品: 更快速,更低成本|学习笔记
快速学习 阿里云云存储(OSS\TableStore\NAS?)+CDN 产品:更快速,更低成本
415 0
|
存储 SQL 传感器
基于 Tablestore 时序存储的物联网数据存储方案
背景物联网时序场景是目前最火热的方向之一。海量的时序数据如汽车轨迹数据、汽车状态监控数据、传感器实时监控数据需要存放进入数据库。一般这类场景下存在如下需求数据高写入,低读取需要对写入数据进行基础的图表展示对写入数据进行聚合分析传统的关系型数据库并不适合此类场景,时序数据库脱颖而出。表格存储时序实例支持时序数据的存储,其具有如下特点:Serverless,分布式,低成本高写入支持优秀的索引能力对数据
1443 0
基于 Tablestore 时序存储的物联网数据存储方案
|
SQL 存储 监控
表格存储快速上手-时序模型
表格存储的时序模型是针对时间序列数据的特点进行设计,适用于物联网设备监控、设备采集数据、机器监控数据等场景。以车联网场景为例展示车辆状态表的时序模型操作。
321 0
表格存储快速上手-时序模型
|
存储 SQL NoSQL
海量结构化数据存储技术揭秘:Tablestore存储和索引引擎详解
海量结构化数据存储技术揭秘:Tablestore存储和索引引擎详解
359 0
海量结构化数据存储技术揭秘:Tablestore存储和索引引擎详解
|
存储 SQL 运维
基于Tablestore 实现大规模订单系统海量订单/日志数据分类存储的实践
前言:从最早的互联网高速发展、到移动互联网的爆发式增长,再到今天的产业互联网、物联网的快速崛起,各种各样新应用、新系统产生了众多订单类型的需求,比如电商购物订单、银行流水、运营商话费账单、外卖订单、设备信息等,产生的数据种类和数据量越来越多;其中订单系统就是一个非常广泛、通用的系统。而随着数据规模的快速增长、大数据技术的发展、运营水平的不断提高,包括数据消费的能力要求越来越高,这对支撑订单系统的数据库设计、存储系统也提出了更多的要求。在新的需求下,传统的经典架构面临着诸多挑战,需要进一步思考架构优化,以更好支撑业务发展;
684 0
基于Tablestore 实现大规模订单系统海量订单/日志数据分类存储的实践
|
存储 运维 NoSQL
基于Tablestore的一站式物联网存储解决方案-场景篇
## 前言 随着5G时代的来临,万物互联概念的兴起,物联网渐渐覆盖到了各行各业中。本系列文章将为大家介绍基于表格存储Tablestore的一站式物联网存储解决方案。以共享充电宝场景为例,实现物联网场景下元数据、时序数据存储,高并发更新、分析计算等需求。 ## 背景 共享经济是近年来兴起的一种概念,共享概念极大方便了人们的生活。例如共享单车、共享车位、共享充电宝等等。这些场景里包含了大量的设备元
1003 1
|
存储 运维 负载均衡
基于Tablestore的一站式物联网存储解决方案-表设计篇
## 前言 本章节主要讲解表格存储Tablestore的实例、表的创建步骤和共享充电宝场景的数据表设计。 ? ## 表设计 ### 表功能设计 这里按照功能需求分为三张数据表:元数据表、订单数据表、元数据时序表 - 元数据表 元数据表保存了机柜的最新状态数据。用户租借、归还充电宝,以及运维人员上下线机柜,都会更新元数据表记录。在元数据表上建立索引,可提供多维查询的能力。对元数据表按照字段进行
721 0


http://www.vxiaotou.com