IoTDB的前世今生与技术细节揭秘-黄向东

展开查看详情

1.IoTDB的前世今生 与技术细节揭秘 2019-01-04 SPEAKER 演讲

2.黄向东 清华大学 软件学院 大数据系统软件国家工程实验室

3. 目录/Contens 1.工业场景下的时序数据库需求 2.从Cassandra到IoTDB 3. IoTDB的单机千万点写入性能实现

4.工业场景下的时序 数据库需求

5.第四次工业革命来袭,大数据成为关键生产资料 德国工业4.0 中国工业互联网 美国工业互联网 数据的整合分析和使用是关 工业互联网本质: 先进的数据分析能力 键能力 数据+模型 是关键要素

6.机器设备产生的时序数据构成了工业大数据的主体 文档 图纸 工业 大数据 模型 视频 气象 地理 环境 工业信息化数据 产业链跨界数据 机器设备数据

7.时间序列数据普遍存在 无人驾驶 穿戴设备 在设备远程运维、数字画像、健康评估、故障预测、备件调度、生产工艺控制与改进等多方面有着重要的应用前景

8.工业场景下时间序列采集与应用 CPU insertion query MQ Database Network analysis Network save data locally 数据赋能工业

9.How to Manage Time Series Data insertion query Network MQ Database analysis Network save data locally

10.需求与挑战:提升工业时序数据利用率,从有效存储开始 大规模时序数据的特点 占用空间极大 数据总吞吐量大 时序数据存储的需求 产生速度快且不间断 【全时全量】 保证数据全时全量存储 【高效写入】 保证数据库可以承受高吞吐写入 【紧凑存储】 对数据进行有效压缩减少磁盘空间占用 超过20,000个风机 一个风机约有120~510传感器 采集频率从0.00167 Hz 到 50Hz 不等

11.需求与挑战:支撑复杂工业场景,克服领域技术难点 排口有大量取值异常 § 场景1:由于网络延迟、设备故障等原因数 的采样点,例如PH 据无法完全保序到达 值超过10,000 § 场景2:由于设备故障、损坏等原因,在进 行分析等操作前需要对错误数据进行修正 § 场景3:清理过时数据或无效、无用数据 该排口连续164天缺 失上报PH值 时序数据数据乱序操作的需求 数据库需要支持时间序列数据的乱序写入 数据库需要支持时间序列数据的批量更新 数据库需要支持时间序列数据的清理删除

12.时序数据管理 (超高性能、超多序列) • 单表列数上限 基于关系数据库 • MySQL InnoDB 为1017列 关 基于PG开发的插件 系 • 单表行数不易过多 数 •时序数据自动分区 •查询计划做优化 原生时序数据库 • 小于1000万行 据 •定制并行查询 库 • 水平、垂直分表;分库 时 随着导入时间的增加 序 导入速率不断下降 基于LSM机制的时序库 数 据 基于键值数据库 •专属文件结构 • 可管理海量条时间序列 •专属查询优化 键 库 • 查询受限 值 基于Hbase/Cassandra • 按时间维度的查询 数 一些工业场景下 据 •时序分区键 性能下降 • 按值维度的查询 库 •定时任务构建索引 • 多序列的时间对齐查询 压缩不友好,查询不友好

13.时序数据分析(需求一) 早高峰(7-9点)增加上行发车班次,减少下行发车班次 晚高峰(17-21点)增加下行发车班次,减少上行发车班次 多序列对齐比较 其他时间段运营班次存在压缩空间

14.时序数据分析(需求二) 时间序列HMM分割算法 中等风没满转 超大风满转 准确计算各站点人流量 大风满转 超低风0转 低风低转速(下降) 准确计算各状态下的统计值 低风低转速(稳定) 时间序列分割

15. 时序数据分析(需求三) 内存 数据量 [1, 2, 0, 5.1, 3, …., 9, 1] 高维向量 算法效率 时序数据降采样

16.时序数据分析(需求四) Motif 频繁时序模式挖掘

17.时序数据分析(性能) analysis insertion Database ETL • 查询友好 • 分析友好 • 写入友好 KairosDB:导出每辆车每天3000种的数据:1小时 气象大数据系统:大量时间花费在数据获取上 批量使用历史数据,漫长的ETL

18.需求与挑战:面向工业应用场景,提升数据处理能力 高通量写入 高效压缩 指定查询过滤条件 查询延迟低、时效高 按时间、设备、传感器类型等过滤 TB 级数据百毫秒查询 聚合查询数据 模式匹配 十亿点数数十毫秒查询 Say No to ETL 序列对齐查询 时序分割 多序列按时间维度对齐 序列填充查询 数字水印 空值填充

19.从Cassandra到IoTDB

20.故事从2012年说起… 三一重工,20万设备在线,采集了三年数据,Oracle吃不消 2019/6/19 d1:s1: 01:1 02:1 10:1 … 1560900000 d1:s1: 2019/6/20 1561000000 01:1 02:1 10:1 … d1:s2: 2019/6/19 1560900000 01:1 02:1 10:1 … D2:s2: 2019/6/20 1561000000 01:1 02:1 10:1 … 5台Cassandra,撑起一片天。 性能一般般。。。

21.2015年,基于Cassandra研发分布式时序数据库 2019/6/19 d1:s1: 01:1 02:1 10:1 … 1560900000 d1:s1: 2019/6/20 1561000000 01:1 02:1 10:1 … d1:s2: 2019/6/19 1560900000 01:1 02:1 10:1 … D2:s2: 2019/6/20 1561000000 01:1 02:1 10:1 … 客户机 查询/写入引擎 Cassandra 受制于人

22.撸起袖子加油干 高效存储数据 实时读写数据 分布式HTAP

23.面向工业互联网的高性能轻量级时序数据库 清华数为工业互联网时序数据库 Apache IoTDB 中国高校唯一Apache基金会项目 – 工业领域千万条量级时间序列管 – 单节点万亿数据点管理 – 单节点数十TB级时间序列数据管理 – 支持Hadoop、Spark、Matlab、 Grafana等多种生态

24.Apache IoTDB的功能特点 收集 应用 存储 学习 处理 覆盖数据全生命周期 高效的数据持久化 丰富/低延迟的数据查询 扩展的时间序列操作 与现有生态系统集成 多种服务形式 • 高速写入 终端 • 快速过滤数据 • 时序分段 • MatLab • 每秒3000万点(单机) 本地控制器 • TB级数据百毫秒 • 时序表达 • Spark 数据中心 • 高压缩比 查询 • 子序列匹配 • MapReduce 灵活部署 • 1.37bits/点 [1] 开箱即用 • 聚合查询数据 • 时频转换 • Grafana 支持数据实时写入/写出 • 有损和无损压缩 • 十亿点数十毫秒 • 可视化 • Kafka 支持便捷友好的分析 • 支持百万时间序列 查询

25.产品形态:灵活适配“云-网-端”计算环境 部署在嵌入式终端设备的时 部署在工控机等边缘计算设 部署在云端数据中心的 序“数据文件” 备的时序“数据库” 时序“数据仓库” 终端 场控 数据中心 为时序数据而生的zip文件 高效丰富的时间序列查询引 与大数据分析框架无缝集成 支持高性能写入,高压缩比 擎 支持时序数据处理,挖掘分 存储,支持简单查询 提供增删改查,以及聚合查 析与机器学习 询时序对齐等高级功能

26.Integration with other systems Visualization Analysis with Matlab Big data analysis (Manual data explore) (small data set) 26

27.技术架构 - / / / / - A 国际领先技术 - 高效聚合索引 A - (CKIM 2016) - / / - 时序模式检测 - B - / / (WAIM 2018) / - - 子序列匹配 (ICDE 2019) / - … - / / / 20

28.IoTDB的单机千万点 写入性能

29.简单理解IoTDB数据Schema Storage Group, Device, Measurement/Metric, <Time,Value>

StreamNative 是一家围绕 Apache Pulsar 和 Apache BookKeeper 打造下一代流数据平台的开源基础软件公司。秉承 Event Streaming 是大数据的未来基石、开源是基础软件的未来这两个理念,专注于开源生态和社区的构建,致力于前沿技术。