1、主讲人:苏宇荣目录为什么我们需要流处理框架?工业流处理场景的特点、现有解决方案的痛点什么是 IoTDB 流处理框架?为工业流处理而生的轻量级库内流处理框架技术实践:航空航天从飞机到卫星,比高更高技术实践:油气管道多级流转,轻松自在01工业流处理场景的特点、现有解决方案的痛点为什么我们需要流处理框架?工业流处理场景与特点跨网闸同步降采样同步实时告警数据库内数据库间数据库外特点:数据推送服务+简单状态计算SSL 加密同步双活集群流式计算实时聚合客户端数据订阅消息队列数据推送服务缓存更新服务历史数据备份导出数据写回现有解决方案的痛点-以数据同步场景为例时序数据库时序数据库通用计算引擎“开心”全家桶端
2、侧完全不适用边侧很难以适用软件架构视角运维人员视角组件繁多学习成本高开发人员视角高射炮打蚊子占资源多稳定性差需要二次定制开发调优困难数据在多个进程间经历多次读写转发,上限很低现有解决方案的痛点-以数据同步场景为例时序数据库时序数据库同步专用企业级工具端侧完全不适用边侧很难以适用软件架构视角运维人员视角组件繁多学习成本高开发人员视角高射炮打蚊子占资源多稳定性差需要二次定制开发调优困难数据在多个进程间经历多次读写转发,上限很低产品形态进化不彻底架构不解决根本问题02为工业流处理而生的轻量级库内流处理框架什么是 IoTDB 流处理框架?嵌入式、分布式的库内流处理框架数据推送服务简单状态计算可观测性提
3、供接口调用时间、事件堆积数量等 10+监控指标,支持可视化观测性能近存储计算,可最小 IO 与CPU 代价利用数据进行计算,可对核心场景充分优化可拓展性提供 Java 开放编程接口,支持用户自定义逻辑插件开发,支持用户插件热加载可用性支持分布式高可用,计算任务可容忍副本失效等可用性问题容错性支持进度记录、出错自动重试、断点重算等特性可靠性提供 at-least-once 语义的计算能力流处理任务与流处理引擎流处理任务(Pipe)被抽象为 Source、Processor、Sink 三阶段各阶段逻辑由独立的插件表达实现各阶段插件均支持自定义开发用户按需组合各种插件,灵活实现不同的功能流处理引擎I
4、n-process:IoTDB 进程内的独立模块三阶段流水线(Pipeline)执行流任务各阶段的插件逻辑执行相互独立,互不影响,各阶段间采用队列连接各阶段任务具备不同的负载特征,流水线可将CPU 密集/IO 密集任务剥离,提升运行效率流处理引擎IoTDB流处理任务 Pipe流处理任务 PipeSourceProcessorSink存储引擎使用 SQL 定义流处理任务流处理任务 exampleSourceiotdb-sourceProcessordo-nothing-processorSinkiotdb-thrift-sinkCREATE PIPE exampleWITH SOURCE(sou
5、rce =iotdb-source,source.pattern=root.xxx,source.start-time=2023.12.03T09:00:00+08:00,source.end-time=2023.12.03T17:00:00+08:00,)WITH PROCESSOR(processor =do-nothing-processor,)WITH SINK(sink =iotdb-thrift-sink,sink.node-urls =127.0.0.1:6667;127.0.0.1:6668)自定义插件编程接口提供 Java 编程接口,用户可自定义三阶段插件逻辑Source 数
6、据抽取插件Processor 数据处理插件Sink 数据发送插件支持 SQL 热装载、热卸载用户自定义插件支持远程播送(OTA,On-The-Air)插件装载信息可指导 IoTDB 从资源服务器获取、装载并启动插件,无需工程师现场运维CREATE PIPEPLUGIN exampleAS com.timecho.iotdb.pipe.ExampleProcessorUSING URI 典型应用:IoTDB 端到端数据同步1.轻量便捷、开箱即用无需额外部署任何组件SQL 一键配置一键启动2.发送端、接收端支持任意部署模式单机、分布式任意共识协议、任意副本数3.同步规则可灵活配置时间范围选择:全量