摘要:GaussDB(for Influx)是一款基于計算存盤分離架構,完全兼容 InfluxDB 生態的云原生時序資料庫,
本文分享自華為云社區《云資料庫 GaussDB(for Influx) 解密第十一期:讓智能電網中時序資料處理更高效》,作者:華為云資料庫 GaussDB(for Influx),
電網場景中的時序資料
今天在手機上就可以直接交電費、查看剩余電量、電量不足還可以發出告警提醒、以及分析過去的用電情況、預估未來用電情況等等,再也不用去繳費點繳費,也不用人工去每個電表上抄每家的使用情況,這些都基于我們國家的智能電網建設,而以上只是對消費者帶來的一些便利,智能電網在電網線路監控、電力調度、配電等方面發揮著越來越重要的作用,
智能電網是由許多部分組成,包括智能變電站,線路輸送,智能互動終端,智能電表,智能中央系統等等,每個部分都集成了大量的傳感器,這些分布在全網各節點的傳感器無時無刻不在收集各類資料,隨著中國智能電網建設的不斷完善,其測點的規模越來越大,達到數千萬級以上,并且單個測點將以分鐘級甚至秒級的頻率產生資料,將會產生海量的監控資料,而且這些資料大部分屬于時序資料,因此在針對智能電網構建集中式資料中心時,如何存盤、處理、分析海量的監控資料成為一個難點,具體包括以下面三個方面 :
- 資料規模超大,分布密集,資料存盤難
以智能電網中WAMS 系統為例,每秒需要處理的時序資料記錄數可達到一千萬,因此需要支撐每秒千萬級別的寫入,常規的資料處理方式根本無法滿足需求,
- 資料處理實時性需求高
針對數千萬的電表終端,客戶在充值后要立即生效,客戶產生的電量要實時的計費,并反饋給客戶等場景,都需要實時的處理海量資料;針對數千公里的電網線路監控,如果出現例外,要能及時告警等,
- 資料價值挖掘困難
電網檢測點多,檢測資訊密集,在如此海量的資料中挖掘出有價值的資訊也會遇到很大的挑戰,
智能電網設備中的時序資料
智能電網中的時序資料一般是指由設備/儀表產生,由傳感器進行收集,與某一設備具體相關,在時間上前后存在關聯性的一類資料,如上圖所示,對于電網中的電表設備,其電壓、電流值就是典型的時序資料,
一條時序資料記錄一般可定義為三元組: <DevicelD, Timestamp, Value>
- DeviceID : 產生該條資料的物理設備/傳感器
- TimeStamp為記錄產生的時間戳
- Value : 為設備測點具體的值,
在智能電網設備運行中,需要存盤的資料包括狀態量和模擬量,狀態量反應設備的運行狀態和告警狀態,一般通過事件順序(Sequence of Event,SOE)記錄可滿足對資料的檢索和分析需求,電流、電壓和功率等模擬量會隨著設備運行時刻變化,具有明顯的時序特性,需要進行時序存盤,通過在選定的時間內查詢 SOE 記錄,可以將狀態量和模擬量進行關聯分析,智能電網監控系統中,已對斷路器、隔離開關,變壓器、負荷和聯絡線等電網設備進行建模,資料模型包括狀態量和模擬量,其中模擬量包括電壓、電流、有功、無功和頻率等,不同的設備型別需要采集和存盤的模擬量不同,以智能電表為例子,智能電表是組成智能電網的基礎設施,通常安裝在用戶樓宇,用于收集每戶產生的電力負荷資料,智能電表至少每天將這些資訊反饋給中央系統,智能電網時間序列資料主要由大量的時間戳/值對組成,且通常一次寫入,多次查詢,很少修改或洗掉,但可追加,根據智能電網應用場景,一般訪問一段時間內或某一時間點的資料,下面我們可以具體看一下不同的電網設備采集和存盤時序資料也大有不同,
各類智能電網設備時序資料測點舉例
- 線路輸送設備資料存盤需求
智能電網線路設備主要包括母聯,母線,變壓器,容抗器,聯絡線,負荷和發電機,這些設備采集和觀測的指標也各有不同,
- 智能電表設備資料存盤需求
主要指安裝在用戶樓宇的智能電表收集的電力負荷資料,本質上是時間序列資料,以固定的短暫的時間間隔為單位持續記錄,并實時反饋給中央監控系統,其對于客戶和電網公司非常重要,因其可被用于許多電網服務,比如跟蹤電能消耗和預測電力負荷,除此之外,電能表凍結電量值 - 電能表定時凍結,瞬時凍結,日凍結,整點凍結也是很重要的指標,用于計費用戶用電量和管理梯度用電使用情況,一般會對電能表定時凍結,瞬時凍結,日凍結,整點凍結資料存盤和查詢,方便對年度、季度、月度的電量進行計算查詢,

電網資料常用的查詢場景
智能電網資料采集及監控系統(SCADA)作為智能電力物聯網的一部分,對于時序資料處理有著多種維度查需和資料聚合需求,不僅需要實時監控,需要歷史資料分析,例如歷史 PDR 反演和事故分析,
因此智能電網行業應用場景對時序資料的訪問方式主要有三種:
折線查詢 : 獲取指定設備一段時間內的相關量測值, 如查詢特定用戶智能電表在一段連續時間內的有功電能量,即測量物件為正向有功尖能量 (fd.shark.electricity),測量屬性user= lvsejiayuan.A.unit2.603,dtype=ammeter,需查詢2014.09.01 這一天的正向有功尖電能量,
對于折線查詢,物件為監測的設備或關注的指標,特征集可標識為FSet = <(t1,v1), (t2,v2), ......, (tn,vn)>,其中 (t1, t2, t3, ......, tn) 為特定的時間序列,使用基于時間戳的偏移表示;(v1, v2, v3, ......, vn) 為與時間序列相對應的量測值,
斷面查詢 : 獲取特定時間點特定區域內所有設備的相關量測值,如查詢特定時間點某地區所有用戶智能電表的有功電能量,及測量物件為正向有功尖能量 (fd.shark.electricity),測量屬性 dtype=ammeter, 時間戳為 1409529600 (2014.09.01 08:00:00),需查詢某地區特定時刻所有智能電表的正向有功尖電能量,
對于斷面查詢,物件為關注的區域/邏輯物件 (如街道/生活區/電廠),特征集可標識為 FSet = <(d1,v1), (d2,v2), ......, (dn,vn)>,其中 (d1, d2, d3, ......, dn) 為區域/邏輯物件所包含的設備/測點,(v1, v2, v3, ......, vn) 為對應的設備/測點在指定時間戳的值,
設備最新狀態查詢 : 這種場景類似于斷面查詢,只是針對最新最近的資料,通常用于檢測設備是否正常作業,
電網時序資料存盤探索
最早的時候,智能電網相關應用系統中,一般使用 Oracle,Db2 等關系型資料庫處理時序資料,
然而,傳統的物體關系模型在應對時序資料時存在如下問題 :
- 資料存盤孤立分離,按照物體關系模型, 一條時序資料記錄被保存為單獨的一行,因此連續時間段內的資料被孤立分離地存盤在資料庫中,
- 資料的訪問速度與資料量的大小成反比,隨著資料量的增加,訪問速度越來越慢,同時,大多數關系型資料庫為了提升查詢性能,針對大量資料建立索引,由此消耗大量的系統資源,
- 無法滿足時序資料的實時處理需求,對于海量時序資料,關系型資料庫無法高速的加載并滿足處理需求,
后來,電力系統內的普遍做法轉向使用商業時序資料庫軟體,如 OSIsoft Pi、eDNA 等作為時序資料的存盤和讀取工具,利用實時資料庫進行時序資料處理,
然而實時資料庫在應對智能電網大資料時存在如下問題:
- 無法支持大規模測點管理,對于國家級或省級智能電網而言,需要支持上億甚至上十億的測點規模,然而,無論 PI,eDNA,均無法為大規模測點管理提供支撐,
- 擴展能力不足,實時資料庫一般只支持單機部署,無法集群部署,無法支撐大規模資料應用,
- 高可用與資料安全性不足,實時資料庫一般不具備高可用特性,對于所存盤的資料的安全性,也完全依賴于硬體與資料庫軟體本身,不支持資料冗余備份,無法應對大資料分析場景,
隨著大資料技術的發展,近年來也有一些基于開源的 HBase,Cassandra 等 NoSQL 資料庫處理時序資料的研究和應用,這些分布式 NoSQL 資料庫雖然解決了擴展能力,但是其通用的資料組織方式并不完全適合智能電網行業對時序資料存盤和查詢需求,用戶必須根據實際應用場景,進行特殊設計甚至大量資料冗余存盤才能較好的利用資源處理請求,
大部分僅提供的單個測點的資料存盤介面,無法將設備模型資料與離散測點結合,難以支撐歷史潮流分析、故障分析和 WAMS 等智能電網高級應用,除此之外,它們的資料模型單一,對于讀取一定時間范圍內的資料記錄效率較高,但對于定位某個時間點的多條記錄,過濾,組合等一系列操作將浪費大量 I/O 資源,
其次,二維資料模型中的每個存盤單元由主鍵和列限定符唯一表示,因而大部分磁盤都浪費在存盤重復的主鍵,存在大量冗余資訊,存盤效率低,同時,由于智能電網場景對于時序資料處理有著多種維度查需和資料聚合需求,通用KV 資料庫往往需要結合 ElasticSearch / Solr 等搜索引擎進行加速或者需要開發巧妙設計 KV 結構才能達到很好的效果,但是這樣大幅度提升了開發員人的學習和運維成本,
針對電網場景中時序資料,專業的分布式時序資料庫是最好的選擇,因為他們具備以下重要的特性 :
靈活多變的資料模型 : 用戶根據業務需求,通過標簽組合的方式自由定義資料模型,同時也可以根據業務變化和演進進行變更,
高寫入吞吐量 : 分布式時序資料庫解決大規模集群的橫向擴展問題,保證高性能平穩寫入的需求,
- 在一些大規模的應用性能監控、物聯網場景,海量的設備持續產生時序資料,例如省域級別的電網用電測量資料,9000萬數量級的電表設備,原來每個月采集一次,后續業務升級后15分鐘采集一次,每秒需要處理的時序資料點數達到數百萬甚至千萬資料點,需要龐大且可以橫向水平擴展的集群來支撐全量的業務寫入,
高效的時序資料查詢與分析 : 時序資料庫支持多維時間線檢索、并具備流式處理、預計算等能力,滿足大規模 APM、物聯網,工業物聯網等業務場景的典型查詢需求,
- 在典型的監控場景,通常需要對長周期的資料進行查詢分析,比如針對某些指標最近1天、3天、7天、1個月的趨勢分析、報表等;而在物聯網場景,有一類比較典型的斷面查詢需求,例如查詢某個省指定時間所有電表的用電量量明細資料,查詢某個品牌空調的某個時間的平均運行溫度;這些查詢要掃描大量的集群資料才能拿到結果,同時查詢的結果集也可能非常大,
低成本的時序資料存盤 : 時序資料庫充分利用好時序資料量大、冷熱訪問特征明顯,進行計算、存盤資源的解耦,通過低成本存盤介質、壓縮編碼、冷熱分離、高效 TTL等技術將資料存盤成本降低到極致,
- 在車聯網場景,20000輛車每小時就產生近百 GB 的車輛指標資料,如果要保存一年的運行資料就需要PB級的資料存盤規模,由于資料規模巨大,對存盤的低成本要求很高,另外時序資料的冷熱特征明顯,
豐富的生態協同 : 時序資料庫與資料可視化平臺、大資料處理、流式分析系統等對接,與周邊生態形成協同來創造業務價值,
- 在物聯網、工業互聯網等場景,時序資料通常有進一步做運營分析處理的需求,在很多情況下時序資料只是業務資料的一部分,需要與其他型別的資料組合來完成查詢分析,
智能電網資料模型
下面我們具體看一下智能電網中的資料模型,從而進一步體現為什么時序資料庫是智能電網場景中資料處理的最佳選擇,
統一標準 SG-CIM
針對現在電力行業各企業業務資料模型多樣化,非統一,互動困難等問題,國家電網公司通過分析整合,提出了一個新型的企業公共資料模型(SG-CIM), 形成了統一的資訊視圖,實作多企業多業務應用系統間的資料互動共享,SG-CIM 和時序資料庫模型非常匹配,
在智能電網管理平臺中,SG-CIM資料模型中的每個葉子節點稱為測量物件,葉子節點標簽稱為測量屬性,它由一個或多個鍵值對組成,用于進一步刻畫補充測量物件的屬性資訊,根至葉子節點的全路徑稱為用戶屬性,作為一個特殊屬性處理,
測量物件+時間戳+測量屬性+測量值的組合稱為一條時間序列資料記錄,也稱電力負荷資料測點,以某樓宇中某居民用戶安裝的智能電表為例,描述 SG-CIM 資料模型在海量資料管理平臺中的應用,如下圖所示,
根據 SG-CIM 資料模型,一條時間序列資料記錄由如下幾部分組成 :
- 測量物件 (obj) : 一個被定量測量物件的名稱,比如電能量,吞吐量等,
- 時間戳 (timestamp) : 以 UNIX 時間表示(秒或毫秒),用于標識這條時間序列被記錄/存盤的時間,
- 測量屬性 (tag) : 鍵值對,用于區分或組組織測量物件相同,但來自不同源或相關物體的相似資料點,增加靈活性,
- 測量值 (value) : 該測量物件在當前時刻的實際測量值,整型或浮點型,
測量物件 (obj) 以 SG-CIM 資料模型中的每個葉子節點來刻畫,例如正向有功尖能量(fd.shark.electricity),
測量屬性 (tag) 以 SG-CIM 資料模型中葉子節點的屬性:用戶 (user) 和設備型別 (dtype) 等屬性來描述,例如 user= lvsejiayuan.A.unit2.603,dtype=ammeter,user 是一個特殊的屬性,用根至葉子節點的全路徑刻畫,
根據 SG-CIM 模型進行時序資料模型設計 - 多值模型和單值模型
單值模型 : 即對測點建模,以單個測點對測點定義時序采樣,
- 按設備將每個設備的測量值屬性分別定義到時序資料庫中,
- 這種存盤方式資料定義、變化值提交和歷史值查詢都相對簡單,
- 缺點同樣明顯,存盤在時序資料庫中資料沒有關聯性,如需同時查詢線路的有功和電流,則需要分兩次查詢,查詢性能較低,同時也不利于做關聯性分析,
- OpenTSDB 和 Prometheus時序資料庫采用的是單值模型,
多值模型 : 即對設備/資料源進行建模,例如基于智能電網設備建模,
- 在時序資料庫中,將同一個設備采集的不同測點屬性存盤在一張表的不同域,這要只需要一次查詢,即可得到一個設備的所有量測,查詢效率和資料同步行都相對較高,
- 線路設別在時序資料庫中的記錄可定義為八元組:<oid,timestamp, i_value, i_status, p_value, p_status, q_value, q_status>,
- GaussDB(for Influx) , InfluxDB,TimeScaleDB 等時序資料庫采用的是多值模型,
云資料庫 GaussDB(for Influx)
如何支撐龐大的智能電網資料

云原生分布式時序資料庫GaussDB(for Influx)采用存盤計算分離架構,
- 集群能力方面 : 具備非常平滑快速的彈性擴縮容能力,集群可以輕松擴展至每秒千萬點寫入吞吐量,PB界別的存盤支持,
- 服務和資料高可用方面 : 資料三副本存盤確保資料可用性;集群跨 AZ 可用區容災部署,集群最大支持N - 1 節點故障,同時資料自動負載均衡避免熱點,
- 時序資料存盤方面 : 深度優化存盤引擎,確保穩定的高吞吐量寫入;同時時序資料的自適應壓縮能力,讓時序資料壓縮比達到20 : 1;自動的資料冷熱分層存盤,進一步降低資料存盤成本,
- 時序資料計算方面 : 集成了豐富的資料聚合,降采樣,插值,預算,例外檢測等算子,同時支持邊云同步能力,實作資料邊云一體化,
- 在生態和開源兼容方面 : 支持多種開源時序資料庫協議,例如 Prometheus,Graphite 和 OpenTSDB,同時完全兼容InfluxDB 生態,
基于 GaussDB(for Influx)的電網資料模型設計
GaussDB(for Influx) 在生態和協議方面完美兼容 InfluxDB,InfluxDB 靈活多變的 Schema-Free 行協議可以完美匹配 SG-CIM 模型,
資料寫入時候,不需要提前創建 Schema 定義,同時支持 Tags 和 Fields 欄位自由擴展,未來有需要新增維度的時候,可以動態進行增加,
可以參考下面簡單的例子 :
我們以智能電網中線路設備資料為例子,根據行協議如何將 SG-CIM 模型轉化成 GaussDB(for Influx)資料模型 :
- Measurement : stbl_line,相當于關系型資料庫中的表概念,
- Fields : SG-CIM 模型中的多個測量物件 (Obj),即線路設備采集和上報的指標項,后期可以動態擴展,
i_value, i_status : 電流相關指標 p_value, p_status : 電壓相關指標 q_value, q_status : 功率相關指標 其中各個指標項采集的值是測量值 (value)
- Tags : SG-CIM 模型中的測量屬性 (Tag),表示線路設備靜態屬性標簽,可以根據系統需要自定義和擴展
deviceId : 設備標識 ID
deviceType : 設備型別標識
line : 線路標識 ID
- Timestamp : SG-CIM 模型中時間戳項,
以上模型在資料庫中存盤格式如下:
stbl_line,line=XXX線路,deviceType=XXX,deviceId=E08995 i_value=https://www.cnblogs.com/huaweiyun/p/X,i_status=X,p_value=X,p_status=X,q_value=X,q_status=X 1663121437010000000
總結
GaussDB(for Influx)是一款基于計算存盤分離架構,完全兼容 InfluxDB 生態的云原生時序資料庫,依托于華為云計算平臺高性能,高可靠,高安全,可彈性伸縮的基礎上,GaussDB(for Influx)提供時序資料高效存盤、分析、展示功能,同時具有高寫入性能、靈活擴容、高壓縮率和高查詢性能等特點,GaussDB(for Influx)可以廣泛應用于各種時序資料處理場景,例如工業物聯網,車聯網,物聯網,運維監控,銀行金融等,
歡迎加入:
華為云資料庫 GaussDB(for Influx)團隊(西安、深圳)簡歷投遞郵箱:[email protected]
云資料庫創新Lab(成都、北京)簡歷投遞郵箱:[email protected]
點擊關注,第一時間了解華為云新鮮技術~
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/527904.html
標籤:其它
