黃向東:工業(yè)物聯(lián)網(wǎng)數(shù)據(jù)庫(kù) IoTDB及其應(yīng)用
IoTDB源自清華大學(xué)軟件學(xué)院。王院長(zhǎng)帶領(lǐng)團(tuán)隊(duì)從2011年開(kāi)始關(guān)注,2014/2015年開(kāi)始研制,一路走來(lái)始終圍繞工業(yè)數(shù)據(jù)軟件,其中包括了數(shù)據(jù)管理軟件、機(jī)器學(xué)習(xí)軟件、數(shù)據(jù)處理軟件以及應(yīng)用開(kāi)發(fā)軟件。我主要負(fù)責(zé)數(shù)據(jù)管理軟件。讓數(shù)據(jù)發(fā)揮價(jià)值,首先要把數(shù)據(jù)管起來(lái),便于未來(lái)的數(shù)據(jù)處理和應(yīng)用開(kāi)發(fā)。
今天分享關(guān)于工業(yè)時(shí)序數(shù)據(jù)庫(kù)IoTDB(全稱Apache IoTDB)及它的一些應(yīng)用,主要分四個(gè)方面:IoTDB在解決什么類型的數(shù)據(jù);它和工業(yè)之間的關(guān)系是什么;對(duì)于這類數(shù)據(jù)有哪些管理的挑戰(zhàn);IoTDB有什么特性以及我們的一些應(yīng)用實(shí)踐。
工業(yè)與時(shí)序數(shù)據(jù)
我們要管理的工業(yè)數(shù)據(jù)到底是什么,它和工業(yè)之間是什么關(guān)系?如下圖所示,隨著產(chǎn)業(yè)的發(fā)展,生產(chǎn)型制造在整個(gè)G D P的占比會(huì)越來(lái)越低,而服務(wù)型制造會(huì)快速發(fā)展。其本質(zhì)是隨著競(jìng)爭(zhēng)越來(lái)越激烈,怎么才能在有限的生產(chǎn)資源下提供更強(qiáng)的生產(chǎn)力,以及在相同的生產(chǎn)力下怎么能將自己制造出來(lái)的產(chǎn)品價(jià)值進(jìn)一步提升?
在疫情影響下,很多工業(yè)企業(yè)進(jìn)一步加強(qiáng)生產(chǎn)制造的產(chǎn)品自身的價(jià)值,并基于產(chǎn)品做增值服務(wù),提升競(jìng)爭(zhēng)力。那怎么做才能讓這樣一個(gè)向下的曲線變成一個(gè)向上的綠色曲線呢?
大數(shù)據(jù)是整個(gè)工業(yè)數(shù)字化轉(zhuǎn)型升級(jí)中的核心生產(chǎn)資料和關(guān)鍵賦能技術(shù)。大致分成三類:
第一類,是工業(yè)信息化數(shù)據(jù),來(lái)自傳統(tǒng)的CRM、PLM等系統(tǒng),包括生產(chǎn)過(guò)程中的訂單信息、維修信息等等,主要是人為產(chǎn)生。第二類,是跨界數(shù)據(jù),因?yàn)樗械纳a(chǎn)運(yùn)行一定和大環(huán)境相關(guān),例如災(zāi)害天氣、油價(jià)提升等問(wèn)題都會(huì)對(duì)工業(yè)最終生產(chǎn)價(jià)值產(chǎn)生一些波動(dòng)。第三類,是機(jī)器設(shè)備產(chǎn)生的數(shù)據(jù),這個(gè)時(shí)代的工業(yè)設(shè)備,帶有大量的傳感器,幫助人們?nèi)ピ\斷和查看設(shè)備的運(yùn)行狀態(tài),從而更有效地去管理或者運(yùn)維這些設(shè)備。
這三類數(shù)據(jù)共同構(gòu)成了工業(yè)大數(shù)據(jù)的主體,今天我們主要講的機(jī)器設(shè)備的數(shù)據(jù)和人產(chǎn)生的數(shù)據(jù)很不一樣。很多情況下,機(jī)器7X24小時(shí)工作,比如一個(gè)發(fā)電廠點(diǎn)一次火,可能需要幾百萬(wàn)的投入,一旦點(diǎn)著了火,即使電量飽和要降低生產(chǎn),也只會(huì)降低功率,并不會(huì)停工把機(jī)器關(guān)掉。很多大型設(shè)備需要連軸轉(zhuǎn)很多天,而且設(shè)備采集數(shù)據(jù)的頻率可能會(huì)很高,每秒、每毫秒甚至每微秒會(huì)采一次數(shù)據(jù)。由此,這些機(jī)器設(shè)備產(chǎn)生數(shù)據(jù)的速率會(huì)遠(yuǎn)遠(yuǎn)高于人產(chǎn)生數(shù)據(jù)的速率。
慢慢地,機(jī)器設(shè)備變成了產(chǎn)生工業(yè)大數(shù)據(jù)的主體。而有了這些數(shù)據(jù)之后,人類可以更好地去驅(qū)動(dòng)或調(diào)整這些設(shè)備,于是這些設(shè)備本身也成了消費(fèi)這些數(shù)據(jù)的主體。這些機(jī)器設(shè)備數(shù)據(jù)就是我們今天要講的時(shí)序數(shù)據(jù)。
為什么叫做時(shí)序數(shù)據(jù)呢?因?yàn)檫@些數(shù)據(jù)最典型的特征是記錄了每個(gè)設(shè)備在不同時(shí)刻的某些指標(biāo)的變化情況。如果用一個(gè)關(guān)系數(shù)據(jù)庫(kù)來(lái)看,它就是一個(gè)表的結(jié)構(gòu),可視化出來(lái),橫軸做時(shí)間軸,就會(huì)看到每一條時(shí)序在表示一個(gè)設(shè)備的某些物理量或指標(biāo)在時(shí)間維度上的變化。
時(shí)序數(shù)據(jù)和工業(yè)之間的關(guān)系
GE早在2012年就指出,海量時(shí)序數(shù)據(jù)是未來(lái)驅(qū)動(dòng)新一代工業(yè)革命的歷史性機(jī)遇。
以電力為例,發(fā)電、輸電、配電各個(gè)環(huán)節(jié)的自動(dòng)化系統(tǒng),一直在產(chǎn)生和收集這些數(shù)據(jù),大量數(shù)據(jù)怎么去管理和使用,才能保障安全、優(yōu)化供需平衡?
例如,金風(fēng)通過(guò)收集風(fēng)速數(shù)據(jù)和風(fēng)機(jī)轉(zhuǎn)向角的數(shù)據(jù)和發(fā)電數(shù)據(jù),可以有效幫助每一臺(tái)風(fēng)機(jī)提升它的發(fā)電量,從而產(chǎn)生非常直觀和大量的經(jīng)濟(jì)價(jià)值。
在制造環(huán)節(jié),不管是離散制造,還是流程制造,都有大量的工藝參數(shù)數(shù)據(jù)值得被收集,從而進(jìn)一步保障生產(chǎn)安全以及提高良品率和產(chǎn)能。例如半導(dǎo)體行業(yè)做SMT元器件的貼樁,通過(guò)收集每一個(gè)元器件的面積、高度、體積、偏移值等數(shù)據(jù)變化,能盡早發(fā)現(xiàn)SMT產(chǎn)線上刀片磨損程度和錫膏濃度對(duì)良品率的影響。同時(shí),通過(guò)這些時(shí)序數(shù)據(jù),可以訓(xùn)練出來(lái)一些對(duì)應(yīng)的模型,增強(qiáng)監(jiān)測(cè)設(shè)備的復(fù)判能力,降低需要二次人工復(fù)判的工作量,進(jìn)一步提高良品率的穩(wěn)定性。
通過(guò)對(duì)工程機(jī)械實(shí)際油耗的消耗程度、設(shè)備所處地理位置信息的變化、當(dāng)時(shí)的載重和司機(jī)踩油門的輕重等系列數(shù)據(jù)的收集和分析,能幫助司機(jī),合理規(guī)劃應(yīng)該怎么踩油門、怎么去跑線路才能使工程機(jī)械最省油。在工業(yè)運(yùn)輸和工程機(jī)械的使用過(guò)程中,省10%的油,就能帶來(lái)很高的經(jīng)濟(jì)效益。
要在工業(yè)場(chǎng)景中持續(xù)發(fā)揮數(shù)據(jù)價(jià)值,本質(zhì)上取決于到底能采集和管理多少時(shí)序數(shù)據(jù)。現(xiàn)在很多智能設(shè)備都號(hào)稱可以監(jiān)測(cè)設(shè)備的實(shí)時(shí)狀態(tài),但只管理了實(shí)時(shí)數(shù)據(jù)。當(dāng)這些實(shí)時(shí)數(shù)據(jù)能被存到數(shù)據(jù)庫(kù)中變成歷史數(shù)據(jù),就可以進(jìn)一步做更多有價(jià)值的探索。
下圖從左到右是對(duì)實(shí)際數(shù)據(jù)管理從少到多的一個(gè)過(guò)程,同時(shí),也是時(shí)序數(shù)據(jù)能發(fā)揮出來(lái)的價(jià)值從低變高的過(guò)程。有了實(shí)時(shí)數(shù)據(jù),就可以做狀態(tài)監(jiān)控、遠(yuǎn)程運(yùn)維;有了較長(zhǎng)時(shí)間的數(shù)據(jù),就可以對(duì)這些設(shè)備做一些數(shù)字畫(huà)像,進(jìn)行健康評(píng)估,發(fā)現(xiàn)劣化趨勢(shì),進(jìn)行故障預(yù)測(cè)和備件調(diào)度;有了設(shè)備全生命周期的數(shù)據(jù),就可以通過(guò)它服役狀態(tài)下的設(shè)備表現(xiàn)情況,對(duì)它的制造工藝進(jìn)行改進(jìn)和控制。歷史數(shù)據(jù)沉淀得越多,可挖掘的價(jià)值深度就越高。
時(shí)序數(shù)據(jù)管理的新需求和新挑戰(zhàn)
在工業(yè)行業(yè),時(shí)序數(shù)據(jù)并不是一個(gè)新概念,自動(dòng)化設(shè)備被發(fā)明出來(lái)并且被大批量使用的時(shí)候,這些數(shù)據(jù)就已經(jīng)被收集和存在了DCS系統(tǒng)。為什么現(xiàn)在又重新把這些數(shù)據(jù)拿出來(lái)講?因?yàn)樵诠I(yè)領(lǐng)域的需求在發(fā)生變化。
傳統(tǒng)DCS系統(tǒng)大多部署在工廠側(cè),但是現(xiàn)在有智能電表、智能網(wǎng)聯(lián)車、智能路燈以及許多可移動(dòng)的智能設(shè)備,這些設(shè)備也具備了數(shù)據(jù)的采集能力,數(shù)據(jù)都需要被管理。
同時(shí),為了做更精細(xì)的應(yīng)用,設(shè)備采集數(shù)據(jù)的頻率可能從原來(lái)的五秒鐘一次變成了現(xiàn)在一秒鐘一次,甚至一毫秒一次,這對(duì)底層的數(shù)據(jù)管理系統(tǒng)的性能要求大幅提高,從原來(lái)的數(shù)萬(wàn)點(diǎn)每秒到千萬(wàn)點(diǎn)每秒甚至一億點(diǎn)每秒。
而傳統(tǒng)的狀態(tài)監(jiān)測(cè)和實(shí)時(shí)告警等應(yīng)用,對(duì)歷史數(shù)據(jù)的存儲(chǔ)需求并不高,所以很多情況下,大家會(huì)采用采十寸一、采百存一的策略,只存下來(lái)部分關(guān)鍵數(shù)據(jù),而那些正常或細(xì)微變化的數(shù)據(jù)就丟掉了。但量變引起質(zhì)變,正是這些細(xì)微的變化,幫助我們更快更深地洞察問(wèn)題,所以現(xiàn)在逐漸向應(yīng)存盡存、全量存儲(chǔ)轉(zhuǎn)變。
此外,以往在設(shè)備側(cè)產(chǎn)生數(shù)據(jù)之后,就向云端發(fā)送,在數(shù)據(jù)中心端就可以看到數(shù)據(jù)?,F(xiàn)在由于硬件越來(lái)越便宜,邊緣計(jì)算能力在增強(qiáng),本地智能化也需要有數(shù)據(jù)管理能力,并且能和云端做很好的協(xié)同。在上述新需求下,如果這些時(shí)序數(shù)據(jù)只是簡(jiǎn)單存下來(lái),就是不停增加管理成本,只有對(duì)數(shù)據(jù)進(jìn)行充分的分析、計(jì)算,才從成本變成價(jià)值。這個(gè)過(guò)程中,工業(yè)用戶獨(dú)特場(chǎng)景帶來(lái)的時(shí)序數(shù)據(jù)管理的挑戰(zhàn)很多。
工業(yè)設(shè)備足夠復(fù)雜,尤其是昂貴的工業(yè)設(shè)備上觀測(cè)的指標(biāo)數(shù)量非常多。以一個(gè)電廠為例,由于一些歷史原因和二次加工數(shù)據(jù),一個(gè)電廠需要被觀測(cè)的指標(biāo)可能超過(guò)三十萬(wàn)個(gè);此外,為了做振動(dòng)分析,這些數(shù)據(jù)的采樣頻率可能達(dá)到兆赫茲的級(jí)別。
由于工業(yè)場(chǎng)景的環(huán)境惡劣和工業(yè)控制器的升級(jí)問(wèn)題,很多實(shí)時(shí)數(shù)據(jù)并未按照時(shí)間產(chǎn)生的順序到達(dá)云端。而一個(gè)工業(yè)設(shè)備可能由多個(gè)控制器來(lái)組成,且品牌不一,由不同的控制器根據(jù)零部件的重要程度不同來(lái)決定采集數(shù)據(jù)的頻率,采集數(shù)據(jù)的起始時(shí)刻也不一樣。如果用一張表來(lái)表示,會(huì)看到雖然這個(gè)設(shè)備有三十萬(wàn)個(gè)指標(biāo)要監(jiān)測(cè),但是某一個(gè)時(shí)刻下可能只有七八個(gè)指標(biāo),另一個(gè)時(shí)刻下有30個(gè)指標(biāo)。這樣參差不齊,會(huì)使得用戶將來(lái)使用數(shù)據(jù)的成本和難度大幅提升。
邊緣設(shè)備迭代快。以前一個(gè)設(shè)備監(jiān)測(cè)三五個(gè)點(diǎn),隨著應(yīng)用的逐漸深化,有更多重要的點(diǎn)需要監(jiān)測(cè),給設(shè)備做診斷時(shí)加裝小零部件,又增加了一些可采集和可傳感的數(shù)據(jù)。
用傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)存儲(chǔ)時(shí),對(duì)于schema的維護(hù)工作量非常大,并且往往會(huì)出現(xiàn)一些錯(cuò)誤,導(dǎo)致采到大量數(shù)據(jù)卻無(wú)法入庫(kù)。IoTDB針對(duì)這樣的情況,采用了云端適配邊緣端的方法,根據(jù)傳過(guò)來(lái)的數(shù)據(jù)自動(dòng)創(chuàng)建這個(gè)序列的元數(shù)據(jù),來(lái)降低管理成本,并且盡可能地讓更多數(shù)據(jù)入庫(kù)。
復(fù)雜設(shè)備測(cè)點(diǎn)數(shù)海量。傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)會(huì)用垂直分表方案,把一個(gè)表縱向切成幾個(gè)表,去表達(dá)一個(gè)復(fù)雜對(duì)象或復(fù)雜設(shè)備,這會(huì)造成額外工作量且性能低。而IoTDB容納的時(shí)間序列數(shù)量無(wú)上限,允許對(duì)于單個(gè)設(shè)備任意復(fù)雜化地去描述其資產(chǎn)管理關(guān)系和設(shè)備的組成關(guān)系,以及這些組成關(guān)系和零部件上各個(gè)測(cè)點(diǎn)的關(guān)系。
采樣頻率高。當(dāng)采樣頻率變得很高時(shí),用關(guān)系數(shù)據(jù)庫(kù)易達(dá)到1000萬(wàn)行的單表存儲(chǔ)上限,且水平分表分庫(kù)等方案需要每天分表,所以在很多IT系統(tǒng)里有一些日表的概念。這會(huì)對(duì)查詢等操作帶來(lái)困擾。IoTDB對(duì)時(shí)序數(shù)據(jù)的特有處理,能幫助用戶持續(xù)高效地寫(xiě)入、查詢和管理超高吞吐量的數(shù)據(jù),并且存儲(chǔ)成本非常低。容納PB級(jí)別數(shù)據(jù)。
各數(shù)據(jù)獨(dú)立采集。一個(gè)設(shè)備上不同零部件的數(shù)據(jù)采集是獨(dú)立的,采集頻率不一樣,采集時(shí)刻對(duì)不齊,會(huì)造成在可視化或者做兩條序列的相關(guān)性分析等時(shí)候,出現(xiàn)向量長(zhǎng)度不一樣等現(xiàn)實(shí)問(wèn)題。IoTDB把數(shù)據(jù)整理工作,下放到數(shù)據(jù)庫(kù)中,讓數(shù)據(jù)庫(kù)支持時(shí)序數(shù)據(jù)把多條序列按時(shí)間對(duì)齊,把缺失的值進(jìn)行空值填充等方式,讓用戶更方便地使用數(shù)據(jù)、發(fā)揮價(jià)值。
工業(yè)環(huán)境數(shù)據(jù)亂序到達(dá)。工業(yè)環(huán)境網(wǎng)絡(luò)質(zhì)量難以保證,經(jīng)常出現(xiàn)如延遲、斷網(wǎng),導(dǎo)致數(shù)據(jù)無(wú)法完全保序到達(dá)。而IoTDB 支持時(shí)間序列的亂序?qū)懭搿?/span>
總的來(lái)講,對(duì)時(shí)序數(shù)據(jù)的處理,一些時(shí)序數(shù)據(jù)庫(kù)不論是在性能、功能、存儲(chǔ)成本上,都存在一定的不足。市面上也有很多新的時(shí)序數(shù)據(jù)庫(kù),但它們的應(yīng)用場(chǎng)景和底層技術(shù)棧不是面向工業(yè)設(shè)計(jì)的,而是面向互聯(lián)網(wǎng)企業(yè)應(yīng)用性能監(jiān)控的場(chǎng)景而設(shè)計(jì),面對(duì)工業(yè)場(chǎng)景下特殊需求,就會(huì)出現(xiàn)很不穩(wěn)定或者很差的性能表現(xiàn)。
IoTDB與衍生產(chǎn)品
做IoTDB的初衷,是幫助工業(yè)用戶解決時(shí)序數(shù)據(jù)的存儲(chǔ)查詢使用問(wèn)題,能支撐機(jī)器數(shù)據(jù)海量讀寫(xiě),能支撐用戶超低成本地存儲(chǔ)數(shù)據(jù)和深度的分析挖掘。我們希望IoTDB成為智能制造或者是未來(lái)工業(yè)物聯(lián)網(wǎng)的基礎(chǔ)設(shè)施之一。
IoTDB的主要特性,除了高吞吐數(shù)據(jù)、低成本、高壓縮、高可用外,還有面向物聯(lián)網(wǎng)原生的模型和端邊協(xié)同的模式。作為數(shù)據(jù)庫(kù),它也給用戶提供了寫(xiě)入和查詢的接口形態(tài)。
IoTDB起源于863計(jì)劃的一個(gè)課題,和國(guó)內(nèi)的某家龍頭工業(yè)企業(yè)合作的過(guò)程中注意到,他們的工程機(jī)械設(shè)備數(shù)據(jù)在Oracle中管理出現(xiàn)了瓶頸,上層沒(méi)辦法進(jìn)一步做業(yè)務(wù)運(yùn)用。
從2015年,我們開(kāi)始自研IoTDB,在很多場(chǎng)景和技術(shù)上做了驗(yàn)證。2018年,我們正式把IoTDB推到Apache基金會(huì),吸引了國(guó)內(nèi)和國(guó)際上一系列的同行,圍繞IoTDB做一些開(kāi)發(fā)和使用。2020年,IoTDB正式畢業(yè),成了Apache的全球頂級(jí)項(xiàng)目。之后在持續(xù)的推廣過(guò)程中,IoTDB拿到了國(guó)內(nèi)一系列的開(kāi)源獎(jiǎng)項(xiàng)。
目前,IoTDB是Apache物聯(lián)網(wǎng)數(shù)據(jù)庫(kù)的唯一項(xiàng)目,甚至可以說(shuō)是唯一一個(gè)專門為時(shí)序數(shù)據(jù)打造的項(xiàng)目。IoTDB也入選了國(guó)家“十三五”科技創(chuàng)新成就展、北京市科技進(jìn)步一等獎(jiǎng)等。IoTDB自主研發(fā)過(guò)程中產(chǎn)生了大量面向時(shí)序數(shù)據(jù)的新專利,也發(fā)表了一些論文。它是一個(gè)物聯(lián)網(wǎng)原生的時(shí)序數(shù)據(jù)庫(kù),具有它自己的基準(zhǔn)性能。
我們希望通過(guò)這個(gè)產(chǎn)品幫助用戶利用數(shù)據(jù)提質(zhì)增效、降低數(shù)據(jù)的管理成本。最重要的是,能低成本、高性能地給用戶提供服務(wù),更便捷地從其他的系統(tǒng)中把數(shù)據(jù)導(dǎo)入IoTDB,提供豐富的數(shù)據(jù)處理生態(tài)和一站式解決方案。
和一些其他的開(kāi)源系統(tǒng)對(duì)比,IoTDB寫(xiě)入性能遙遙領(lǐng)先,并且在實(shí)際的用戶案例下,一臺(tái)IoTDB可替代原來(lái)15臺(tái)NoSQL數(shù)據(jù)庫(kù)服務(wù)器組成的集群。從查詢性能上,IoTDB不管是原始數(shù)據(jù)查詢還是聚合查詢,都領(lǐng)先同類產(chǎn)品。一個(gè)IoTDB就能同時(shí)滿足實(shí)時(shí)數(shù)據(jù)監(jiān)控以及海量歷史數(shù)據(jù)查詢。
IoTDB樹(shù)型結(jié)構(gòu)管理的數(shù)據(jù)模型非常適合工廠。一個(gè)工廠同一個(gè)型號(hào)的生產(chǎn)設(shè)備不止一臺(tái),這些相同型號(hào)的設(shè)備,當(dāng)觀測(cè)指標(biāo)都相同的時(shí)候,IoTDB提供了模板化管理方式。對(duì)于設(shè)備上多個(gè)指標(biāo),它能同時(shí)去采集;采集頻率也相同的時(shí)候,可以用對(duì)齊的采集模式。對(duì)于不同時(shí)刻采集,采集頻率不一樣的形式,我們提供了單元序列的方式,各測(cè)點(diǎn)獨(dú)立采集。對(duì)于這些數(shù)據(jù),既有靜態(tài)的數(shù)據(jù)管理,也有沿時(shí)間變化的數(shù)據(jù)管理。此外,也可以在樹(shù)上添加一些節(jié)點(diǎn),實(shí)現(xiàn)動(dòng)態(tài)模型化。
雖然對(duì)傳統(tǒng)的IT人員有一些學(xué)習(xí)成本,但對(duì)于OT域人員,這和業(yè)務(wù)場(chǎng)景更匹配。為了實(shí)現(xiàn)低成本的存儲(chǔ),我們自研了一個(gè)列式文件格式叫Tsfile。它既有列式的存儲(chǔ)形態(tài),又有高壓縮的編碼結(jié)構(gòu),還有各種各樣的分段聚合的語(yǔ)句和信息,幫助用戶盡快做降采樣、聚合查詢、生成報(bào)表等。在文件的末尾,我們也有文件集的索引來(lái)幫助用戶在海量的數(shù)據(jù)下快速查找數(shù)據(jù)。
當(dāng)采樣頻率提升到毫秒級(jí)之后,要做可視化或者做不同應(yīng)用,需要查詢數(shù)據(jù)的采樣頻率是不一樣的。因此我們給用戶提供了實(shí)時(shí)降采樣的能力,將一條序列降采樣成數(shù)據(jù)密度更稀疏的序列,來(lái)減輕業(yè)務(wù)端或應(yīng)用端的壓力。我們可以把處理后的降采樣或者其他結(jié)果,再重新寫(xiě)回?cái)?shù)據(jù)庫(kù),從而將原始數(shù)據(jù)、加工后的數(shù)據(jù)、再一次加工后的數(shù)據(jù)分別生成出來(lái),最終變成一些知識(shí)和決策。
對(duì)于質(zhì)量不高的數(shù)據(jù),可以通過(guò)簡(jiǎn)單的降采樣,再把數(shù)據(jù)按時(shí)間對(duì)齊,并把每分鐘里缺失的數(shù)據(jù)進(jìn)行補(bǔ)全,來(lái)幫助用戶拿到一個(gè)更整齊和更便于分析的數(shù)據(jù)。除了寫(xiě)入建模、寫(xiě)入查詢以外,IoTDB提供了大量的分析函數(shù),支持定制化分析,自行開(kāi)發(fā)和創(chuàng)建函數(shù)以滿足工業(yè)機(jī)理分析。目前,IoTDB已經(jīng)陸續(xù)完成了75種函數(shù)。
不止于此,從數(shù)據(jù)進(jìn)到IoTDB開(kāi)始的采集、存儲(chǔ)、查詢和分析全生命周期,都提供了數(shù)據(jù)計(jì)算的能力。當(dāng)一個(gè)數(shù)據(jù)采集過(guò)來(lái)要寫(xiě)入到數(shù)據(jù)庫(kù),就提供了觸發(fā)器機(jī)制。用戶對(duì)每個(gè)新寫(xiě)入的數(shù)據(jù)都可以去做預(yù)知、判斷、告警,都可以對(duì)數(shù)據(jù)進(jìn)行加工和修改,把多個(gè)數(shù)據(jù)計(jì)算a+b衍生出來(lái)c計(jì)算出來(lái)衍生變量。
當(dāng)數(shù)據(jù)進(jìn)入到數(shù)據(jù)庫(kù)之后,我們也給用戶提供了一個(gè)后臺(tái)離線的計(jì)算模式,幫助用戶把數(shù)據(jù)查出來(lái),進(jìn)行處理,之后重新寫(xiě)回?cái)?shù)據(jù)庫(kù)。在數(shù)據(jù)庫(kù)中,它可能被叫做物化視圖。通過(guò)定期執(zhí)行的方式,在后臺(tái)不繁忙的時(shí)候幫助用戶把原始數(shù)據(jù)逐漸加工出來(lái)。用戶實(shí)時(shí)查詢的時(shí)候,通過(guò)UDF函數(shù)機(jī)制,也可以實(shí)時(shí)做一些計(jì)算。
當(dāng)把IoTDB和spark、flink等等大數(shù)據(jù)生態(tài)集成之后,就可以做更多的大數(shù)據(jù)分析應(yīng)用。整個(gè)過(guò)程中,既可以對(duì)每個(gè)采過(guò)來(lái)的數(shù)據(jù)值做計(jì)算,也可以按照時(shí)間窗口做計(jì)算,讓用戶自定義自己的計(jì)算邏輯,幫助用戶更好地整理數(shù)據(jù)。
此外,IoTDB端邊云協(xié)同的設(shè)計(jì)理念,希望打破原來(lái)端測(cè)產(chǎn)生數(shù)據(jù)之后,要在本地編碼解編碼,壓縮之后傳到云端,解碼再解壓,再把數(shù)據(jù)寫(xiě)入到數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)耗費(fèi)CPU和內(nèi)存對(duì)數(shù)據(jù)進(jìn)行排序和鍵索引的過(guò)程。當(dāng)端側(cè)有了足夠的計(jì)算能力,就可以把數(shù)據(jù)編碼,上傳到云端,云端可以直接落盤并分析使用了。這種模式下,云端CPU使用率大幅減小,網(wǎng)絡(luò)帶寬也會(huì)大幅降低。我們也和一些生態(tài)軟件進(jìn)行了搭配,用戶可以很方便地拿我們的數(shù)據(jù)庫(kù)去做數(shù)據(jù)可視化、數(shù)據(jù)交互式分析,以及用大數(shù)據(jù)spark等標(biāo)準(zhǔn)語(yǔ)言做時(shí)序數(shù)據(jù)的分析應(yīng)用。
IoTDB繼承了很多屬于Apache的開(kāi)源項(xiàng)目,以及部署Apache,覆蓋從采集、處理、分析、應(yīng)用的各階段。
作為一個(gè)時(shí)序數(shù)據(jù)庫(kù),IoTDB更多是提供時(shí)序數(shù)據(jù)的建模查詢、處理分析,和低成本存儲(chǔ)的能力。在此之外,我們也逐漸圍繞IoTDB衍生出向前向后的一些功能,幫助用戶更好的去做數(shù)據(jù)的采集告警、基于規(guī)則引擎的計(jì)算來(lái)產(chǎn)生更復(fù)雜的告警、對(duì)數(shù)據(jù)進(jìn)行組態(tài)可視化、對(duì)數(shù)據(jù)進(jìn)行交互分析和大數(shù)據(jù)分析等。
應(yīng)用案例
清華已推動(dòng)IoTDB很多年,陸續(xù)得到開(kāi)源用戶和企業(yè)客戶的大量使用,目前已服務(wù)幾百家企業(yè)。包括一系列中字頭的企業(yè)、工業(yè)龍頭企業(yè),以及國(guó)家的一些雙跨平臺(tái)。
目前用得最遠(yuǎn)的是在一顆衛(wèi)星上,有一個(gè)小的盒子里面安裝了IoTDB,在太空中去管理現(xiàn)場(chǎng)的實(shí)時(shí)數(shù)據(jù)。稍微低一些,是管理飛機(jī)的數(shù)據(jù),中國(guó)商飛的大飛機(jī)C919試飛階段的數(shù)據(jù)管理用的是IoTDB,成飛無(wú)人機(jī)的試飛數(shù)據(jù)等也是在用IoTDB。目前,IoTDB已經(jīng)管理了幾萬(wàn)億個(gè)數(shù)據(jù)點(diǎn),數(shù)據(jù)量達(dá)到十幾個(gè)T。
在地面,我們跟大量的工廠、地鐵車輛做了鏈接;在海上,我們和中船合作,管理船舶和水文變化數(shù)據(jù)。
IoTDB在國(guó)際上也有大量用戶,和德國(guó)的企業(yè)合作去服務(wù)寶馬、德鐵等企業(yè)。和博世、西門子等企業(yè)的合作也在陸續(xù)展開(kāi)。
首先講講國(guó)內(nèi)的應(yīng)用:
和中車合作,管理上海地鐵所有列車的數(shù)據(jù)。之前是15臺(tái)KairosDB+底層Cassandra,管理144列車的數(shù)據(jù),每列車有3000個(gè)測(cè)點(diǎn),采樣頻率是500毫秒采集一次。升級(jí)后,單臺(tái)IoTDB就可以管理這種數(shù)據(jù)量級(jí),并且能大幅提升上限容量。當(dāng)系統(tǒng)完全切換成IoTDB,我們將它原來(lái)在CTV中三年的數(shù)據(jù)重新導(dǎo)入,過(guò)去用其他系統(tǒng)三年存儲(chǔ)的200TB的數(shù)據(jù),在IoTDB能被壓縮到16TB,幾乎降低了90%的存儲(chǔ)成本。
和博世合作,博世的ctrlX AUTOMATION,圖中右上角亮燈的小盒子,在工廠側(cè)可以直接部署應(yīng)用。一定程度上和國(guó)內(nèi)的工控機(jī)有點(diǎn)像。但是因?yàn)楹筒┦赖钠渌O(shè)備打通得更好,所以它潛力極大。之前,盒子不具備管理歷史數(shù)據(jù)的能力,我們把IoTDB安裝在盒子內(nèi),現(xiàn)在它可以管理歷史數(shù)據(jù)。上個(gè)月,此產(chǎn)品在德國(guó)博世的展會(huì)和SPS展上進(jìn)行了發(fā)布。
和湖南中煙合作,兩三年前,幫助管理集控車間和工廠的數(shù)據(jù),監(jiān)控制絲和卷包車間 260 個(gè)設(shè)備的狀態(tài),涉及90135個(gè)時(shí)間序列數(shù)據(jù)的采集,將多個(gè)工廠的數(shù)據(jù)匯總到公司級(jí)大數(shù)據(jù)平臺(tái),形成了車間、工廠、集團(tuán)這樣多層次的數(shù)據(jù)管理體系,管理各種制造過(guò)程中工藝參數(shù)數(shù)據(jù),提升生產(chǎn)效率、降低損耗。
和大唐先一合作,在4個(gè)火電廠和60多個(gè)新能源發(fā)電企業(yè)替換掉open TSDB,對(duì)數(shù)據(jù)進(jìn)行管理,原來(lái)需要一個(gè)集群才能搞定的事情,現(xiàn)在單個(gè)節(jié)點(diǎn)就能搞定,減少 95% 運(yùn)維成本。
和國(guó)家電網(wǎng)合作,應(yīng)用于成都世代積家充電場(chǎng)站、北京亦莊光伏場(chǎng)站等業(yè)務(wù)場(chǎng)景,把IoTDB放在電表箱內(nèi)部,實(shí)現(xiàn)了充電場(chǎng)站實(shí)時(shí)狀態(tài)監(jiān)測(cè),及本地負(fù)荷計(jì)算、諧波計(jì)算、終端故障預(yù)警等能力。
和長(zhǎng)安汽車合作,幫助長(zhǎng)安汽車把數(shù)據(jù)匯總到云端,建設(shè)了云平臺(tái),使得原來(lái)做一些故障數(shù)據(jù)查詢的響應(yīng)速度,從分鐘級(jí)提升到秒級(jí),帶來(lái)更好的用戶體驗(yàn),從而去做更多的業(yè)務(wù)應(yīng)用。
和太極合作,是一個(gè)火電廠的應(yīng)用,使用 IoTDB 替換 Apache Druid, 構(gòu)建發(fā)電機(jī)組的遠(yuǎn)程分析平臺(tái),管理了11個(gè)發(fā)電機(jī)組的數(shù)據(jù),大幅降低了運(yùn)維成本。
和中國(guó)氣象局合作,把全國(guó)十萬(wàn)個(gè)地面氣象觀測(cè)站的實(shí)時(shí)數(shù)據(jù)進(jìn)行存儲(chǔ)。之前不方便查看單站數(shù)據(jù),尤其不方便查看單站一段歷史時(shí)間數(shù)據(jù),因?yàn)闅庀箢A(yù)報(bào)員預(yù)報(bào)數(shù)據(jù)的時(shí)候,一定程度上會(huì)依賴于所謂的視覺(jué)殘差。要快速查看數(shù)據(jù)在不同時(shí)刻的變化情況,在視覺(jué)上形成動(dòng)畫(huà)效果,這就要求數(shù)據(jù)庫(kù)能非常高速的去突出每個(gè)時(shí)刻的數(shù)據(jù)變化情況,IoTDB恰好滿足這樣的場(chǎng)景。
和東方國(guó)信合作,打造東方國(guó)信Cloudiip平臺(tái),連續(xù)四五年入選國(guó)家十大雙跨平臺(tái)。底層的時(shí)序數(shù)據(jù)庫(kù)是基于IoTDB,并且基于IoTDB發(fā)布了CirroData-TimeS 的衍生產(chǎn)品。
和用友合作,管理了工廠生產(chǎn)設(shè)備的數(shù)據(jù)。用友目前也在基于IoTDB打造對(duì)應(yīng)的產(chǎn)品。還有一些和工業(yè)稍微離得遠(yuǎn)一些的應(yīng)用場(chǎng)景,包括金融、DFS等場(chǎng)景。歡迎大家關(guān)注開(kāi)源項(xiàng)目IoTDB。
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。
電容器相關(guān)文章:電容器原理
電容相關(guān)文章:電容原理 漏電開(kāi)關(guān)相關(guān)文章:漏電開(kāi)關(guān)原理