操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    導(dǎo)讀:本文將介紹 IoTDB,它是一個(gè)基于開(kāi)放數(shù)據(jù)格式的數(shù)據(jù)庫(kù)。

    今天的介紹會(huì)圍繞下面四點(diǎn)展開(kāi):

    01

    IoTDB 簡(jiǎn)介

    IoT是物聯(lián)網(wǎng)的縮寫(xiě),DB是數(shù)據(jù)庫(kù)的縮寫(xiě),IoTDB的名字直接說(shuō)明了它物聯(lián)網(wǎng)數(shù)據(jù)庫(kù)的定位。物聯(lián)網(wǎng)場(chǎng)景下時(shí)序數(shù)據(jù)主要來(lái)自傳感器的采集,如風(fēng)力發(fā)電機(jī)上用于探測(cè)風(fēng)速的傳感器,每秒采集一條數(shù)據(jù),隨著時(shí)間推移,這些數(shù)據(jù)就會(huì)形成時(shí)間序列,時(shí)間序列數(shù)據(jù)就反映了當(dāng)時(shí)風(fēng)力的變化情況。圖中的綠色部分展示了草帽風(fēng)的現(xiàn)象。由于形狀類(lèi)似草帽因此稱(chēng)之為草帽風(fēng),此類(lèi)風(fēng)會(huì)對(duì)風(fēng)機(jī)葉片產(chǎn)生負(fù)面影響,進(jìn)而降低風(fēng)機(jī)壽命。

    物聯(lián)網(wǎng)時(shí)序數(shù)據(jù)是工業(yè)設(shè)備物理量的數(shù)字化記錄,在軌道交通、能源管控、智能制造等領(lǐng)域有廣泛應(yīng)用。

    ① 軌道交通

    在軌道交通領(lǐng)域,通過(guò)將大橋安裝傳感器、對(duì)傳感器數(shù)據(jù)進(jìn)行采集和分析,可以檢測(cè)橋梁的狀態(tài),如撓度、應(yīng)變、振動(dòng)、支座位移情況等,從而可以進(jìn)行有針對(duì)性的健康檢測(cè)和加固,避免橋梁坍塌,保障人民出行安全。IoTDB已有該領(lǐng)域的用戶(hù)案例。

    ② 能源管控

    一些IoTDB的開(kāi)源用戶(hù)對(duì)化工廠(chǎng)進(jìn)行能耗監(jiān)測(cè)、報(bào)警管理、預(yù)測(cè)優(yōu)化,實(shí)現(xiàn)節(jié)能、減排、增效,響應(yīng)“碳達(dá)峰、碳中和”政策。

    ③ 智能制造

    以煙廠(chǎng)對(duì)IoTDB的應(yīng)用為例,煙廠(chǎng)通過(guò)對(duì)設(shè)備狀態(tài)監(jiān)控和統(tǒng)計(jì)過(guò)程控制,提高生產(chǎn)效率,實(shí)現(xiàn)制造業(yè)升級(jí)。

    以上應(yīng)用都是在各種設(shè)備上加裝了大量傳感器,而如何加,是每家工業(yè)企業(yè)需要結(jié)合業(yè)務(wù)特點(diǎn)進(jìn)行確定的。在設(shè)計(jì)數(shù)據(jù)采集的同時(shí),也需要設(shè)計(jì)如何對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ)。通常采集的數(shù)據(jù)越多、粒度越細(xì)越好。一臺(tái)高端設(shè)備,如飛機(jī)有8萬(wàn)個(gè)傳感器;一臺(tái)挖掘機(jī)上會(huì)裝配四五百個(gè)傳感器,但挖掘機(jī)數(shù)量眾多,一家用戶(hù)有兩萬(wàn)臺(tái)挖掘機(jī),就有千萬(wàn)級(jí)時(shí)間序列數(shù)據(jù);兩萬(wàn)臺(tái)風(fēng)力發(fā)電機(jī),每年能產(chǎn)生120PB數(shù)據(jù)。時(shí)序數(shù)據(jù)在物聯(lián)網(wǎng)領(lǐng)域的體量是龐大的。

    飛機(jī)、挖掘機(jī)、風(fēng)電機(jī)離我們的日常生活遙遠(yuǎn),但對(duì)于飛行員、挖掘機(jī)駕駛員和電廠(chǎng)監(jiān)控平臺(tái)管理人員來(lái)說(shuō),每臺(tái)設(shè)備都是有生命的個(gè)體,時(shí)序數(shù)據(jù)就是設(shè)備的心電圖。時(shí)序數(shù)據(jù)是重要的資產(chǎn),為了更好地管理時(shí)序數(shù)據(jù),我們?cè)?011年受到國(guó)家863計(jì)劃支持下發(fā)起了物聯(lián)網(wǎng)時(shí)序數(shù)據(jù)庫(kù)—— IoTDB項(xiàng)目。

    接觸工業(yè)物聯(lián)網(wǎng)用戶(hù)、為用戶(hù)管理時(shí)序數(shù)據(jù),是清華大學(xué)軟件學(xué)院在2011年開(kāi)始的一個(gè)方向。隨著我們對(duì)產(chǎn)業(yè)和時(shí)序數(shù)據(jù)相關(guān)的研究與思考的深入,我們開(kāi)始自研時(shí)序數(shù)據(jù)庫(kù),在2017年推出了IoTDB第一個(gè)版本并在公開(kāi)源碼。2018年我們將項(xiàng)目捐贈(zèng)給基金會(huì)。經(jīng)過(guò)兩年的摸索,IoTDB在2020年9月成為了頂級(jí)項(xiàng)目。至此,IoTDB是首個(gè)入選的工業(yè)物聯(lián)網(wǎng)時(shí)序數(shù)據(jù)庫(kù)項(xiàng)目,也是首個(gè)中國(guó)高校發(fā)起的頂級(jí)項(xiàng)目。IoTDB被來(lái)自德國(guó)、美國(guó)、中國(guó)的工業(yè)互聯(lián)網(wǎng)廠(chǎng)商和智能制造廠(chǎng)商使用和打磨,產(chǎn)品和功能在開(kāi)源社區(qū)中不斷成熟。

    IoTDB產(chǎn)品易用、好用,部署靈活,能開(kāi)箱即用一鍵部署,具有高寫(xiě)入吞吐和低查詢(xún)延遲,支持豐富的時(shí)間序列操作,與現(xiàn)有大數(shù)據(jù)生態(tài)系統(tǒng)集成比較完善。

    IoTDB能夠支持復(fù)雜負(fù)載。傳統(tǒng)數(shù)據(jù)庫(kù)應(yīng)對(duì)簡(jiǎn)單負(fù)載更加友好,但對(duì)復(fù)雜負(fù)載的處理表現(xiàn)不理想。簡(jiǎn)單負(fù)載中,設(shè)備測(cè)點(diǎn)少,采樣頻率低、幾秒一個(gè)點(diǎn)甚至幾分鐘一個(gè)點(diǎn),這種情況下表數(shù)據(jù)量小,一張表就可以滿(mǎn)足設(shè)備一周到一個(gè)月的存儲(chǔ)。但設(shè)備數(shù)據(jù)量大時(shí)需要進(jìn)行分表,用戶(hù)的使用上會(huì)造成不便。關(guān)系表也更加適用于管理規(guī)整的數(shù)據(jù),例如一個(gè)設(shè)備的多個(gè)傳感器采集時(shí)間相同,則表中不需要存儲(chǔ)空值;但當(dāng)每個(gè)設(shè)備上維護(hù)各自的時(shí)鐘,獨(dú)立地上報(bào)數(shù)據(jù),此時(shí)時(shí)間難以對(duì)齊,表的數(shù)據(jù)稀疏,空值多。

    復(fù)雜負(fù)載單體設(shè)備可能會(huì)產(chǎn)生上千甚至數(shù)萬(wàn)的點(diǎn),如飛機(jī)采樣頻率比較高,轉(zhuǎn)動(dòng)傳感器每秒鐘采集幾十甚至幾百個(gè)數(shù)據(jù)點(diǎn),或者人工去分表都難以滿(mǎn)足需求。但I(xiàn)oTDB會(huì)針對(duì)這些復(fù)雜負(fù)載進(jìn)行優(yōu)化。

    gps時(shí)間轉(zhuǎn)換為utc時(shí)間_gps時(shí)間序列分析軟件_序列一致性分析

    IoTDB允許設(shè)備定義數(shù)據(jù)模式。使用傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)時(shí),用戶(hù)首先要定義表結(jié)構(gòu),然后才能寫(xiě)入數(shù)據(jù)。IoTDB允許用戶(hù)不預(yù)先定義表結(jié)構(gòu),直接寫(xiě)入數(shù)據(jù),這個(gè)特性降低了用戶(hù)使用負(fù)擔(dān),也更加適應(yīng)物聯(lián)網(wǎng)設(shè)備快速迭代升級(jí)的場(chǎng)景。假如一個(gè)設(shè)備裝了3、4個(gè)傳感器,隨后又新增了其他感應(yīng)器收集測(cè)點(diǎn),這時(shí)使用傳統(tǒng)數(shù)據(jù)庫(kù)需要Alter Table修改表結(jié)構(gòu),但使用IoTDB即可不用修改表結(jié)構(gòu)直接向數(shù)據(jù)庫(kù)內(nèi)寫(xiě)入數(shù)據(jù),寫(xiě)入過(guò)程中自動(dòng)完成數(shù)據(jù)模式的創(chuàng)建。

    IoTDB支持端云同步。端云同步是物聯(lián)網(wǎng)領(lǐng)域中常見(jiàn)的場(chǎng)景。終端設(shè)備采集數(shù)據(jù),一條條地發(fā)送數(shù)據(jù)到云端數(shù)據(jù)庫(kù)。該過(guò)程中需要在端側(cè)對(duì)數(shù)據(jù)編碼為二進(jìn)制流,在云數(shù)據(jù)庫(kù)側(cè)解碼數(shù)據(jù)后寫(xiě)入數(shù)據(jù)庫(kù)。終端數(shù)據(jù)大量增長(zhǎng)時(shí),存在云端壓力不斷增加,網(wǎng)絡(luò)帶寬消耗大的現(xiàn)象。

    對(duì)此我們提出了基于文件的數(shù)據(jù)同步方法,在終端把數(shù)據(jù)寫(xiě)為壓縮的文件,再把文件同步到云端。由于網(wǎng)絡(luò)傳輸?shù)氖菈嚎s好的文件而不是原始數(shù)據(jù),網(wǎng)絡(luò)流量消耗降低。云端也不需要在解析數(shù)據(jù)后一條條地寫(xiě)入數(shù)據(jù),只需要加載上傳的文件即可,降低了云端CPU消耗。

    IoTDB專(zhuān)注于數(shù)據(jù)的存儲(chǔ)管理,為了支持更多對(duì)數(shù)據(jù)的全生命周期處理,我們與眾多開(kāi)源項(xiàng)目進(jìn)行了集成。IoTDB支持PLC4X等工業(yè)采集協(xié)議,也適配了Kafka、Flink、Spark,還對(duì)數(shù)據(jù)交互軟件和可視化工具做了支持如, 等。用戶(hù)可以自由地利用開(kāi)源軟件滿(mǎn)足自己的數(shù)據(jù)采集、處理、分析的需求。

    IoTDB產(chǎn)品形態(tài)分為三部分:

    ① 部署在嵌入式終端設(shè)備的時(shí)序“數(shù)據(jù)文件”

    在端上,數(shù)據(jù)存儲(chǔ)為時(shí)序數(shù)據(jù)zip文件,支持高性能寫(xiě)入,高壓縮比存儲(chǔ),支持簡(jiǎn)單查詢(xún)。

    ② 部署在邊緣計(jì)算設(shè)備的時(shí)序“數(shù)據(jù)庫(kù)”

    邊緣計(jì)算設(shè)備上,可以支持高效豐富的時(shí)間序列查詢(xún)引擎,提供增刪改查,以及聚合查詢(xún)時(shí)序?qū)R等高級(jí)功能。

    ③ 部署在云端數(shù)據(jù)中心的時(shí)序“數(shù)據(jù)倉(cāng)庫(kù)”

    IoTDB可以與大數(shù)據(jù)分析框架無(wú)縫集成,支持時(shí)序數(shù)據(jù)處理、挖掘分析、機(jī)器學(xué)習(xí)。

    IoTDB與傳統(tǒng)數(shù)據(jù)庫(kù)不同,IoTDB把文件作為重要的概念,是系統(tǒng)的底層基石。

    --

    02

    時(shí)序文件格式

    1. 文件vs數(shù)據(jù)庫(kù)

    文件不是一個(gè)長(zhǎng)活服務(wù),不會(huì)丟失;而數(shù)據(jù)庫(kù)作為長(zhǎng)活服務(wù),需要保持在線(xiàn),為此需要為數(shù)據(jù)庫(kù)設(shè)計(jì)高可用、保活等策略,需要檢查數(shù)據(jù)庫(kù)運(yùn)行狀態(tài)是否正常。文件的運(yùn)維負(fù)擔(dān)會(huì)比數(shù)據(jù)庫(kù)的運(yùn)維負(fù)擔(dān)輕。寫(xiě)入模式方面文件是追加寫(xiě)入的方式,數(shù)據(jù)庫(kù)提供了增刪改查功能。寫(xiě)入文件的數(shù)據(jù)需要在文件關(guān)閉后進(jìn)行查詢(xún),而數(shù)據(jù)庫(kù)數(shù)據(jù)寫(xiě)入后即可進(jìn)行查詢(xún)。文件的查詢(xún)流程和管理需要自己實(shí)現(xiàn),而數(shù)據(jù)庫(kù)使用SQL即可完成數(shù)據(jù)的查詢(xún)。

    序列一致性分析_gps時(shí)間序列分析軟件_gps時(shí)間轉(zhuǎn)換為utc時(shí)間

    對(duì)數(shù)據(jù)時(shí)效性和查詢(xún)負(fù)載不復(fù)雜的場(chǎng)景中,數(shù)據(jù)存儲(chǔ)到文件的模式更加輕便、簡(jiǎn)單。數(shù)據(jù)庫(kù)更適用于數(shù)據(jù)應(yīng)用逐漸豐富、對(duì)查詢(xún)要求高的場(chǎng)景。

    2. 常見(jiàn)文件結(jié)構(gòu)

    Spark、Hive、廣泛使用了CSV、ORC、這些文件結(jié)構(gòu)。ORC和是支持嵌套的列式存儲(chǔ)文件結(jié)構(gòu)。當(dāng)使用這些文件結(jié)構(gòu)存儲(chǔ)數(shù)據(jù)時(shí)也需要進(jìn)行建模,包括定義每列的數(shù)據(jù)類(lèi)型和名稱(chēng)等。

    3. 建模方式

    數(shù)據(jù)有多種建模方式。

    一種建模方式是把所有設(shè)備數(shù)據(jù)都存到一個(gè)文件里面,此時(shí)文件中表結(jié)構(gòu)第一列是時(shí)間戳,第二列是設(shè)備名,后面是這個(gè)設(shè)備的所有的測(cè)點(diǎn)數(shù)據(jù)。可以看到這種建模方式下,一個(gè)文件可以管理多個(gè)設(shè)備的數(shù)據(jù),但設(shè)備名字是被重復(fù)存儲(chǔ)的。當(dāng)查詢(xún)一個(gè)設(shè)備的一個(gè)測(cè)點(diǎn)的時(shí)間序列時(shí),下圖中建模方式1的藍(lán)色部分需要全部讀出來(lái)進(jìn)行過(guò)濾后才能得到結(jié)果。

    第二種建模方式也是可以在一個(gè)文件里管理多個(gè)設(shè)備的,整個(gè)文件只有四列,其中設(shè)備名和測(cè)點(diǎn)名是重復(fù)存儲(chǔ)的,查詢(xún)時(shí)就需要讀取更多的數(shù)據(jù),基本上需要把所有數(shù)據(jù)都查找一遍才能拿到需要的數(shù)據(jù)。

    第三種建模方式是每一個(gè)設(shè)備一個(gè)文件。這種模式?jīng)]有重復(fù)存儲(chǔ)的數(shù)據(jù),但在一個(gè)應(yīng)用里設(shè)備數(shù)量較多、達(dá)到上千萬(wàn)量級(jí),而上千萬(wàn)個(gè)文件同時(shí)寫(xiě)入是不能實(shí)現(xiàn)的方式,此外大量文件對(duì)文件系統(tǒng)也是負(fù)擔(dān)。

    第四種建模方式是一個(gè)時(shí)間序列存儲(chǔ)為一個(gè)文件。這種方式相比第三種在實(shí)際應(yīng)用中更不可行。

    幾種建模方式從文件數(shù)的角度,建模方式一和二的文件數(shù)可控,一個(gè)文件就可以存儲(chǔ)所有數(shù)據(jù)gps時(shí)間序列分析軟件,在文件大小超過(guò)閾值后再寫(xiě)入新的文件。建模三的文件數(shù)就是設(shè)備數(shù),建模四文件數(shù)是序列數(shù)。在一個(gè)應(yīng)用中希望文件數(shù)比較可控,我們更傾向使用建模一和二,整個(gè)系統(tǒng)的穩(wěn)定性是最重要的。在存儲(chǔ)方面,建模三和四沒(méi)有冗余的數(shù)據(jù),在一些設(shè)備數(shù)比較少時(shí)會(huì)使用建模三。建模二的冗余數(shù)據(jù)又比建模一的更多。

    為什么會(huì)出現(xiàn)空值?一個(gè)設(shè)備假如有一萬(wàn)個(gè)傳感器,這一萬(wàn)個(gè)傳感器的采集時(shí)間都是一樣的,此時(shí)可以存成一行,且這一行沒(méi)有任何的空值。但是一旦多個(gè)傳感器的采集時(shí)間不同,就無(wú)法按時(shí)間對(duì)齊,存儲(chǔ)時(shí)會(huì)出現(xiàn)空值的情況,空值也會(huì)影響文件的壓縮比。建模一和三都會(huì)存儲(chǔ)空值。

    由于建模方式三、四都可以規(guī)避冗余數(shù)據(jù),因此定位速度應(yīng)該是最快的。建模方式一能夠避免掉一些測(cè)點(diǎn)的讀取,建模二需要讀出所有數(shù)據(jù),所以建模二的定位速度最慢。

    可見(jiàn),在壓縮比、查詢(xún)性能和海量序列管理幾個(gè)維度上,前面的幾個(gè)建模方式都不是完美的。是否有一種文件結(jié)構(gòu)在管理時(shí)序數(shù)據(jù)時(shí)gps時(shí)間序列分析軟件,文件數(shù)可控、無(wú)冗余數(shù)據(jù)、查詢(xún)性能和寫(xiě)入性能比較高呢?它就是。

    4. 針對(duì)時(shí)序數(shù)據(jù)的文件結(jié)構(gòu)——

    全稱(chēng)是Time File。它的數(shù)據(jù)模型是為了物聯(lián)網(wǎng)領(lǐng)域設(shè)計(jì)的,包括設(shè)備、物理量(測(cè)點(diǎn))、時(shí)間和值,用管理數(shù)據(jù)時(shí)只有這四個(gè)概念。存儲(chǔ)優(yōu)化方面,采用列式存儲(chǔ),編碼和壓縮可選多種方式,時(shí)間列可選是否由多列共享,提供了列式寫(xiě)入接口。查詢(xún)優(yōu)化方面,存儲(chǔ)了預(yù)聚合信息、樹(shù)形索引、向量化查詢(xún)等。

    ① 數(shù)據(jù)模型

    序列一致性分析_gps時(shí)間序列分析軟件_gps時(shí)間轉(zhuǎn)換為utc時(shí)間

    有設(shè)備、物理量(測(cè)點(diǎn))、時(shí)間和值這四個(gè)狀態(tài),圖中是兩個(gè)的典型模型。

    圖中左側(cè)是一個(gè)車(chē)輛有兩個(gè)傳感器,這兩個(gè)傳感器采集的時(shí)間是不對(duì)齊的,這時(shí)我們叫它非對(duì)齊的序列。那這種建模方式會(huì)把每一個(gè)時(shí)間序列里都存一列時(shí)間,這種方式是最節(jié)省空間的,沒(méi)有存儲(chǔ)任何空值。這種方式適合一個(gè)設(shè)備的不同傳感器是獨(dú)立采集的場(chǎng)景。

    圖中右側(cè)這種設(shè)備GPS,有經(jīng)度和緯度兩個(gè)物理量,那這種數(shù)據(jù)一般都是同時(shí)采集的,會(huì)共享一列時(shí)間戳。這種方式兩個(gè)列只存一列時(shí)間,我們稱(chēng)之為對(duì)齊序列。可以看到對(duì)齊還是不對(duì)齊應(yīng)該是一個(gè)設(shè)備的屬性,所以在設(shè)備層面有一個(gè)屬性來(lái)做控制,在寫(xiě)入時(shí)也可以設(shè)置這個(gè)設(shè)備的屬性。這個(gè)數(shù)據(jù)模型的特點(diǎn)是在0.13版本去引入的,3月會(huì)發(fā)布0.13版本。

    在場(chǎng)景和模型的選擇方面,非對(duì)齊序列更適合多物理量獨(dú)立采集場(chǎng)景,對(duì)齊序列更適多物理量同時(shí)采集的場(chǎng)景。可以根據(jù)不同場(chǎng)景選擇不同存儲(chǔ)引擎。

    ② 數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)

    數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)如圖。存儲(chǔ)一個(gè)設(shè)備一段時(shí)間寫(xiě)入的數(shù)據(jù)。Chunk是一個(gè)物理量一段時(shí)間的數(shù)據(jù),分為三種Chunk:(1),時(shí)間+值;(2),時(shí)間;(3),值。在Chunk基礎(chǔ)上我們又把數(shù)據(jù)劃分成Page,Page是一個(gè)物理量一段時(shí)間的數(shù)據(jù),有三種Page:(1),時(shí)間+值;(2),時(shí)間;(3),值。通過(guò)這種方式,采用分級(jí)的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)進(jìn)行管理。

    ③ Page 編碼壓縮算法

    Page是數(shù)據(jù)最小粒度,可以對(duì)Page進(jìn)行編碼和壓縮。圖中展示了幾種編碼和壓縮算法,紅色的是數(shù)據(jù)類(lèi)型的默認(rèn)壓縮編碼與使用的算法。

    ④ 索引結(jié)構(gòu)

    有豐富的索引結(jié)構(gòu)。

    序列內(nèi)索引是三級(jí)統(tǒng)計(jì)信息(Page、Chunk、文件級(jí)),作用是過(guò)濾數(shù)據(jù)塊(減少 IO 和物化)和支持聚合查詢(xún)(直接返回結(jié)果)。

    序列間索引是樹(shù)形元數(shù)據(jù)索引,作用是管理海量序列更高效。

    、ORC需要一次加載全量元數(shù)據(jù),查詢(xún)復(fù)雜度是O(N);只加載查詢(xún)路徑的元數(shù)據(jù),時(shí)間復(fù)雜度O(log(N))。復(fù)雜度會(huì)比、ORC低很多。

    ⑤ 向量化寫(xiě)入接口、查詢(xún)引擎

    在向量化的寫(xiě)入接口和查詢(xún)引擎方面,我們引用了一個(gè)的概念。結(jié)構(gòu)就是管理了一個(gè)小的子表。下圖中右側(cè)是它的具體的數(shù)據(jù)定義方式,可以看到它是一個(gè)列式的存儲(chǔ),采用了一些原生數(shù)據(jù)類(lèi)型的數(shù)組,沒(méi)有封裝更多對(duì)象。這個(gè)結(jié)構(gòu)也保持了IoTDB的高效的讀寫(xiě)性能。

    gps時(shí)間序列分析軟件_序列一致性分析_gps時(shí)間轉(zhuǎn)換為utc時(shí)間

    ⑥ 讀寫(xiě)性能

    下圖中是在公開(kāi)的數(shù)據(jù)集合上的寫(xiě)入速度、磁盤(pán)占用、單列查詢(xún)耗時(shí)三個(gè)指標(biāo)與、ORC、CSV格式在四個(gè)公開(kāi)數(shù)據(jù)集上的對(duì)比。

    --

    03

    基于開(kāi)放文件的數(shù)據(jù)庫(kù)架構(gòu)

    我們基于做IoTDB引擎,做數(shù)據(jù)庫(kù)的目的是因?yàn)槲募o(wú)法提供實(shí)時(shí)查詢(xún),而IOT有實(shí)時(shí)查詢(xún)數(shù)據(jù)的監(jiān)控的需求;文件難以處理亂序數(shù)據(jù)、數(shù)據(jù)更新困難,工業(yè)場(chǎng)景中常見(jiàn)亂序數(shù)據(jù),也經(jīng)常有更新數(shù)據(jù)需求;多文件管理、分析需要應(yīng)用層處理。

    開(kāi)放的數(shù)據(jù)架構(gòu)指的是IoTDB是由“時(shí)序文件 + 數(shù)據(jù)庫(kù)引擎 + 分析引擎”三部分組裝起來(lái)的松耦合、模塊化的架構(gòu),類(lèi)似于“存算分離”架構(gòu)模式。這與傳統(tǒng)數(shù)據(jù)庫(kù)的黑盒子模式不同,這一架構(gòu)對(duì)用戶(hù)透明可見(jiàn)。

    IoTDB具體架構(gòu)如圖所示。

    最左面是數(shù)據(jù)的來(lái)源,有設(shè)備數(shù)據(jù)、系統(tǒng)狀態(tài)等。

    數(shù)據(jù)可以通過(guò)圖中藍(lán)色部分的時(shí)序文件導(dǎo)入。我們提供了文件級(jí)的API,API和、ORC類(lèi)似,可以對(duì)單個(gè)進(jìn)行讀寫(xiě)操作。我們把數(shù)據(jù)通過(guò)API寫(xiě)成文件格式后,可以通過(guò)的一些加載模塊把文件加載到數(shù)據(jù)庫(kù)中。此時(shí)數(shù)據(jù)文件層的是被數(shù)據(jù)庫(kù)的引擎所索引的,它其實(shí)在磁盤(pán)上只是換了一個(gè)目錄,我們還是能夠看到這些文件。這里的文件可以加載進(jìn)去再卸載出來(lái),文件管理非常靈活。

    文件層之上是數(shù)據(jù)庫(kù)的引擎層。數(shù)據(jù)庫(kù)的引擎能夠管理多個(gè)數(shù)據(jù)文件,它還負(fù)責(zé)提供給用戶(hù)更多訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)的接口,包括原生的讀寫(xiě)接口以及命令行,交互工具,還有可視化的平臺(tái)。

    分析引擎方面,我們開(kāi)發(fā)了各種對(duì)接開(kāi)源數(shù)據(jù)處理平臺(tái)的連接器,IoTDB 和底層的數(shù)據(jù)文件,都可以和分析引擎進(jìn)行對(duì)接。

    IoTDB是一個(gè)比較開(kāi)放的架構(gòu),架構(gòu)的設(shè)計(jì)也是我們?cè)诓粩嗟厥褂瞄_(kāi)源系統(tǒng)的過(guò)程中總結(jié)出來(lái)的。針對(duì)文件靈活的設(shè)計(jì)簡(jiǎn)化了數(shù)據(jù)庫(kù)的運(yùn)維,讓我們可以隨時(shí)從一個(gè)數(shù)據(jù)庫(kù)里把數(shù)據(jù)文件拿來(lái)做分析。文件也可以從這個(gè)設(shè)備側(cè)寫(xiě)完后再加載到數(shù)據(jù)庫(kù)里去。

    端側(cè)應(yīng)用的監(jiān)控通常不需要非常及時(shí),文件足夠滿(mǎn)足需求;端側(cè)文件上傳到邊側(cè)進(jìn)行分析,也可以放到數(shù)據(jù)庫(kù)中進(jìn)行查詢(xún);云側(cè)文件可以將文件對(duì)接Spark、Flink做數(shù)據(jù)分析,可以作為時(shí)序數(shù)據(jù)倉(cāng)庫(kù)使用。邊側(cè)和云測(cè)可以部署IoTDB數(shù)據(jù)庫(kù)。

    基于兩層設(shè)備和物理量模型,我們?cè)跀?shù)據(jù)庫(kù)層面擴(kuò)展了豐富的樹(shù)形結(jié)構(gòu)的物聯(lián)網(wǎng)數(shù)據(jù)模型。樹(shù)形結(jié)構(gòu)對(duì)應(yīng)了層級(jí)管理設(shè)備資產(chǎn)的方式,即設(shè)備歸屬的區(qū)域、設(shè)備的類(lèi)型、設(shè)備號(hào)。從Root到倒數(shù)第二層節(jié)點(diǎn)的全路徑來(lái)定位設(shè)備ID。這種建模方式可以把一個(gè)應(yīng)用的所有時(shí)間序列都統(tǒng)一到一棵樹(shù)中進(jìn)行管理。

    樹(shù)形結(jié)構(gòu)的數(shù)據(jù)模型與通過(guò)存儲(chǔ)組進(jìn)行連接。存儲(chǔ)組可以讓用戶(hù)指定哪些序列可以存儲(chǔ)到一個(gè)文件里,一個(gè)存儲(chǔ)組一段時(shí)間的數(shù)據(jù)會(huì)形成一個(gè)。

    序列一致性分析_gps時(shí)間序列分析軟件_gps時(shí)間轉(zhuǎn)換為utc時(shí)間

    接下來(lái)我們看一些實(shí)際數(shù)據(jù)模型轉(zhuǎn)化在IoTDB中建模的案例。圖中是OPC 采樣的點(diǎn)位,這些點(diǎn)位是一個(gè)個(gè)Name,按點(diǎn)分割。這個(gè)結(jié)構(gòu)和樹(shù)形結(jié)構(gòu)有天然的映射關(guān)系,我們可以在數(shù)據(jù)前面加一個(gè)root,按點(diǎn)進(jìn)行樹(shù)形模型拆解后構(gòu)造成一棵樹(shù),映射非常自然。

    數(shù)據(jù)模型有Tag和Field,我們把Tag value當(dāng)作樹(shù)里的節(jié)點(diǎn),F(xiàn)ield name作為物理量。我們不重復(fù)存儲(chǔ)Tag name,可以快速定位數(shù)據(jù)。

    --

    04

    開(kāi)源社區(qū)建設(shè)

    1. 核心理念

    開(kāi)源社區(qū)建設(shè)方面,我們運(yùn)營(yíng)了兩年開(kāi)源社區(qū),愈發(fā)感受到開(kāi)源社區(qū)核心理念的重要性。

    平常在公司和團(tuán)隊(duì)內(nèi)工作與開(kāi)源社區(qū)不同,開(kāi)源社區(qū)需要更多地把溝通開(kāi)放出來(lái)。IoTDB是一個(gè)基于文件的開(kāi)放架構(gòu),思想也要對(duì)應(yīng)地開(kāi)放。清華軟件學(xué)院團(tuán)隊(duì)的工作流程都需要文檔化,向社區(qū)開(kāi)放,同步項(xiàng)目進(jìn)度。

    作為開(kāi)源貢獻(xiàn)者,我們每個(gè)人都希望我們提的一件被尊重,對(duì)于開(kāi)源社區(qū)來(lái)說(shuō)這也是一個(gè)對(duì)待貢獻(xiàn)者的基本態(tài)度。

    有些貢獻(xiàn)者除了提一些建議外還能給貢獻(xiàn)代碼,小的修改提一個(gè)pr社區(qū)就可以審閱合并,但更大的功能模塊開(kāi)發(fā)就需要分布式協(xié)作了。

    我們建設(shè)開(kāi)源社區(qū)的思路是通過(guò)開(kāi)放架構(gòu)、開(kāi)放思想,尊重每個(gè)人的建議和分布式協(xié)作,達(dá)到為用戶(hù)提供好用的開(kāi)源軟件的核心目標(biāo)。

    2. 建立了活躍的開(kāi)源社區(qū)

    IoTDB社區(qū)目前有160多位開(kāi)發(fā)者,上千人的用戶(hù)群。IoTDB經(jīng)常舉辦培訓(xùn)會(huì)和開(kāi)發(fā)者、用戶(hù)見(jiàn)面會(huì)。

    3. 社區(qū)影響力日益凸顯

    社區(qū)在軟件開(kāi)發(fā)過(guò)程中的影響力逐漸增加,工業(yè)PLC數(shù)據(jù)采集系統(tǒng)已經(jīng)與IoTDB進(jìn)行了對(duì)接和集成,巴西的一些開(kāi)發(fā)者貢獻(xiàn)了IoTDB作為的底層存儲(chǔ)。國(guó)內(nèi)龍頭企業(yè)也設(shè)置了IoTDB相關(guān)的工作崗位。

    4. 應(yīng)用案例

    在應(yīng)用方面:上海地鐵運(yùn)行了兩年半,管理了100萬(wàn)時(shí)間序列數(shù)據(jù)。湖南湘潭和耒陽(yáng)電廠(chǎng)數(shù)據(jù)管理系統(tǒng)應(yīng)用IoTDB運(yùn)行了20個(gè)月,管理1萬(wàn)條序列。東莞東城環(huán)衛(wèi)管理系統(tǒng)中管理的各種環(huán)衛(wèi)車(chē)的數(shù)據(jù),運(yùn)行兩年多時(shí)間中管理著數(shù)千條序列。

網(wǎng)站首頁(yè)   |    關(guān)于我們   |    公司新聞   |    產(chǎn)品方案   |    用戶(hù)案例   |    售后服務(wù)   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區(qū)    電話(huà):010-     郵箱:@126.com

備案號(hào):冀ICP備2024067069號(hào)-3 北京科技有限公司版權(quán)所有