当前位置: 首页 > web >正文

时序数据库IoTDB如何快速高效地存储时序数据

一、IoTDB 1.0新架构介绍

时序数据库IoTDB的新架构旨在实现两个主要目标:在资源充足的场景下提供无上限的服务潜力,以及在资源有限的场景下提供最佳选择。新架构的系统目标包括:

  1. 支持多模式‌:同时支持单机模式和分布式模式。
  2. 大容量‌:可管理上亿设备和测点,数据量无上限。
  3. 高可用性‌:能够容忍部分节点失效,实现系统高可用。
  4. 高扩展性‌:随时进行集群扩容,平滑过渡到更大规模的集群。
  5. 高性能‌:写入吞吐达到数千万点每秒。
  6. 可观测性‌:对系统集群的核心性能进行监控。

IoTDB集群包括两个角色:

  • ConfigNode‌:管理集群节点和分区表信息,负责任务调度和负载均衡。
  • DataNode‌:负责数据存储和查询,管理时间序列数据和元数据,MPP计算引擎运行在DataNode之上。

架构还包括与Spark、Flink、RocketMQ等大数据生态的对接接口。

部署模式包括:

  • 单机模式‌:适用于对扩展性和高可用性要求不高,但对性能要求非常高的用户。
  • 分布式模式‌:包括高可用、高性能和强一致性模式,适用于有高度扩展性和高可用需求的用户。

二、时间序列数据文件存储格式TsFile

TsFile是IoTDB自研的文件数据结构,磁盘占用空间相比InfluxDB可降低85%。

TsFile的数据存储结构

  • ChunkGroup‌:代表设备一段时间的数据存储块。
  • Chunk‌:代表物理量一段时间的数据,分为TSChunk(时间和值都在同一个Chunk中)、TimeChunk(时间和值分开存储)。
  • Page‌:代表物理量一段时间的数据,多个Page可以组合成一个Chunk。

索引结构

  • 序列内索引‌:分为Page级、Chunk级和文件级,用于快速过滤数据块,减少查询时的IO和物化。
  • 序列间索引‌:在TsFile尾部,分为设备层、测点层,用于快速定位具体需要查询的序列。

数据类型和压缩方式

TsFile支持多种数据类型和编码压缩方式,包括INT32、INT64、FLOAT、DOUBLE等,以及TS_2DIFF、SPRINTZ等新的编码算法。二次压缩默认使用LZ4算法,还支持GZIP、ZSTD等算法。

死区处理算法SDT

通过丢掉一些不重要的、重复的点,实现极致压缩。

加载外部TsFile功能

在资源受限的场景下,可以通过TsFile的API直接写入数据,再通过SQL命令加载到IoTDB集群中。

三、IoTDB存储引擎架构IoTLSM

IoTLSM存储引擎架构包括写前日志WAL、顺乱序数据判断机制、内存缓冲区、顺序空间和乱序空间等部分。

分离存储流程

  • 顺序数据‌:直接写到数据空间内。
  • 乱序数据‌:写到乱序数据空间,后台进行合并。

合并机制

  • 空间内合并‌:减少查询IO,提升索引速度,优化文件系统。
  • 跨空间合并‌:将乱序空间内的磁盘文件合并到顺序空间内,提升乱序数据查询效率。

内存数据管理

使用内存对象池Array Pool管理内存存储单元,减少内存对象的初始化和垃圾回收过程,支持数据类型动态调整。

http://www.xdnf.cn/news/9484.html

相关文章:

  • 芯科科技推出首批第三代无线开发平台SoC,高度集成的解决方案推动下一波物联网实现突破
  • 国产化Excel处理组件Spire.XLS教程:如何使用 C# 将 Excel(XLS 或 XLSX)文件转换为 PDF
  • 如何在网页中嵌入UE/Unity/WebGL程序,并与网页端通信
  • 第 85 场周赛:矩阵重叠、推多米诺、新 21 点、相似字符串组
  • CMake指令:source_group()
  • 【数据分析】特征工程-特征选择
  • Git 使用规范
  • 关于git的使用流程
  • 2025年中国电商618年中大促策略分析:存量博弈与生态重构
  • 深度 |推动公共数据按需有序安全流动
  • mock库知识笔记(持续更新)
  • 如何解决网站服务器的异常问题?
  • 班翎流程平台 | 流程变量赋值事件,简化流程配置,灵活构建流程
  • 8.8 Primary ODSA service without ODSA Portal
  • LLaDa——基于 Diffusion 的大语言模型 打平 LLama 3
  • DM达梦数据库开启SQL日志记录功能
  • java导入excel
  • 2025超全面Redis笔记!!!
  • Redis缓存设计与性能优化
  • 题目 3316: 蓝桥杯2025年第十六届省赛真题-数组翻转
  • mac 下安装Rust Toolchain(Nightly)
  • Redis--缓存穿透与缓存雪崩详解及解决方案
  • Cloudera Manager 学习笔记
  • 程序的 “内存舞台”:深入解析虚拟地址空间与内存管理
  • 3D Tiles高级样式设置与条件渲染(4)
  • 8Manage PM、Trello与飞书对比评测:哪款项目管理软件更适合企业使用?
  • 《仿盒马》app开发技术分享-- 确认订单页(数据展示)(端云一体)
  • 程序开发的 “瑞士军刀”:深入解析库文件的原理与实践
  • 六大常用查找算法对比分析
  • 电气行业PLM应用案例:国产PLM助力山西氪安研发转型