12 月 3 日,2023 IoTDB 用戶大會在北京成功舉行,收獲強烈反響。本次峰會匯集了超 20 位大咖嘉賓帶來工業互聯網行業、技術、應用方向的精彩議題,多位學術泰斗、企業代表、開發者,深度分享了工業物聯網時序數據庫 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 應用,目前其他的公司,包括??祷蛘咂渌幕ヂ摼W公司它也做了這些,但是我們的優勢主要是在于適配電廠的環境。因為有很多電廠特有的智能分析,比如說佩戴安全帽、穿短袖等等檢測。其他公司的這些 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 有更深度的合作。謝謝大家!

更多內容推薦:
? 了解更多 IoTDB 應用案例
? 回顧 IoTDB 2023 大會全內容