述第一用電設備上報的所述用電量信息,并根據(jù)所述用電量信息將所述第一用電設備 在所述上報時間戳的總用電量等數(shù)據(jù),存儲到預置在所述服務器上的第一記錄表中所述第 一用電設備對應的記錄。其中,所述上報時間戳精確到年月日時分秒,所述總用電量指用電 設備自統(tǒng)計電量開始、截止到某一日期某一時刻所消耗的電量總數(shù)。
[0047]所述服務器能夠并行處理多個用電設備上報的用電量信息,并將各個用電設備及 其對應的上報時間戳、上報時間戳對應的總用電量等數(shù)據(jù)經過處理后存儲在所述第一記錄 表中,以記錄不同用電設備在不同日期的不同時刻上報的各自的總用電量。
[0048] S20、根據(jù)所述第一記錄表中的數(shù)據(jù)在預設時間點更新預置的第二記錄表,其中, 所述第二記錄表用于記錄不同用電設備在不同年份中截止到每天的總用電量,所述第一記 錄表和所述第二記錄表存儲在文檔型數(shù)據(jù)庫或Hadoop分布式文件系統(tǒng)中;
[0049] 所述預設時間點可以是一天24小時內的任意時間點,將所述預設時間點設置在凌 晨1點前后2小時內的任意時間點均為較佳取值。所述第二記錄表是根據(jù)所述第一記錄表中 存儲的不同用電設備在不同上報時間戳的總用電量等海量數(shù)據(jù),通過計算獲得不同用電設 備在不同日期的總用電量,即所述第二記錄表中存儲有不同用電設備在不同年份截止到每 天的總用電量的數(shù)據(jù)。根據(jù)所述第二記錄表中數(shù)據(jù),能夠計算獲得指定用電設備在任意一 天內的用電量(即日用電量),還能夠進一步計算獲得指定用電設備在指定一周內的用電量 (即周用電量)、在指定一個月內的用電量(即月用電量)、在指定年份的用電量(即年用電 量)。
[0050] 在當前時間點為所述預設時間點時,所述服務器自動根據(jù)所述第一記錄表中已存 儲的數(shù)據(jù),通過計算獲得所述第二記錄表中所需數(shù)據(jù),并按照所述第二記錄表中各個字段 的定義,將計算獲得的數(shù)據(jù)對應存儲在相應字段中。在本實施例中,所述第一記錄表和所述 第二記錄表存儲在Mongo DB這一文檔型數(shù)據(jù)庫中。
[0051] Mongo DB是介于關系數(shù)據(jù)庫和非關系數(shù)據(jù)庫之間的一個產品,是非關系數(shù)據(jù)庫當 中功能最豐富、最像關系數(shù)據(jù)庫的數(shù)據(jù)庫。Mongo DB支持的數(shù)據(jù)結構非常松散,類似json (JavaScript Object Notation,輕量級的數(shù)據(jù)交換格式)的bson(Binary json,類json的 一種二進制形式的存儲格式)格式,因此可以存儲比較復雜的數(shù)據(jù)類型。Mongo DB最大的特 點是支持的查詢語言非常強大,其語法有點類似于面向對象的查詢語言,幾乎可以實現(xiàn)類 似關系數(shù)據(jù)庫單表查詢的絕大部分功能,而且還支持對數(shù)據(jù)建立索引。
[0052] Hadoop分布式文件系統(tǒng)(即HDFS)是谷歌的GFS(-種可擴展的分布式文件系統(tǒng))提 出之后出現(xiàn)的另外一種文件系統(tǒng)。它有一定高度的容錯性,而且提供了高吞吐量的數(shù)據(jù)訪 問,非常適合大規(guī)模數(shù)據(jù)集上的應用。HDFS提供了一個高度容錯性和高吞吐量的海量數(shù)據(jù) 存儲解決方案。
[0053] S30、在接收到包含用戶指定的第二用電設備的用電設備標識、指定查詢時間段的 用電量查詢請求時,根據(jù)所述用電量查詢請求和所述第二記錄表計算獲得所述第二用電設 備在所述指定查詢時間段的用電量,并返回包含所述第二用電設備在所述指定查詢時間段 的用電量的查詢響應消息。
[0054] 用戶可以通過網頁或應用軟件向所述服務器發(fā)送請求查詢指定的第二用電設備 在指定時間段的用電量的用電量查詢請求。所述第二用電設備可以為物聯(lián)網家電,還可以 是其他設置有用電量檢測裝置和網絡通信裝置的用電設備。所述服務器在接收到所述用電 量查詢請求時,根據(jù)所述第二記錄表中數(shù)據(jù)計算獲得所述第二用電設備在指定時間段內的 用電量,然后向發(fā)送所述用電量查詢請求的請求方返回查詢響應消息,所述查詢響應消息 包含所述第二用電設備在所述指定查詢時間段的用電量。
[0055] 在本實施例中,所述第二用電設備在所述指定查詢時間段的用電量是利用 MapReduce運算模型進行大規(guī)模數(shù)據(jù)集的并行計算而獲得;計算結果為Map (映射)形式,第 一字段的值由所述第二用電設備的用電設備標識和所述指定查詢時間段對應的一個或兩 個查詢日期組成,第二字段的值為所述用電設備標識在所述查詢時間段的總用電量。用戶 可以請求查詢指定用電設備在指定日期的日用電量,還可以請求查詢指定用電設備在指定 一周的周用電量、在指定年份的某一個月的月用電量、在指定年份的年用電量。所述查詢時 間段為指定的某一天時,其包含一個查詢日期(如2015-12-12);所述查詢時間段為指定的 許多天時,其包含兩個查詢日期,分別為開始查詢日期(如2015-12-05)和截止查詢日期(如 2015-12-12)。
[0056]本發(fā)明提出的用電量查詢方法,利用文檔型數(shù)據(jù)庫或Hadoop分布式文件系統(tǒng)等大 數(shù)據(jù)技術處理用電設備上報的用電量信息,為用戶提供了一種能夠查詢指定用電設備在指 定時間段用電量的查詢方式,與傳統(tǒng)的家電用電量查詢方式相比,查詢用電量所支持的查 詢功能更為強大、查詢操作靈活便捷。
[0057]進一步地,參照圖2,基于第一實施例提出本發(fā)明用電量查詢方法第二實施例,基 于圖1所示實施例,上述步驟SlO包括:
[0058] S11、接收由所述第一用電設備上報的用電量信息,從所述用電量信息中提取出所 述第一用電設備的用電設備標識、上報時間戳、總用電量;
[0059] 在本實施例中,所述第一用電設備將其用電設備標識、上報時間戳、截止到所述上 報時間戳的總用電量,以十六進制字符串的形式向所述服務器上報用電量信息。所述服務 器在接收到所述用電量信息后對其進行解析,從而獲得所述第一用電設備的用電設備標 識、上報時間戳、總用電量。其中,所述用電設備標識能夠唯一地標識一個用電設備。
[0060] S12、在所述第一記錄表中存在由所述用電設備標識和所述上報時間戳所包含的 日期確定出的第一記錄時,將所述上報時間戳與所述總用電量的對應關系保存至所述第一 記錄的對象集合中;或者,
[0061] 在所述第一記錄表中不存在由所述用電設備標識和所述上報時間戳所包含的日 期確定出的第一記錄時,在所述第一記錄表中增加一條由所述用電設備標識和所述上報時 間戳所包含的日期確定出的第一記錄,并將所述上報時間戳與所述總用電量的對應關系保 存至所述第一記錄的對象集合中。
[0062] 參照表1,表1為本實施例中第一記錄表的數(shù)據(jù)結構示例,其中,所述第一記錄表的 第一字段為Id-ymd,第二字段為Volumel 〇
[0063] 表1第一記錄表示例
[0066] 以表1中第一條記錄為例,第一字段的值為"1650001-2015-09-01",用于標識用電 設備標識為1650001的用電設備在2015年9月1日的記錄,第二字段中集合的第一個對象 {year: 2015,month: 9,day: I,time: ' 8-12-9 ',volume : 651 · 9121 },表不用電設備標識為 1650001的用電設備在截止到2015年9月1日8點12分9秒的總用電量為651.9121kw.h,以此 類推。
[0067] 本發(fā)明提出的用電量查詢方法,將用電設備在同一天上報的所有用電量信息按照 預設的數(shù)據(jù)結構進行存儲,記錄了不同用電設備在不同日期的不同時刻上報的總用電量, 從而獲得不同用電設備的歷史總用電量源數(shù)據(jù),為后續(xù)采用大數(shù)據(jù)技術向用戶進一步提供 用電設備用電量的信息查詢做原始數(shù)據(jù)基礎。
[0068] 進一步地,參照圖3,基于第二實施例提出本發(fā)明用電量查詢方法第三實施例,基 于圖1所示實施例,上述步驟S20包括:
[0069] S21、在當前時間點為所述預設時間點時,根據(jù)所述第一記錄表中的數(shù)據(jù),計算獲 得所述第一記錄表中包含的各個用電設備標識在截止到當前日期前一天的總用電量;
[0070] 假設所述預設時間點為凌晨1點,當前日期為2015年12月08日,在當前時間點為凌 晨1點時,所述服務器根據(jù)所述第一記錄表中第一字段的值包含日期為2015-12-07的一條 或多條記錄,將每一條記錄的第二字段的集合中,與當前時間點最近的時間戳對應的總用 電量,作為記錄對應的用電設備標識在截止到2015年12月07日的總用電量。
[0071] S22、對于所述第一記錄表中包含的各個用電設備標識,在所述第二記錄表中存在 由當前用電設備標識和當前日期前一天對應的年份確定出的第二記錄時,將當前用電設備 標識在截止到當前日期前一天的總用電量與當前日期前一天對應的日期的對應關系保存 至所述第二記錄的對象集合中;或者,
[0072] 在所述第二記錄表中不存在由當前用電設備標識和當前日期前一天對應的年份 確定出的第二記錄時,在所述第二記錄表中增加一條由當前用電設備標識和當前日期前一 天對應的年份確定出的第二記錄,并將當前用電設備標識在截止到當前日期前一天的總用 電量與當前日期前一天對應的日期的對應關系保存至所述第二記錄的對象集合中。
[0073] 參照表2,表2為本實施例中第二記錄表的數(shù)據(jù)結構示例,其中第一字段為Id-y,第 二字段為Volume2。
[0074] 表2第二記錄表示例
[0076] 以表2中第一條記錄為例(數(shù)據(jù)最后一次更新的日期為2015年12月09日),該記錄 的第一字段的值為"1650001-2015",標識該記錄為用電設備標識為1650001的用電設備在 2015年上報的截止到當前日期前一天的用電量數(shù)據(jù),該記錄的第二字段中集合的一個對象 {year: 2015,month: I,day: I ,volume:600.0001},表示用電設備標識為1650001的用電設備