网站开发简历项目经验,秦皇岛汽车网站制作,网站做游客留言做,网站怎么找简介#xff1a; 随着 IoT 技术的快速发展#xff0c;物联网设备产生的数据呈爆炸式增长#xff0c;数据的总量#xff08;Volume#xff09;、数据类型越来越多#xff08;Variety#xff09;、访问速度要求越来越快#xff08;Velocity#xff09;、对数据价值…简介 随着 IoT 技术的快速发展物联网设备产生的数据呈爆炸式增长数据的总量Volume、数据类型越来越多Variety、访问速度要求越来越快Velocity、对数据价值Value的挖掘越来越重视。物联网产生的数据通常都具备时间序列特征时序数据库是当前针对物联网 IoT、工业互联网 IIoT、应用性能监控 APM 场景等垂直领域定制的数据库解决方案本文主要分析物联网场景海量时序数据存储与处理的关键技术挑战及解决方案。 作者 | 林青 来源 | 阿里技术公众号
随着 IoT 技术的快速发展物联网设备产生的数据呈爆炸式增长数据的总量Volume、数据类型越来越多Variety、访问速度要求越来越快Velocity、对数据价值Value的挖掘越来越重视。物联网产生的数据通常都具备时间序列特征时序数据库是当前针对物联网 IoT、工业互联网 IIoT、应用性能监控 APM 场景等垂直领域定制的数据库解决方案本文主要分析物联网场景海量时序数据存储与处理的关键技术挑战及解决方案。 一 时序数据存储挑战
1 典型时序应用场景
随着 5G/IoT 技术的发展数据呈爆炸式增长其中物联网 (IoT) 与应用性能监控 (APM) 等是时序数据最典型的应用领域覆盖物联网、车联网、智能家居、工业互联网、应用性能监控等常见的应用场景海量的设备持续产生运行时指标数据对数据的读写、存储管理都提出了很大的挑战。 2 时序数据的特征
在典型的物联网、APM 时序数据场景里数据的产生、访问都有比较明显的规律有很多共同的特征相比当前互联网典型的应用特征有比较大的区别。
数据按时间顺序产生一定带有时间戳海量的物联网设备或者被监控到应用程序按固定的周期或特定条件触发持续不断的产生新的时序数据。数据是相对结构化的一个设备或应用产生的指标一般以数值类型绝大部分、字符类型为主并且在运行过程中指标的数量相对固定只有模型变更、业务升级时才会新增/减少/变更指标。写多读少极少有更新操作无需事务能力支持在互联网应用场景里数据写入后往往会被多次访问比如典型的社交、电商场景都是如此而在物联网、APM 场景数据产生存储后往往在需要做数据运营分析、监控报表、问题排查时才会去读取访问。按时间段批量访问数据用户主要关注同一个或同一类类设备在一段时间内的访问趋势比如某个智能空调在过去1小时的平均温度某个集群所有实例总的访问 QPS 等需要支持对连续的时间段数据进行常用的计算比如求和、计数、最大值、最小值、平均值等其他数学函数计算。近期数据的访问远高于历史数据访问规律明显历史数据的价值随时间不断降低为节省成本通常只需要保存最近一段时间如三个月、半年的数据需要支持高效的数据 TTL 机制能自动批量删除历史数据最小化对正常写入的影响。数据存储量大冷热特征明显因此对存储成本要求比较高需要有针对性的存储解决方案。
结合时序的特征要满足大规模时序数据存储需求至少面临如下的几个核心挑战
高并发的写入吞吐在一些大规模的应用性能监控、物联网场景海量的设备持续产生时序数据例如某省域电网用电测量数据9000万的电表设备原来每个月采集一次后续业务升级后15分钟采集一次每秒的时序数据点数达到数百万甚至千万时间点需要数十到上百台机器的集群规模来支撑全量的业务写入时序数据存储需要解决大规模集群的横向扩展高性能平稳写入的需求。高效的时序数据查询分析在典型的监控场景通常需要对长周期的数据进行查询分析比如针对某些指标最近1天、3天、7天、1个月的趋势分析、报表等而在物联网场景有一类比较典型的断面查询需求例如查询某个省指定时间所有电表的用电量量明细数据查询某个品牌空调的某个时间的平均运行温度这些查询都需要扫描大量的集群数据才能拿到结果同时查询的结果集也可能非常大时序数据存储需要支持多维时间线检索、并具备流式处理、预计算等能力才能满足大规模 APM、IoT 业务场景的典型查询需求并且针对时序大查询要最小化对写入的影响。低成本的时序数据存储某典型的车联网场景仅20000辆车每小时就产生近百GB的车辆指标数据如果要保存一年的运行数据就需要PB级的数据存储规模由于数据规模巨大对存储的低成本要求很高另外时序数据的冷热特征明显。时序数据存储需要充分利用好时序数据量大、冷热访问特征明显、做好计算、存储资源的解耦通过低成本存储介质、压缩编码、冷热分离、高效 TTL、Servereless 等技术将数据存储成本降低到极致。简单便捷的生态协同在物联网、工业互联网等场景时序数据通常有进一步做运营分析处理的需求在很多情况下时序数据只是业务数据的一部分需要与其他类型的数据组合来完成查询分析时序数据存储需要能与生态 BI 分析工具、大数据处理、流式分析系统等做好对接与周边生态形成协同来创造业务价值。为了应对海量时序数据的存储与处理的挑战从2014年开始陆续有针对时序数据存储设计的数据库诞生并且时序数据库的增长趋势持续领先时序数据库结合时序数据的特征尝试解决时序数据存储在高写入吞吐、横向扩展、低成本存储、数据批量过期、高效检索、简单访问与时序数据计算等方面面临的挑战。
3 业界时序数据库发展
时序数据库经过近些年的发展大致经历了几个阶段
第一阶段以解决监控类业务需求为主采用时间顺序组织数据方便对数据按时间周期存储及检索解决关系型数据库存储时序数据的部分痛点典型的代表包括 RDDTool、WishperGraphite等这类系统处理的数据模型比较单一单机容量受限并且通常内嵌于监控告警解决方案。第二阶段伴随大数据和Hadoop生态的发展时序数据量开始迅速增长业务对于时序数据存储处理扩展性方面提出更高的要求。基于通用可扩展的分布式存储专门构建的时间序列数据库开始出现典型的代表包括 OpenTSDB底层使用 HBase、KairosDB底层使用 Cassandra等利用底层分布式存储可扩展的优势在 KV 模型上构建定制的时序模型支持海量时序的倒排检索与存储能力。这类数据库的数据存储本质仍然是通用的 KV 存储在时序数据的检索、存储压缩效率上都无法做到极致在时序数据的处理支持上也相对较弱。第三阶段随着 Docker、Kubernetes、微服务、IoT 等技术的发展时间序列数据成为增长最快的数据类型之一针对时序数据高性能、低成本的存储需求日益旺盛针对时序数据定制存储的数据库开始出现典型的以InfluxDB 为代表InfluxDB 的 TSM 存储引擎针对时序数据定制支持海量时间线的检索能力同时针对时序数据进行压缩降低存储成本并支持大量面向时序的窗口计算函数InfluxDB 目前也是 DB Engine Rank 排名第一的时序数据库。InfluxDB 仅开源了单机版本高可用集群版仅在企业版和云服务的版本里提供。第四阶段随着云计算的高速发展云上时序数据库服务逐步诞生阿里云早在2017年就推出了 TSDB 云服务随后 Amazon、Azure 推出 Amazon TimeStream、Azure Timeseires Insight 服务InfluxData 也逐步往云上转型推出 InfluxDB 云服务时序数据库云服务可以与云上其他的基础设施形成更好的协同云数据库已是不可逆的发展趋势。
二 Lindorm TSDB 背后的技术思考
1 Lindorm 云原生多模数据库
为了迎接 5g/IoT 时代的数据存储挑战阿里云推出云原生多模数据库 Lindorm 致力于解决海量多类型低成本存储与处理问题让海量数据存得起、看得见。 Lindorm 支持宽表、时序、搜索、文件等多种模型满足多类型数据统一存储需求广泛应用于物联网、车联网、广告、社交、应用监控、游戏、风控等场景。其中 Lindorm TSDB 时序引擎提供高效读写性能、低成本数据存储、时序数据聚合、插值、预测等计算能力主要应用于物联网(IoT)、工业互联网IIoT、应用性能监控APM等场景。
2 Lindorm TSDB 核心设计理念
Lindorm TSDB 做为下一代时序数据库在架构升级过程中我们认为时序数据库的发展会有如下趋势
多模融合未来时序数据库与通用KV数据库、关系型数据库等的配合联系会越来越紧密例如在物联网场景设备元数据的存储、运行时数据的存储、业务类数据的存储通常会使用不同的数据模型来存储。云原生随着云计算的发展未来时序数据库的存储要基于云原生技术充分利用云上的基础设施形成相互依赖或协同进一步构建出时序存储的竞争力。时序原生未来时序数据库的存储引擎是针对时序数据高度定制化的保证高效的时序多维检索能力高写入吞吐及高压缩率支持冷热数据自动化管理。分布式弹性未来时序数据库要具备分布式扩展的能力应对大规模的时序数据库存储在时序的典型应用场景例如物联网、工业电网、监控、都有海量设备数据写入和存储的需求必须要做到弹性扩展通过分布式、Serverless 等技术实现规模从小到大的弹性伸缩。时序 SQL未来时序数据库的访问要支持标准 SQLor SQL Like 表达方式一方面使用上更加便捷降低数据库的使用门槛同时也能基于 SQL 提供更加强大并有时序特色的计算能力。云边一体未来时序数据库在边缘设备端不再是孤立的数据存储边缘侧会不断加深与云端协同形成一体化的时序存储解决方案。基于以上判断我们构建了云原生多模数据库 Lindorm支持宽表、时序、搜索、文件等多种常用模型解决物联网/互联网海量数据存储的常见需求其中 Lindorm TSDB 采用计算存储分离的架构充分利用云原生存储基础设施定制时序存储引擎相比业界的解决方案更具竞争力。
多模融合、统一存储Lindorm TSDB 引擎与宽表、搜索、文件等形成配合解决用户多类型数据的统一存储处理需求。云原生低成本存储计算存储分离Lindorm TSDB 引擎基于云原生分布式存储平 LindormStore提供高可靠的数据存储并支持弹性扩展提供标准型、性能型、容量型等多种存储形态满足不同场景的需求同时支持冷热数据一体化管理的能力。时序定制存储引擎Lindorm TSDB 引擎针对时序数据的特征定制基于 LSM Tree 结构的时序引擎在日志写入、内存组织结构、时序数据存储结构以及 Compaction 策略上都针对时序特征优化保证极高的写入吞吐能力。在引擎内部支持内置的预处理计算引擎支持对时序数据进行预降采样、预聚合来优化查询效率。多维数据分片、弹性伸缩Lindorm TSDB 引擎支持横向扩展通过对时间线进行 Hash 分片将海量时间线数据分散到多个节点存储在节点内部支持按时间维度进一步切分支持集群的无缝扩容同时也能解决云原生监控场景时间线膨胀的问题通过 Serverless 形态实现任意规模的弹性伸缩。定制时序 SQL 查询Lindorm TSDB 引擎提供时序 SQL 访问能力针对时序场景定制特色计算算子用户学习、使用成本低。边云同步一体化Lindorm TSDB 引擎提供轻量级边缘部署的版本解决边缘时序存储需求并支持边缘侧数据与云端无缝同步以便充分利用云上基础设施来进一步挖掘数据价值。
三 Lindorm TSDB 关键技术
1 时序定制存储引擎
Lindorm 基于存储计算分离架构设计以适应云计算时代资源解耦和弹性伸缩的诉求其中云原生存储分布式存储 Lindorm Store 为统一的存储底座向上构建各个垂直专用的多模引擎包括宽表引擎、时序引擎、搜索引擎、文件引擎。LindormStore 是面向公共云基础存储设施(如云盘、DBFS、OSS) 设计、兼容 HDFS 协议的分布式存储系统并同时支持运行在本地盘环境以满足部分专有云、专属大客户的需求向多模引擎和外部计算系统提供统一的、与环境无关的标准接口。
基于云原生分布式存储 LindomStoreLindorm 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你可以实时采集工业生产线设备的运行指标对产线的运行状况进行分析及可视化从而优化产线运行效能。 3 应用监控数据存储
Lindorm TSDB 非常适合应用监控数据存储无缝对接 Prometheus、Telegraf、ARMS 等监控生态提供针对监控指标的高效读写与存储同时提供聚合分析、插值计算等能力。例如通过 Lindorm TSDB你可以收集应用程序的 CPU、内存、磁盘等指标的使用情况并进行分析及可视化实时监测应用运行情况。 五 总结
从互联网大数据时代的分布式到云计算、5G/IoT时代的云原生多模业务驱动是Lindorm不变的演进原则。面对资源按需弹性和数据多样化处理的新时代需求Lindorm以统一存储、统一查询、多模引擎的架构进行全新升级并借助云基础设施红利重点发挥云原生弹性、多模融合处理、极致性价比、企业级稳定性的优势能力全力承载好经济体内部和企业客户的海量数据存储处理需求。
Lindorm TSDB 时序引擎面向物联网、工业互联网、应用性能监控等领域的时序数据存储需求全面拥抱云原生并充分利用云原生基础设施定制时序存储引擎构建海量低成本的时序数据存储与处理能力提供边云一体化的时序存储解决方案。未来 Lindorm 引擎将继续在弹性伸缩、低成本海量存储、多模融合、时序流计算等方向持续突破构建万物互联的数据底座。
原文链接 本文为阿里云原创内容未经允许不得转载。