本發(fā)明涉及可視化技術(shù)領(lǐng)域,具體而言,涉及一種智能設(shè)備數(shù)據(jù)可視化方法及系統(tǒng)。
背景技術(shù):
隨著智能設(shè)備的普及,數(shù)據(jù)量越來越大,設(shè)備種類越來越多,用戶的可視化需求越來越多樣化,傳統(tǒng)的數(shù)據(jù)可視化方法,在功能上和性能上越來越無法滿足客戶的需求?,F(xiàn)有的數(shù)據(jù)可視化方法具有如下缺點:
(1)需要預(yù)先配置可視化需要的數(shù)據(jù)和模型,數(shù)據(jù)寫入時,根據(jù)數(shù)據(jù)模型實時計算得到可視化數(shù)據(jù),不能同時支持多種智能設(shè)備的各種復(fù)雜需求,只支持平均值,總數(shù)等簡單需求;
(2)需要專用的數(shù)據(jù)查詢設(shè)備,從數(shù)據(jù)庫中獲取全量數(shù)據(jù),然后經(jīng)過處理后,返回給儀表盤或用戶,不支持通用并且簡單的數(shù)據(jù)查詢接口;
(3)無法滿足高頻率、大數(shù)據(jù)量的的可視化數(shù)據(jù)的查詢。
技術(shù)實現(xiàn)要素:
為解決上述問題,本發(fā)明的目的在于提供一種智能設(shè)備數(shù)據(jù)可視化方法及系統(tǒng),既能滿足各種智能設(shè)備的多樣性功能需求,又能滿足各種智能設(shè)備大數(shù)據(jù)量的數(shù)據(jù)查詢需求。
本發(fā)明提供了一種智能設(shè)備數(shù)據(jù)可視化方法,該方法包括:
步驟1,寫入多個智能設(shè)備待處理的原始數(shù)據(jù),包括時序數(shù)據(jù)和狀態(tài)數(shù)據(jù),將所述時序數(shù)據(jù)和所述狀態(tài)數(shù)據(jù)存儲在數(shù)據(jù)存儲模塊中;
步驟2,根據(jù)預(yù)定義的預(yù)計算配置模型,將寫入的多個智能設(shè)備最近的原始數(shù)據(jù)進行數(shù)據(jù)預(yù)處理,并將原始數(shù)據(jù)和預(yù)處理后的數(shù)據(jù)均寫入數(shù)據(jù)緩存模塊中;
步驟3,用戶通過數(shù)據(jù)聚合模塊的數(shù)據(jù)查詢接口對原始數(shù)據(jù)進行可視化查詢,并將聚合查詢的結(jié)果數(shù)據(jù)緩存在所述數(shù)據(jù)緩存模塊中;
步驟4,在所述數(shù)據(jù)緩存模塊中查詢結(jié)果數(shù)據(jù)是否存在,如果結(jié)果數(shù)據(jù)在所述數(shù)據(jù)緩存模塊中存在,則直接從所述數(shù)據(jù)緩存模塊中獲取結(jié)果數(shù)據(jù),如果結(jié)果數(shù)據(jù)在所述數(shù)據(jù)緩存模塊中不存在,則執(zhí)行步驟5;
步驟5,從所述數(shù)據(jù)緩存模塊中獲取最近的原始數(shù)據(jù),如果原始數(shù)據(jù)存在,則直接從所述數(shù)據(jù)緩存模塊中獲取原始數(shù)據(jù),如果原始數(shù)據(jù)不存在,則執(zhí)行步驟6;
步驟6,用戶根據(jù)查詢條件從所述數(shù)據(jù)存儲模塊中查詢原始數(shù)據(jù);
步驟7,把查詢到的原始數(shù)據(jù)通過所述數(shù)據(jù)聚合模塊的繪圖接口進行可視化展示。
作為本發(fā)明進一步的改進,步驟1中所述數(shù)據(jù)存儲模塊包括時序數(shù)據(jù)存儲系統(tǒng)和狀態(tài)數(shù)據(jù)存儲系統(tǒng),所述時序數(shù)據(jù)以追加的方式寫入所述時序數(shù)據(jù)存儲系統(tǒng),所述狀態(tài)數(shù)據(jù)以更新的方式寫入所述狀態(tài)數(shù)據(jù)存儲系統(tǒng)。
作為本發(fā)明進一步的改進,所述時序數(shù)據(jù)存儲系統(tǒng)為基于lsm結(jié)構(gòu)的cassandra/hbase存儲系統(tǒng),所述狀態(tài)數(shù)據(jù)存儲系統(tǒng)為mysql關(guān)系數(shù)據(jù)庫。
作為本發(fā)明進一步的改進,步驟3中的數(shù)據(jù)查詢接口為restful格式,可視化查詢的參數(shù)為:時間區(qū)間、時區(qū)、數(shù)據(jù)取樣間隔、數(shù)據(jù)過濾參數(shù)、可視化數(shù)據(jù)源和聚合方法。
作為本發(fā)明進一步的改進,時間區(qū)間包括相對時間和絕對時間。
作為本發(fā)明進一步的改進,聚合方法包括最小值方法、最大值方法、平均值方法、方差方法和分布方法。
作為本發(fā)明進一步的改進,所述可視化數(shù)據(jù)源為寫入的多個智能設(shè)備。
本發(fā)明還提供了一種智能設(shè)備數(shù)據(jù)可視化系統(tǒng),包括:
寫入數(shù)據(jù)單元,用于寫入多個智能設(shè)備待處理的原始數(shù)據(jù),包括時序數(shù)據(jù)和狀態(tài)數(shù)據(jù),將所述時序數(shù)據(jù)和所述狀態(tài)數(shù)據(jù)存儲在數(shù)據(jù)存儲模塊中;
預(yù)計算配置單元,用于根據(jù)預(yù)定義的預(yù)計算配置模型,將寫入的多個智能設(shè)備最近的原始數(shù)據(jù)進行數(shù)據(jù)預(yù)處理,并將這些原始數(shù)據(jù)寫入數(shù)據(jù)緩存模塊中;
繪圖數(shù)據(jù)聚合單元,用戶通過數(shù)據(jù)聚合模塊的數(shù)據(jù)查詢接口對原始數(shù)據(jù)進行可視化查詢,并將聚合查詢的結(jié)果數(shù)據(jù)緩存在所述數(shù)據(jù)緩存模塊中;在所述數(shù)據(jù)緩存模塊中查詢結(jié)果數(shù)據(jù)緩存是否存在,如果結(jié)果數(shù)據(jù)緩存存在,則直接從所述數(shù)據(jù)緩存模塊中獲取結(jié)果數(shù)據(jù),如果結(jié)果數(shù)據(jù)緩存不存在,則從所述數(shù)據(jù)緩存模塊中獲取最近的原始數(shù)據(jù),如果原始數(shù)據(jù)存在,則直接從所述數(shù)據(jù)緩存模塊中獲取原始數(shù)據(jù),如果原始數(shù)據(jù)不存在,則用戶根據(jù)查詢條件從所述數(shù)據(jù)存儲模塊中查詢原始數(shù)據(jù);把查詢到的原始數(shù)據(jù)通過所述數(shù)據(jù)聚合模塊的繪圖接口進行可視化展示。
作為本發(fā)明進一步的改進,所述數(shù)據(jù)存儲模塊包括時序數(shù)據(jù)存儲系統(tǒng)和狀態(tài)數(shù)據(jù)存儲系統(tǒng),所述時序數(shù)據(jù)以追加的方式寫入所述時序數(shù)據(jù)存儲系統(tǒng),所述狀態(tài)數(shù)據(jù)以更新的方式寫入所述狀態(tài)數(shù)據(jù)存儲系統(tǒng)。
作為本發(fā)明進一步的改進,所述數(shù)據(jù)緩存模塊用于緩存智能設(shè)備的最近的原始數(shù)據(jù)或聚合查詢的結(jié)果數(shù)據(jù)。
本發(fā)明的有益效果為:
1、同時使用了兩套數(shù)據(jù)存儲系統(tǒng):時序數(shù)據(jù)存儲系統(tǒng)和狀態(tài)數(shù)據(jù)存儲系統(tǒng),使得在功能和性能上支持各種智能設(shè)備數(shù)據(jù)的可視化需求;
2、數(shù)據(jù)聚合功能支持多種可視化數(shù)據(jù)需求,包括:時間區(qū)間,時區(qū),取樣間隔,空值填充方法,可視化數(shù)據(jù)源,聚合方法等等;
3、預(yù)計算配置模型支持大量數(shù)據(jù)的可視化聚合需求;
4、根據(jù)設(shè)備數(shù)據(jù)可視化的特點,設(shè)計了兩套緩存:結(jié)果數(shù)據(jù)緩存和最近原始數(shù)據(jù)緩存。
附圖說明
圖1為本發(fā)明第一實施例所述的一種智能設(shè)備數(shù)據(jù)可視化方法的流程示意圖。
具體實施方式
下面通過具體的實施例并結(jié)合附圖對本發(fā)明做進一步的詳細描述。
實施例1,如圖1所示,本發(fā)明第一實施例所述的一種智能設(shè)備數(shù)據(jù)可視化方法,該方法包括:
步驟1,寫入多個智能設(shè)備待處理的原始數(shù)據(jù),包括時序數(shù)據(jù)和狀態(tài)數(shù)據(jù),將時序數(shù)據(jù)和狀態(tài)數(shù)據(jù)存儲在數(shù)據(jù)存儲模塊中;其中,數(shù)據(jù)存儲模塊包括時序數(shù)據(jù)存儲系統(tǒng)和狀態(tài)數(shù)據(jù)存儲系統(tǒng),時序數(shù)據(jù)以追加的方式寫入時序數(shù)據(jù)存儲系統(tǒng),狀態(tài)數(shù)據(jù)以更新的方式寫入狀態(tài)數(shù)據(jù)存儲系統(tǒng);時序數(shù)據(jù)存儲系統(tǒng)為基于lsm結(jié)構(gòu)的cassandra/hbase存儲系統(tǒng),這種系統(tǒng)容易擴展,并且最新數(shù)據(jù)在內(nèi)存,適合存儲基于時間不斷增長,數(shù)據(jù)量大,并且有時效性的智能設(shè)備時序數(shù)據(jù);狀態(tài)數(shù)據(jù)存儲系統(tǒng)為mysql關(guān)系數(shù)據(jù)庫,功能強大,用于支撐用戶對于最新數(shù)據(jù)的多維度的數(shù)據(jù)分析,狀態(tài)數(shù)據(jù)數(shù)據(jù)量較小。
步驟2,根據(jù)預(yù)定義的預(yù)計算配置模型,將寫入的多個智能設(shè)備最近的原始數(shù)據(jù)進行數(shù)據(jù)預(yù)處理,并將這些原始數(shù)據(jù)寫入數(shù)據(jù)緩存模塊中。
步驟3,用戶通過數(shù)據(jù)聚合模塊的數(shù)據(jù)查詢接口對原始數(shù)據(jù)進行可視化查詢,并將聚合查詢的結(jié)果數(shù)據(jù)緩存在數(shù)據(jù)緩存模塊中;其中,數(shù)據(jù)查詢接口為restful格式,可視化查詢的參數(shù)為:時間區(qū)間、時區(qū)、數(shù)據(jù)取樣間隔、數(shù)據(jù)過濾參數(shù)、可視化數(shù)據(jù)源和聚合方法,時間區(qū)間包括相對時間和絕對時間,聚合方法包括最小值方法、最大值方法、平均值方法、方差方法和分布方法,可視化數(shù)據(jù)源為寫入的多個智能設(shè)備。
步驟4,在數(shù)據(jù)緩存模塊中查詢結(jié)果數(shù)據(jù)是否存在,如果結(jié)果數(shù)據(jù)在數(shù)據(jù)緩存模塊中存在,則直接從數(shù)據(jù)緩存模塊中獲取結(jié)果數(shù)據(jù),如果結(jié)果數(shù)據(jù)在數(shù)據(jù)緩存模塊中不存在,則執(zhí)行步驟5。
步驟5,從數(shù)據(jù)緩存模塊中獲取最近的原始數(shù)據(jù),如果原始數(shù)據(jù)存在,則直接從數(shù)據(jù)緩存模塊中獲取原始數(shù)據(jù),如果原始數(shù)據(jù)不存在,則執(zhí)行步驟6。
步驟6,用戶根據(jù)查詢條件從數(shù)據(jù)存儲模塊中查詢原始數(shù)據(jù)。
步驟7,把查詢到的原始數(shù)據(jù)通過數(shù)據(jù)聚合模塊的繪圖接口進行可視化展示。
實施例2,本發(fā)明第二實施例所述的一種智能設(shè)備數(shù)據(jù)可視化系統(tǒng),包括:
寫入數(shù)據(jù)單元,用于寫入多個智能設(shè)備待處理的原始數(shù)據(jù),包括時序數(shù)據(jù)和狀態(tài)數(shù)據(jù),將時序數(shù)據(jù)和狀態(tài)數(shù)據(jù)存儲在數(shù)據(jù)存儲模塊中;數(shù)據(jù)存儲模塊包括時序數(shù)據(jù)存儲系統(tǒng)和狀態(tài)數(shù)據(jù)存儲系統(tǒng),時序數(shù)據(jù)以追加的方式寫入時序數(shù)據(jù)存儲系統(tǒng),狀態(tài)數(shù)據(jù)以更新的方式寫入狀態(tài)數(shù)據(jù)存儲系統(tǒng)。時序數(shù)據(jù)存儲系統(tǒng)支持基于單個智能設(shè)備在一個時區(qū)區(qū)間的的數(shù)據(jù)的可視化數(shù)據(jù)查詢,如一個智能設(shè)備在最近一周的數(shù)據(jù)變化曲線;狀態(tài)數(shù)據(jù)存儲系統(tǒng)支持大量智能設(shè)備在最新時間點的數(shù)據(jù)可視化分析,如當(dāng)前所有智能設(shè)備的運行狀態(tài)等。
預(yù)計算配置單元,用于根據(jù)預(yù)定義的預(yù)計算配置模型,將寫入的多個智能設(shè)備最近的原始數(shù)據(jù)進行數(shù)據(jù)預(yù)處理,并將這些原始數(shù)據(jù)寫入數(shù)據(jù)緩存模塊中;預(yù)計算配置單元可以支持工業(yè)智能設(shè)備大量的數(shù)據(jù)可視化需求,根據(jù)用戶提前配置的規(guī)則,在數(shù)據(jù)寫入的時候,就完成計算,查詢時,可以快速滿足用戶的需求。
數(shù)據(jù)聚合單元,用戶通過數(shù)據(jù)聚合模塊的數(shù)據(jù)查詢接口對原始數(shù)據(jù)進行可視化查詢,并將聚合查詢的結(jié)果數(shù)據(jù)緩存在數(shù)據(jù)緩存模塊中;在數(shù)據(jù)緩存模塊中查詢結(jié)果數(shù)據(jù)緩存是否存在,如果結(jié)果數(shù)據(jù)緩存存在,則直接從數(shù)據(jù)緩存模塊中獲取結(jié)果數(shù)據(jù),如果結(jié)果數(shù)據(jù)緩存不存在,則從數(shù)據(jù)緩存模塊中獲取最近的原始數(shù)據(jù),如果原始數(shù)據(jù)存在,則直接從數(shù)據(jù)緩存模塊中獲取原始數(shù)據(jù),如果原始數(shù)據(jù)不存在,則用戶根據(jù)查詢條件從數(shù)據(jù)存儲模塊中查詢原始數(shù)據(jù);把查詢到的原始數(shù)據(jù)通過數(shù)據(jù)聚合模塊的繪圖接口進行可視化展示。其中,數(shù)據(jù)緩存模塊用于緩存智能設(shè)備的最近的原始數(shù)據(jù)或聚合查詢的結(jié)果數(shù)據(jù),支持用戶對最近常用數(shù)據(jù)可視化查詢需求;數(shù)據(jù)聚合模塊支持各種復(fù)雜的可視化查詢,如時間區(qū)間(相對時間,絕對時間)、聚合方法(最小值,最大值,平均值,方差,分布)、數(shù)據(jù)取樣、數(shù)據(jù)過濾規(guī)則等查詢。
以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。