随着 5G/IoT 物联网技术的飞速发展,IoT 设备产生的时序数据也呈爆炸式增长,数据的总量(Volume)、数据类型(Variety)越来越多、访问速度(Velocity)要求越来越快、对数据价值(Value)的挖掘越来越重视。

物联网设备产生的数据通常都具备时间序列特征,面对 IoT 垂直领域数据存储与处理需求时序数据库应用而生。

▌时序数据存储的挑战

1.时序数据业务场景

物联网、车联网、智能家居、工业物联网是时序数据最典型的应用领域,海量的设备持续产生运行时指标数据,对数据的读写、存储管理都提出了很大的挑战。

2 .时序数据的特征

在IoT物联网场景里,设备数据的产生、存储、访问都有比较明显的规律,相比当前互联网典型的应用特征有比较大的区别。

结合物联网业务的特征,要满足大规模时序数据存储需求,必须面对如下的几个核心挑战:

3.时序数据库发展史

从2014年开始,陆续有针对时序数据存储设计的数据库诞生,尝试解决时序数据存储在高写入吞吐、横向扩展、低成本存储、数据批量过期、高效检索、简单访问时序数据计算等方面面临的挑战。

时序数据库经过近些年的发展,经历了以下四个阶段:

▌Lindorm TSDB 架构设计思考

1.Lindorm 云原生多模数据库

阿里云推出云原生多模数据库 Lindorm ,致力于解决5g/IoT 时代海量多类型低成本存储与处理问题,让海量数据存得起、看得见

Lindorm TSDB支持宽表、时序、搜索、文件等多种模型,满足多类型数据统一存储需求,广泛应用于物联网、车联网等场景。

2 .Lindorm TSDB 核心设计理念

Lindorm TSDB 做为下一代时序数据库,在架构升级过程中,我们认为时序数据库的发展会有如下趋势:

因此,我们构建了云原生多模数据库 Lindorm,支持宽表、时序、搜索、文件等多种常用模型,解决物联网/互联网海量数据存储的常见需求,其中 Lindorm TSDB 采用计算存储分离的架构,充分利用云原生存储基础设施,定制时序存储引擎,相比业界的解决方案更具竞争力。

▌Lindorm TSDB 关键技术

1.时序定制存储引擎

Lindorm 基于存储计算分离架构设计,以适应云计算时代资源解耦和弹性伸缩的诉求,其中云原生存储分布式存储 Lindorm Store 为统一的存储底座,向上构建各个垂直专用的多模引擎,包括宽表引擎、时序引擎、搜索引擎、文件引擎。LindormStore 是面向公共云基础存储设施(如云盘、DBFS、OSS) 设计、兼容 HDFS 协议的分布式存储系统,并同时支持运行在本地盘环境,以满足部分专有云、专属大客户的需求,向多模引擎和外部计算系统提供统一的、与环境无关的标准接口。

基于云原生分布式存储 LindomStore,Lindorm TSDB 采用针对写入优化的 LSM Tree 结构来存储时序数据,并结合时序数据的特征,在日志写入、内存组织结构、时序数据存储结构进行时序压缩,最大化内存利用效率、磁盘存储效率;同时在 Compaction 策略上也针对数据通常有序产生的特征进行优化。通过引擎自带的 WAL 日志,Lindorm TSDB 能非常方便的支持实时的数据订阅,以及在引擎内部对数据进行针对性的降采样、聚合等预处理操作。

Lindorm TSDB 针对时序数据的查询,支持丰富的处理算子,包括降采样、聚合、插值、过滤等。用户的查询请求经过 Parser 解析后,通常分为多个主要的处理阶段,以 Pipeline 的形式高效处理。

  • Index Scan:根据用户指定的查询条件,基于正排索引 + 倒排索引找出所有满足条件的时间线 ID 集合。

  • Data Scan:基于第1阶段找出的时间线 ID,从 TSFile 读取对应时间范围的数据。

  • Aggregation/Filter: 针对第2阶段的扫描结果,对时间线数据进一步的处理,包括在一条时间线上对数据按一定周期进行降采样,或对多条时间线相同时间点上的数据进行聚合(sum、count、avg、min、max等)操作等。

2 .分布式弹性

Lindorm TSDB 具备横向扩展的能力,海量的时间线数据会被分散存储到多个 Shard 中,Shard 是集群中独立的数据管理单元,Shard 内部是一个自治管理的 LSM Tree 存储引擎(参考2.2),包含单独的 WAL、TPI、TSFile 等文件。

在水平方向,时间序列数据会根据 metric + tags 组成的时间线标识,采用 Hash 分片的策略,将数据分到多个节点;在垂直方向(时间轴维度),分到同一个节点的数据,可按照时间维度进行切分,这样每个 Shard 就负责一部分时间线在一定时间范围内的数据管理。

水平方向的分片能保证集群的负载均分到各个节点,后续还会结合业务特征,支持业务自定义的分片策略,优化读写效率;垂直方向(按时间范围)的分片,对于膨胀型时间线场景(比如云原生监控的场景,容器频繁上下线导致大量老时间线的消亡,新时间线的创建)非常有帮助,同时在集群扩容时,也可以借助时间分片策略来尽可能的减小对写入的影响。

3 .TSQL 时序查询

Lindorm TSDB 提供 SQL 访问能力,Lindorm TSDB 的数据模型针对物联网场景高度优化定制,概念上尽量保留开发者对数据库的普遍理解,一个实例包含多个数据库,一个数据库包含多张表,表里存储多个设备的时序数据,每个设备包含一组用于描述设备的 Tag、设备包含多个 Field 指标,新的指标数据随时间持续不断的产生。除了支持常规的 SQL 基础能力,Lindorm TSDB 还定制了 sample by、latest 等算子,用于方便的表达时序降采样、时序聚合、最新点查询等常见的时序操作,简化使用的同时,增强了时序 SQL 的表达能力,让用户使用时序数据库更加简单、高效。

基于 TSQL 查询接口,Lindorm TSDB 还能针对时序数据进行一系列的拓展分析,包括时序数据预测、异常检测等,让应用能更好的发挥时序数据价值。

4 .Serverless支持

Lindorm TSDB 通过时序定制的存储引擎、结合分布式扩展的能力,能很好的满足大规模时序场景的业务需求。但对于一些业务访问较小的应用场景起步成本相对较高,例如在平台级的应用监控、IoT 场景,平台需要管理大量用户的时序数据,而大部分用户的数据规模初期都相对较小,为了进一步降低用户的使用成本,适应从小到大任意规模的时序存储需求,更好的赋能上层的应用监控、物联网类 SaaS 平台服务,未来 Lindorm 将会沿着多租户 Serverless 服务模式持续演进,提升弹性能力。

5 .边云同步

随着 IoT 技术的发展,边缘计算需求日益明显,在智能家居、工业工控、智慧园区、交通大脑等场景,考虑到网络带宽成本等原因,数据通常需要先就近本地存储,并周期性的同步到云端进行进一步分析处理。为了方便边缘侧的部署,Lindorm TSDB 支持边缘轻量级部署的版本,并支持数据全量、增量同步到云端,形成边云一体化的解决方案。

▌时序存储解决方案

1.物联网设备数据存储

Lindorm TSDB 是物联网设备运行数据存储的最佳选择,无缝与阿里云 IoT 平台、DataHub、Flink 等进行连接,极大的简化物联网应用开发流程。例如通过 Lindorm TSDB,你可以收集并存储智能设备的运行指标,通过自带的聚合计算引擎或BI类工具进行智能分析,深入了解设备运行状态。

2 .工业边缘时序存储

Lindorm TSDB 边缘版非常适合工业互联网场景,在边缘侧轻量化输出,与工业设备就近部署,同时支持将数据同步到 Lindorm 云端。例如通过 Lindorm TSDB,你可以实时采集工业生产线设备的运行指标,对产线的运行状况进行分析及可视化,从而优化产线运行效能。

▌总结

从互联网&大数据时代的分布式,到云计算、5G/IoT时代的云原生多模,业务驱动是Lindorm不变的演进原则。面对资源按需弹性和数据多样化处理的新时代需求,Lindorm以统一存储、统一查询、多模引擎的架构进行全新升级,并借助云基础设施红利,重点发挥云原生弹性、多模融合处理、极致性价比、企业级稳定性的优势能力,全力承载好经济体内部和企业客户的海量数据存储处理需求。

Lindorm TSDB 时序引擎面向物联网、工业物联网监控等领域的时序数据存储需求,全面拥抱云原生,并充分利用云原生基础设施,定制时序存储引擎,构建海量低成本的时序数据存储与处理能力,提供边云一体化的时序存储解决方案。未来 Lindorm 引擎将继续在弹性伸缩、低成本海量存储、多模融合、时序流计算等方向持续突破,构建万物互联的数据底座。

往期推荐

1、HarmonyOS 到底是不是Android套壳?

2、5G将是一个彻底失败的通信技术吗?

3、AWS IoT 物联网平台 MQTT 通讯模式

4、IoT平台如何实现 100万/秒消息广播?

5、无GPS模块,IoT设备如何定位?

6、 IoT物联网 4 本好书推荐

IoT 物联网海量时序数据存储最佳实战相关推荐

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

    引言 随着近几年物联网的发展,时序数据迎来了一个不小的爆发.为了存储这些时序数据,各大企业纷纷推出自己的时序数据库. Tablestore作为阿里云自研的NoSQL多模型数据库,能够提供海量结构化数据 ...

  2. 药品监管系统架构揭秘:海量溯源数据存储与查询...

    前言 在刚刚过去的2018年,"毒疫苗"事件再次触及了大众的敏感神经,因为十年前的"毒奶粉"事件还历历在目.我们急需创建一个全国性的药品(食品)监控追踪体系.与 ...

  3. 药品监管系统架构揭秘:海量溯源数据存储与查询

    前言 在刚刚过去的2018年,"毒疫苗"事件再次触及了大众的敏感神经,因为十年前的"毒奶粉"事件还历历在目.我们急需创建一个全国性的药品(食品)监控追踪体系.与 ...

  4. 海量时序数据低成本存储架构设计

    导读 近些年来得益于传感器技术.无线网络技术.云计算和人工智能技术的发展,物联网的基础设施日益完善,并应用到了新能源.智能家居.车联网.智慧工业等众多领域中,实现了"人与物".&q ...

  5. Netflix如何设计一个能满足5倍增长量的时序数据存储新架构?

    2016年1月,Netflix在全球范围内扩展业务.越来越多的会员.越来越多的语言和越来越多的视频回放将时间序列数据存储架构扩展到了它的临界点(详见第1部分文章<Netflix实战指南:规模化时 ...

  6. 时序数据库技术体系-时序数据存储模型设计

    本文引用自: http://hbasefly.com/2017/11/19/timeseries-database-2/ 作者对时序数据库有很多的研究,其博客发表有多篇相关文章. 本人最近在学习时序数 ...

  7. IoT物联网海量设备监控运维的挑战和实现方案

    随着大量物联网场景开始涌现,海量碎片化设备和巨量时序数据给物联网平台带来了一系列新的要求和新的技术挑战. 监控运维的技术挑战 灵活多变的监控需求 物联网平台监控场景面临的是上亿级别的海量设备,相比传统 ...

  8. 基于云上分布式NoSQL的海量气象数据存储和查询方案

    前言 气象数据是一类典型的大数据,具有数据量大.时效性高.数据种类丰富等特点.气象数据中大量的数据是时空数据,记录了时间和空间范围内各个点的各个物理量的观测量或者模拟量,每天产生的数据量常在几十TB到 ...

  9. mysql 轨迹数据存储_基于Tablestore实现海量运动轨迹数据存储-阿里云开发者社区...

    前言 现在越来越多的人都开始关心自己的运动数据,比如每日的计步.跑步里程.骑行里程等.运动APP与运动类的穿戴设备借助传感器.地图.GPS定位等技术,收集好运动数据以后,通过与互联网社交功能结合,产生 ...

最新文章

  1. 独家揭秘!阿里大规模数据中心的性能分析
  2. 51单片机中将变量、数组、函数设置在固定位置,定位到绝对地址
  3. 【数字信号处理】卷积编程实现 ( Matlab 卷积和多项式乘法 conv 函数 | 使用 matlab 代码求卷积并绘图 )
  4. Java 面试经典题解析:谈谈你对 Java 平台的理解?
  5. org.apache.poi.openxml4j.exceptions.InvalidOperationException: Can't open the specified file
  6. Treap原理和实现方法
  7. 【渝粤教育】 国家开放大学2020年春季 2246社会工作概论 参考试题
  8. ubuntu14.04配置caffe
  9. python需要什么包装_python学习之包装与授权
  10. WordPress广告管理插件Adning Advertising1.5.8汉化版
  11. centos7环境下搭建storm集群
  12. ZR_DJYVP2阻燃型计算机电缆,阻燃计算机电缆ZR-DJYVP 1*3*1.5
  13. Pycharm中如何pip下载包更快
  14. Centos8安装docker及AWVS
  15. 按键精灵---大漠完美注册
  16. Python再次拿第一,我一点都不意外,只是有些事情并非人人都看得清楚
  17. “脚本小子”和真正黑客的区别是什么?
  18. 如何用控制台cmd打开你的c++程序
  19. 墨画子卿第三章第9节:是一个人
  20. win 7系统(64位)安装包

热门文章

  1. LAC:location area code 位置区码
  2. 【网络词典】端口大全
  3. YSDK(应用宝)最新版本接入的坑
  4. 东方财富网页API接口跟踪当日热门板块资金流向,便于打板选股
  5. 会计数的小跳绳,室内也能愉快健身
  6. Bugzilla与BugFree区别与比较
  7. Android最佳实践之UI
  8. CF 1716 C. Robot in a Hallway 思维 2000
  9. python控制苹果手机流量_配置ubunto 流量使用限制 python 实现简单 http server
  10. hualinux 进阶 1.7:kubeadm1.19搭建k8s群集 (最详细的手把手版)