- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 视频嵌入链接 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
IoTDB到Hadoop:工业物联网边云协同开源生态
工业物联网应用中机器产生的数据是工业大数据的主体,对存储、查询、分析都提出了新挑战。报告介绍了边、云场景下的数据管理与分析特点,并介绍了采用Apache开源生态中的Hadoop、IoTDB等项目解决边云数据协同存储、查询与分析的解决方案。
展开查看详情
1 . 从 IoTDB到 Hadoop: 工业物联网边云协同开源生态 清华大学 软件学院 大数据系统软件国家工程实验室 Apache IoTDB Team: Xiangdong Huang
2 .• Hadoop生态与工业物联网 • 从Apache Hadoop生态到Apache IoTDB • 从Apache IoTDB到Apache Hadoop生态 • Apache IoT 生态
3 .工业物联网应用:机器产生的时序数据是数据主体 文档 图纸 工业 大数据 模型 视频 气象 地理 环境 工业信息化数据 产业链跨界数据 机器设备数据 如何管好、用好机器产生的时序数据
4 .工业物联网时序数据存储需求 大规模时序数据的特点 占用空间极大 数据总吞吐量大 时序数据存储的需求 产生速度快且不间断 【全时全量】 保证数据全时全量存储 【高效写入】 ~300列车 保证数据库可以承受高吞吐写入 >3000测点 【紧凑存储】 200 ms采样 对数据进行有效压缩减少磁盘空间占用 7x24 大数据应用 每天4140亿数据点 -> 410G * 10byte
5 .工业物联网时序数据存储需求 排口有大量取值异常的 § 场景1:由于网络延迟、设备故障等原因数 采样点,例如PH值超 过10,000 据无法完全保序到达 § 场景2:由于设备故障、损坏等原因,在进 行分析等操作前需要对错误数据进行修正 § 场景3:清理过时数据或无效、无用数据 各种数据管理需求 该排口连续164天缺失 上报PH值 时序数据数据乱序操作的需求 数据库需要支持时间序列数据的乱序写入 数据库需要支持时间序列数据的批量更新 数据库需要支持时间序列数据的清理删除
6 .工业物联网时序数据查询需求 早高峰(7-9点)增加上行发车班次,减少下行发车班次 晚高峰(17-21点)增加下行发车班次,减少上行发车班次 多序列对齐比较 其他时间段运营班次存在压缩空间 ( join)
7 .工业物联网时序数据查询需求 内存 数据量 [1, 2, 0, 5.1, 3, …., 9, 1] 高维向量 算法效率 时序数据降采样 (聚合、上钻… OLTP/OLAP)
8 . 工业物联网应用需要在庞大的数据量上进行分析计算 • 风场选址:每轮仿真产生TB级文件,需要多轮仿真与分析 • 振动故障诊断:采样频率要求超过2k Hz 风场仿真图片来源于AIWind,网络
9 . 用Hadoop生态处理工业物联网问题 实时数据 HBase 批量数据 HDFS ORC/Parquet
10 . 用Hadoop生态处理工业物联网问题 工业物联网需要在数百TB、PB的数据上 进行分析和计算 实时数据 HBase 批量数据 HDFS ORC/Parquet Hadoop生态对工业物联网至关重要
11 .• Hadoop生态与工业物联网 • 从Apache Hadoop生态 (中的数据库部分)到Apache IoTDB • 从Apache IoTDB到Apache Hadoop生态 • Apache IoT 生态
12 . 刚才的解决方案中忽略了什么 • 性能/功能与成本的权衡 • 数据存储 • 数据查询 •工业物联网的参与对象 • 实体端、边、云
13 . 性能、功能与成本的权衡(存储) 性能 功能 ~300列车 • 不同设备类型,测点不同 >3000测点 200 ms采样 • 相同设备类型、不同实例, 7x24 测点不同 • 相同设备类型、相同实例、 不同时间段,测点不同 • 相同设备类型、相同实例、 >=500万数据点每秒的写入性能 一个时间段内,各测点采集时间对不齐
14 . 性能、功能与成本的权衡(查询) 任意时间区间的任意粒度的降采样 相似子序列检索、MOTIF检索 时间序列空值填充、序列分段
15 . 工业物联网的参与对象 新需求: l 端、边上需要管理数据,但没有多机资源 l 端、边的数据又需要汇集到云上 人 端 边 云 人 人 端 边
16 . 时序数据管理 (超高性能、超多序列) • 单表列数上限 基于关系数据库 • MySQL InnoDB 为1017列 关 基于PG开发的插件 系 •时序数据自动分区 • 单表行数不易过多 数 •查询计划做优化 原生时序数据库 • 小于1000万行 据 •定制并行查询 库 时 随着导入时间的增加 • 水平、垂直分表;分库 序 导入速率不断下降 基于LSM机制的时序库 数 基于键值数据库 •专属文件结构 • 可管理海量条时间序列 据 •专属查询优化 键 库 • 查询受限 值 基于Hbase/Cassandra • 按时间维度的查询 数 一些工业场景下 据 •时序分区键 性能下降 • 按值维度的查询 •定时任务构建索引 库 • 多序列的时间对齐查询 压缩不友好,查询不友好
17 .面向工业互联网的高性能轻量级时序数据库 Apache IoTDB 始于中国高校、历练于工业用户、 成长成熟于开源社区 – 工业领域千万条量级时间序列管理 – 单节点万亿数据点管理 – 单节点每秒千万点写入性能 – 单节点数十TB级时间序列数据管理 2018年11月进入Apache孵化器 – 支持Hadoop、Spark等 2020年9月毕业成为Apache顶级项目 用户已覆盖德国、美国、中国一批工业互联网厂商 – 支持Matlab、Grafana等 和智能制造厂商
18 .架构 20
19 .SQL in IoTDB Set Storage Group SET STORAGE GROUP TO root.ln; Create Timeseries CREATE TIMESERIES root.ln.wf01.wt01.temperature WITH DATATYPE=FLOAT, ENCODING=RLE Insert Data INSERT INTO root.ln.wf02.wt02(timestamp, status) VALUES (1, true); Delete Data DELETE FROM root.ln.wf02.wt02.status WHERE time < 1000; Query Data (Filter, Aggregation, Group by time interval) SELECT count(status), max_value(temperature) FROM root.ln.wf01.wt01 GROUP BY (1h, [2017- 11-03T00:00:00, 2017-11-03T23:00:00]);
20 .产品形态:灵活适配“端-边-云”计算环境 部署在嵌入式终端设备的时序 部署在工控机等边缘计算设备 部署在云端数据中心的 “数据文件” 的时序“数据库” 时序“数据仓库” 终端(端) 场控(边) 数据中心(云) 为时序数据而生的zip文件 高效丰富的时间序列查询引擎 与大数据分析框架无缝集成 支持高性能写入,高压缩比存 提供增删改查,以及聚合查询 支持时序数据处理,挖掘分析 储,支持简单查询 时序对齐等高级功能 与机器学习
21 .生态集成 Analysis with Matlab Big data analysis Visualization (small data set) (Manual data explore) 21
22 . 更完整的集成生态 Data Application Data Management Data collection on Edge Data Processing Data Analysis
23 .• Hadoop生态与工业物联网 • 从Apache Hadoop生态 (中的数据库部分)到Apache IoTDB • 从 Apache IoTDB 到 Apache Hadoop 生态(中的分析计算部分) • Apache IoT 生态
24 .时序数据分析(性能) analysis insertion Database ETL • 查询友好 • 分析友好 • 写入友好 KairosDB:导出每辆车每天3000种的数据:1小时 气象大数据系统:大量时间花费在数据获取上 批量使用历史数据,漫长的ETL
25 .直接将数据存储成为分析友好的结构:TsFile 充分利用MapReduce、Spark等进行更为复杂的分析计算 25
26 . 该架构仍然需要拷贝数据到HDFS上,怎么解决? 直接将数据存在HDFS上(仅适用于云端部署) 可扩展节点数 现状:查询性能有较大损失。
27 .• Hadoop生态与工业物联网 • 从Apache Hadoop生态 (中的数据库部分)到Apache IoTDB • 从 Apache IoTDB 到 Apache Hadoop 生态(中的分析计算部分) • Apache IoT 生态
28 . Apache IoT生态 数据 IoT工具箱 收集 流程 数 数 据 据 采 管 集 理 操作 系统 边缘侧 (edge) 云侧 (cloud)
29 .What is PLC4X? The universal protocol adapter for Industrial IoT PLC4X is a set of libraries for communicating with industrial programmable logic controllers (PLCs) using a variety of protocols but with a shared API. Modbus S7 OPC UA AB-ETH … plc4x.apache.org