12 月 3 日,2023 IoTDB 用户大会在北京成功举行,收获强烈反响。本次峰会汇集了超 20 位大咖嘉宾带来工业互联网行业、技术、应用方向的精彩议题,多位学术泰斗、企业代表、开发者,深度分享了工业物联网时序数据库 IoTDB 的技术创新、应用效果,与各行业标杆用户的落地实践、解决方案,并共同探讨时序数据管理领域的行业趋势。
我们邀请到湖南大唐先一科技有限公司主任架构师舒畅参加此次大会,并做主题报告——《IoTDB 在发电领域的应用实践》。以下为内容全文。
目录
大唐先一智慧电厂业务概况
大唐先一物联网平台架构
IoTDB 在发电领域场景的实践
大唐先一物联网平台未来能力展望
各位来宾下午好,我是大唐先一的舒畅,很高兴来到 2023 年 IoTDB 的用户大会。我们跟清华、跟 IoTDB 结缘,我回想起来大概是 2019 年,当时我们在做一个国家能源的项目,相当于要把各个电厂或者其他的节能环保的数据要上传到我们的云平台上去。当时在场站端需要有一个嵌入式的物联网平台,我们做了很多选型,后面找到乔(嘉林)博士,双方合作,这个项目在当时应该是做得非常快,也是做得比较成功的一个项目。后来断断续续,我们又在来往,以及在其他的一些行业领域也做了很多合作。我今天上午也听了各个专家的汇报,以及刚才听了 IoTDB 用户的汇报,感觉我们当时的选择应该说是很正确的,我们不是一个人在独行,感觉这个生态是越做越大了。
今天到这里来,主要是给大家汇报几方面:第一就是我们大唐先一本身的智慧电厂的业务情况,以及我们现在基于 IoTDB 构建的物联网平台的架构。然后因为 IoTDB 在大唐应用场景很多,我就选择了一个比较典型的场景给大家分享一下。最后的话就是对 IoTDB 以及先一的物联网平台的未来展望,我其实上午听了一下王(建民)院长,还有乔(嘉林)博士的一些发言,所以也得到了一些答复。
01
大唐先一智慧电厂业务概况
先一公司是 2004 年成立的,是大唐集团下面的全资二级子公司,目前是在长沙。基本上整个大唐的信息化业务都是由先一公司来承接。
整个公司的主营业务主要有几块,刚才我也稍微介绍了一下,一个是从事电网方面的业务,还有发电集团的一些业务,还有分子公司,以及目前的电力市场、综合能源、智慧电厂、通用产品相关的一些业务。
整个先一公司在发电侧,我们主要是在分子公司,以及我们大唐下面的几十家发电企业,以及集团外的一些企业进行合作。厂网协调的话,主要是我们在电厂与电网之间的一些项目合作。再就是电网侧,我们也做比如态势感知、安全隔离网闸等等一些装置和设备。此外,电力市场这一块我们也在布局,包括我们整个集团的电力现有市场,以及集团外的很多电力市场,项目也在逐步展开。并且目前还在布局智慧智能化,包括智慧园区、智慧电厂、智慧热网等等方面的一些业务。
为什么要讲智慧电厂呢?因为我们公司成立于 2004 年,这二十几年我们的主营重点是在能源行业,而且能源行业里面重点在发电这一块,所以我们在发电行业里面耕耘了二十几年,对智慧电厂这一块还是有非常多的积累。从最早的 90 年代的自动化,到 2000 年的信息化,以及到现在的智能、智慧化,目前也有很多的企业在做智慧电厂。可能有的企业是做数据行业的,认为数据治理就是信息化的、智慧化的电厂所要具备的;有些做三维的、虚拟化的企业,就认为他是做智慧电厂的,但是对于这一块,我们先一公司有自己的一些见解。
我们认为智慧电厂主要是利用现在云端、物联的一些工具或者技术,使电厂能够实现自我感知、自我学习、自我适应,能够进行行为决策,并且重点是要与电网进行相互的协调。智慧电厂对客户来说的话,重点只有四点,就是安全、经济、环保、高效这四点。
智慧电厂这一块,我们主要是有几个目标。第一就是关于数据赋能,主要是要有一个统一的数据指标,首先就要包括数据感知和采集上来,这部分我们重点是会用时序数据库,目前主要是跟 IoTDB 结合比较紧密。第二就是安全方面,包括电厂的一些智能视频的应用、UWB 定位技术的应用,包括人工智能,人防+技防的一些应用。第三,因为在电厂里面主要有几大块,运行、燃料和设备,设备以前可能都是计划检修,现在可能会向状态检修进行转变。包括运行优化,我刚刚讲了。还有智能、智慧的决策,决策的话主要目标还是走向数据驱动。
这个是我们公司智慧电厂的一个技术架构图。在基础设施这一块,因为我们涉及的最底层是基础设施,主要是一些智能设备和电力设备。通过泛在感知网到上面这一层,包括云计算、大数据和物联网组成的数字化管控平台。智慧化应用部分我们大概是分为几个,从电厂初期的基建,到它的安全、运行、检修,以及燃料、物资,和经营、办公,覆盖整个电厂的全方面、全过程。最上面是做智慧决策的架构。
02
大唐先一物联网平台架构
其实我们先一公司也有自己的物联网平台,我们的物联网平台主要是基于我们的工业互联网平台研制的。目前我们主要是解决几个问题,一个是数据采集的问题,也就是数据接入的问题,就是可以支持多种数据协议的接入,比如说 IEC 103、IEC 104、ModBus 等等协议的接入。采集问题解决以后,就是存储问题,存储的话主要是边缘端的存储,以及我们在云端的存储,这一块主要利用我们的时序数据库来实现。再有就是数据的分析以及展示的功能。
那么基于我们整个的工业物联网平台,这是我们整体的架构图。我们可以看到它也是分为云、边、物这几端,在最上面可以看到,我们主要是通过标准的 MQTT 协议,对外提供信息交互,也对外提供标准的 API 的交互和视频服务的交互,以及我们的物模型也会进行一些交互,进行物模型的管理。考虑到这个过程当中,因为我们现在也有很多分析型的或智能化的应用,分别会上升到分公司或者集团,所以会把一些 App 和智能化的应用放到分公司,并让分公司或者集团能够下发到边缘的厂侧,使其采集侧能够进行一些智能、智慧化的应用。
基于这整个物联网的框架,我们也会有一些终端以及边缘类的 App 的积累。目前我们大概是分了几个板块,包括边缘采集板块,这里面我刚刚讲了一下,主要是包括 IEC 104、Modbus、西门子等等这些协议类型。还有一种就是智能安防类型的,智能安防类型目前主要是针对视频、门禁、定位、语音播报类的。还有燃料类型的,就是采样机、衡器等等这些类型。整个 App 的应用是可扩展性的。
这个就是我们做的智能安防的 App 应用,目前其他的公司,包括海康或者其他的互联网公司它也做了这些,但是我们的优势主要是在于适配电厂的环境。因为有很多电厂特有的智能分析,比如说佩戴安全帽、穿短袖等等检测。其他公司的这些 App 应用到电厂线上,其实不一定拿过来就可以马上用,根据电厂不同的情况,或者它的环境,都要重新来做一些训练。而我们针对电厂环境是已经做了完整的训练,可以直接使用的。
这个是我们基于物联网平台、AI、以及微服务,开发的一个智慧监盘的系统。其实我们也知道,现在有很多公司在汽车领域推自动驾驶,是吧?还有一些辅助驾驶功能。那么在电厂,我们在监盘这一块对所有的系统、设备,总公司搭建了一共有 96 个,差不多 100 个模型,通过这些模型从系统,到整个机组,再到整个电厂,能对它的健康状态进行分析,能指导我们的运行人员和值班人员很好地进行监视、监控。
这个是我们在智慧燃料的其中一个应用。刚才我也稍微介绍了一下,目前我们对火车采样、汽车采样、皮带采样汇聚上去以后,包括安防系统的数据,通过我们的物联网平台采集完了、上传上去,可以再做更上层的一些应用。对于应用层级的开发,它不需要关心后端的采集、存储等等这些功能,它只要关心它的业务处理就可以了。
这是我们整个的物模型,主要是跟人工智能以及数据分析相关的。刚才讲了,我们已经建立了大量的物模型,跟我们底层的数据中台进行结合以后,为我们的设备诊断、SIS 应用,以及我们的燃料应用、指标分析的继续融合提供赋能。
03
IoTDB 在发电领域场景的实践
下面我介绍一下 IoTDB 在我们发电领域场景的实践。因为 IoTDB 在我们大唐的实践很多,我就选了一个比较有特色的给大家讲一下。
这个是在我们某个分公司,它要做一个数字化生产运营系统。大家也知道,现在很多风机、光伏都在比较偏远的地方,目前基本上都是接到分子公司来做集中的控制,这是其中一块。第二块,我们还有在光伏或者风机通过无人机进行巡检,巡检的数据在边缘处理以后,也要汇聚到分子公司或者集团。第三就是通过这些汇聚的数据,我们要做一些设备的诊断或者预测,再针对所有的这些数据做智能调度,我刚刚讲到了,这一块很重要,跟现货交易也息息相关。
也就是说,当我们要在这个分公司做这些,比如说集中生产管理,包括全面感知,包括预测,包括整个的调度与计划,这里面都会涉及到数据的采集和存储。那么电网的数据采集和存储,可能相对传统的其他行业还是有一些复杂性,或者安全等级要求会更高,下面我详细给大家介绍一下。
我把其中的一个数据流程架构给大家分享一下。目前分公司的实时数据中心是基于 IoTDB 1.2 版本来进行搭建的,当前接入的大概有 20 多家火电厂,共计有 42 台火电机组,每台火电机组接入的点数大概是 2 万点;还有 3 家水电,共计 18 台水电机组;还有 8 个风场,共计 400 多台风机的数据接入;以及 20 多个光伏电站,有 1800 多台逆变器的数据,都需要在这个分支公司进行监视,并且要做到智能分析,也就是我讲的,要把这个数据汇聚到我们的分支公司,实现刚才上面的四种应用。
那么我们基于 IoTDB 这个产品,是怎么来进行架构的?首先在电厂这一块,我们通常会分为一区、二区、三区,每个区之间都会有隔离装置,隔离装置也有很多种方式,有单向隔离、双向隔离,而且很多大区安全等级非常高,比如可能一区到二区之间就是一个单向隔离。那么我们首先从一区的 DCS,通过采集服务把数据汇聚到二区,为了保证系统的可靠性,我们是通过 IoTDB 本身的功能做了一个双活。再通过数据库网闸,这个数据库网闸跟刚才的文件网闸还不一样,把二区的数据再通过数据库网闸,同步到三区的 IoTDB 数据库。这里面会涉及到当二区的数据产生实时变化,那三区的数据也要马上有变化,而且不能够丢数据。所以这里面我们就用了很多 IoTDB 提供的办法,比如说上午乔博士讲的 TsFile 文件方式的同步,还有协议方式的同步,对网闸做一些改造,能够同步数据文件到三区。
最后由于有很多电厂,它的三区的数据还要同步到分子公司的三区,这一块我们主要是通过数据消息队列,通过 Kafka,同步到 Kafka 里面。在分子公司我们接了 3 台服务器的 IoTDB 集群,通过这个 IoTDB 集群,我们可以对外提供相关的服务,有 C++ 的,有 Web API 的等等,最终为我们的实时系统、SIS 系统、大数据平台进行服务。这里面涉及的总数据量是非常大的,因此我们在这个项目过程当中碰到很多挑战,最终和清华的团队一步一步把它们解决掉了。
那有一些什么样的挑战呢?第一,在所有的电厂这一侧,要写到分公司的这一侧,我刚刚讲了,数据是要直接写到 Kafka 进行消费,且在 Kafka 的消费过程中,不能够有数据堆积的情况。所有的电厂我们已经做了一个统计,每秒钟大概有 500 万点数据要实时地写入到 IoTDB,也就是写入到我们的 Kafka 队列,在我们上层的 Kafka 队列的消费者要直接消费到 IoTDB 里面去。在消费的同时,因为还有很多 AI 平台的数据,要从 IoTDB 的数据库里取数,也就是说不光是要不停地写数据,而且要不停地读数据,因为要支持分析需求。整个过程都要能够在秒级进行处理,不能够出现数据丢失或者是错误的数据。我们未来在厂级基本上就会很少再部署这个监控系统,都会在集团侧,或者分公司这一侧来进行部署,所以对这个数据的实时性要求是非常高的。
第二个就是实时数据与历史数据要断点续传,要同步地高效写入。这个也是在电厂或者我们在现场碰到的情况,对我们这个行业来说,这是很正常的。一个风机或者是一个电厂,它并不能保证它的数据就是实时的、不间断的,网络是完好的进行传输,它有可能会断。但是对于上层的客户来说,他的业务需求是不仅要马上看到实时的数据,也要马上看到历史数据。那么历史数据和实时数据就要同步上传,这里面就会突然之间产生一个很大的峰值,会在 Kafka 里面形成大量的堆积。所以对 IoTDB 来说,同时进行顺序数据,即正常时间点的数据写入,以及历史乱序数据点的写入,是一个非常大的挑战。我们考察了很多市面上的数据库,可能按照正常的时序点去写或读,它的效率很高,但是当你又要写历史数据,又要写实时数据,其实很多时序数据库是达不到 IoTDB 这种性能的。目前我们在分公司做了测试,如果说我们的网络数据断了 6 个小时,大概会堆积 500 万点的数据,每个点有 4320 个点值,在网络恢复的同时又要写实时,又要将历史数据进行上传,目前 IoTDB 能够在 2 个小时左右把我们的数据恢复,能够全部写完,历史数据能够追上实时数据,能够两边进行同步。
第三个挑战就是,怎么从安全一区到安全二区到安全三区,跨网闸直接同步。目前我们在现场碰到过的情况是,电厂的二区镜像到三区的历史数据库,在电厂环境下也有可能发生网络中断的情况,各式各样都有,有可能是网闸故障,也有可能是网络确实出现问题。这种情况下也要进行补录,并且根据我们的要求可能需要并发 10 个线程进行写入,每个线程大概 2 万点,共计大概是 20 万点,也要能够快速地在两个小时之间把这个数据处理完。而且每个电厂用的网闸可能还不一样,有的可能是文件型的光闸或网闸,有的是数据库同步型的网闸,还有协议集成 API 服务的网闸,所以根据不同的情况,IoTDB 都要去适应。当时我们选型也是考虑到 IoTDB 的灵活性,所以想要通过 IoTDB 去做跨网闸同步。
以上是我们项目的需求。
我们这个项目现在已经上线了,做完以后的情况是什么样子,给大家也分享一下。目前我们在实时写入的单场景,并发线程有两种,一个是 45 个线程并发,一个是 38 个线程并发。大家可以从图上看到,这样的线程数运行时间大概是 30 分钟,它的事务响应时间基本在 1 秒钟之内,并且在消费端,平均 16.2 条消息/秒的数据响应是没有一点问题的。
在我刚刚讲到的,断点续传补历史数据的情况下,就是同时在消费实时数据和历史数据的过程当中,断 6 个小时,500 万点的情况下,目前这 6 个小时的堆积数据和实时数据同步出来,大概需要 1 小时 46 分能够写完,这个可能也跟我们的服务器配置相关。
第三个就是关于读实时数据。读实时这块性能还是比较高,因为这个不是一个综合性的场景。再来就是数据同步的过程,刚刚讲了,线程中的每秒钟同步,要跨网闸,要使用列式文件,要通过网闸传输文件,最后再写入时序数据库,整个消费的过程,IoTDB 完全满足要求。
最后,表中的第七个就是分公司的综合场景的应用。分公司综合场景刚刚提到,不光是在写实时数据,同时还要读实时、读历史、补历史数据等等,因为这里面有的可能是给 AI 服务中台提供服务,有的是给企业的用户消费提供服务。目前整个这一块在写、读实时数据 500 万点条件下,也是在秒级以内能够满足要求,厂级数据大概也是在秒级左右。可能某些地方还有一些错误,我们自己还在调试。在大量历史数据同步的过程当中,因为我们的数据量非常大,也会对每个数据做校验,就发现有些数据还是有些问题。这个我们自己也在找原因,后续也会给清华这边分析一下,可能也要帮我们分析一下到底是哪方面原因。
这个就是现场的成果。
04
大唐先一物联网平台未来能力展望
第四个部分就是关于大唐物联网平台未来的展望。这一块其实今天上午也听了一下王老师、乔老师,还有其他老师的一些汇报,我们也在想这些内容,因为我们的物联网平台从采集到存储都已经有了,那么我们现在也在考虑 AI。目前我们的 AI 和物联网平台是要做一个设计的转换,如果未来 IoTDB 本身内置有机器学习算法或者推理平台,对于我们来说,我们的技术架构可能会更加简洁,可靠性也会更高。因为我们现在做的话,可能是需要把数据转到另外的数据库、大数据平台做一些分析,是这么一个过程,还是更繁琐的。包括上午龙(明盛)教授讲的,关于建立整个时序的、基于设备的大模型,我觉得这个非常好,我们未来也可以与 AI 这方面结合起来,我们也愿意做第一个吃螃蟹的。
另外我们的物联网平台,现在也想基于工业领域、智慧电厂这一块,向其他的领域做一些推广,也期待着未来跟清华、跟 IoTDB 有更深度的合作。谢谢大家!
可加欧欧获取大会相关PPT
微信号:apache_iotdb