謝輝 陳超 許卓
摘? 要:隨著我國電力客戶服務系統(tǒng)業(yè)務的快速增長,用戶地址數據量不斷提升。由于傳統(tǒng)的電力用戶地址的輸入比較隨意,導致地址數據多源、格式不一致等問題的出現。因此我們需要對數據進行結構化改造。隨著我國電網信息化、智能化進程的不斷推進,電力企業(yè)如何實現電力用戶地址的結構化與統(tǒng)一化成為了當前首要解決的問題。本文著重從電力用戶地址優(yōu)化的方向出發(fā),對傳統(tǒng)的電力用戶地址如何進行結構化的改造進行了分析,并提出了大數據存儲的方法。
關鍵詞:電力用戶;地址優(yōu)化;數據結構化;存儲技術
中圖分類號:TP311.13;TP274.2? ? ? 文獻標識碼:A 文章編號:2096-4706(2019)20-0115-04
Abstract:With the rapid growth of Chinas power customer service system business,the amount of user address data continues to increase. Since the input of the traditional power user address is relatively random. This has led to problems such as multiple sources of address data and different formats. So we need to make structured changes. With the continuous advancement of informationization and intelligentization of Chinas power grid,how to realize the structure and unification of power user addresses has become the primary problem to be solved. This paper focuses on the direction of power user address optimization,analyzes how traditional power user addresses are structured,and proposes a method of big data storage.
Keywords:power users;address optimization;data structuring;storage technology
0? 引? 言
用戶地址信息是描述電力用戶具體地理位置的一項基礎信息,是南方電網很多業(yè)務系統(tǒng)所必需的一項很重要的基礎屬性。電力系統(tǒng)由于其特殊性,信息化的發(fā)展是循序漸進的,現存很多傳統(tǒng)的用戶地址數據的表現形式都是很單一的、非結構化的文本信息。這種傳統(tǒng)地址數據存儲方式,在基層主要通過人工識別的一般應用場景中尚能應付。但是,隨著電網信息化智能化的推進,電力用戶地址的結構化與統(tǒng)一化將是必然趨勢。
南方電網覆蓋五個省區(qū),并與香港、澳門地區(qū)以及東南亞國家的電網相聯,供電面積100萬平方公里。截至2017年底,供電人口2.52億,供電客戶8497萬戶,而每個客戶都對應著一個地址信息。如何存儲并管理這一龐大的電力用戶基礎信息,為各類電力業(yè)務系統(tǒng)提供基礎服務,則成為一個重要的問題。隨著南方電網智能電網信息化的快速發(fā)展,尤其是配電管理系統(tǒng)和客戶服務系統(tǒng)業(yè)務的快速增長,導致用戶地址數據量迅速攀升。由于以往不同部門不同系統(tǒng)可能在數據存儲結構與方式上存在不同,極易形成所謂的“信息孤島”,導致出現數據多源、格式不一致等各種數據問題。用戶地址的統(tǒng)一、完整與規(guī)范,是南方電網智能化尤其是客戶服務系統(tǒng)智能化的基礎條件。
本文以南方電網建設智能電網的發(fā)展方向作為契機,從電力用戶地址優(yōu)化的角度,研究了傳統(tǒng)的電力用戶地址如何進行結構化的改造和大數據存儲的方法。
1? 地址的結構化
傳統(tǒng)的電力用戶地址的輸入非常具有隨意性。比如,可能沒有市區(qū)信息而只有街道及以下的信息;或者區(qū)縣的信息是錯誤的。這些電力用戶地址都是不規(guī)范和不統(tǒng)一的,是需要進行結構化改造的數據。根據《數字城市地理信息公共平臺地名/地址編碼規(guī)則》的定義,數字城市地理信息公共平臺是指依托基礎地理信息標準數據,通過在線地理信息服務滿足城市政府部門、企事業(yè)單位和社會公眾的基本需求,具備實現個性化應用的二次開發(fā)接口和可擴展空間。它是各種專業(yè)信息空間定位、集成交換和互聯互通的基礎。我們可以借鑒該標準來對南方電網電力用戶地址進行結構化改造。
1.1? 地址的結構化的方向
南方電網電力用戶地址的結構化改造要求新的地址數據格式必須要有規(guī)范的層次,符合中國常用地名的描述要求。通常,一個規(guī)范的地址應該包括以下三個層次:行政區(qū)域地名、街巷名或小區(qū)名和門(樓)址或標志物名。
行政區(qū)域地名描述包括四種類型。省級行政區(qū)域地名(省、自治區(qū)、直轄市、特別行政區(qū)),比如:廣東省;市級行政區(qū)域地名(市、地區(qū)、自治州、盟),比如廣東省深圳市;縣級行政區(qū)域地名(縣、自治縣、縣級市、旗、自治旗、市轄區(qū)、林區(qū)、特區(qū)),比如:廣東省深圳市龍崗區(qū);鄉(xiāng)級行政區(qū)域地名(鄉(xiāng)、民族鄉(xiāng)、蘇木、鎮(zhèn)、街道、政企合一單位),比如:廣東省深圳市龍崗區(qū)坪地街道。
街巷名或小區(qū)名包含兩種類型。行政區(qū)域地名|街巷名,比如:廣東省深圳市龍崗區(qū)坪地街道同心中路;行政區(qū)域地名|小區(qū)名,比如:廣東省深圳市龍崗區(qū)坪地街道中航鼎尚華庭。
門(樓)址或標志物名描述包括幾種類型。行政區(qū)域地名|街巷名|門(樓)址,比如:廣東省深圳市龍崗區(qū)坪地街道同心中路3號;行政區(qū)域地名|街巷名|標志物名,比如:廣東省深圳市龍崗區(qū)坪地街道同心中路西湖塘商住樓;行政區(qū)域地名|小區(qū)名|門(樓)址,比如:廣東省深圳市龍崗區(qū)坪地街道中航鼎尚華庭3號樓。
1.2? 地址結構化的方法
對于地址結構化的具體方法則一般主要有兩種。一種是基于規(guī)則的,也就是利用此表匹配對電力用戶地址進行分詞,然后根據地址的結構利用類似狀態(tài)機的方法識別地址的各個層次上的關鍵要素。這種方法的好處是它是利用此表和地址的構詞規(guī)則進行地址匹配,這樣在實際的應用中準確率會比較高,但是缺點則是比較依賴于詞表建設的規(guī)模。另一種則是基于統(tǒng)計的方法,這種方法則是將地址解析看作是命名實體識別的過程。這種方法的優(yōu)點在于它可以從訓練數據中自動學習地址和地址要素的構成特征,但缺點是構建訓練數據工作量大,模型對數據依賴性較強。
劉婷婷等綜合上面兩種方法的優(yōu)缺點,提出了基于地址知識庫的中文地址解析和規(guī)范化的方法,這種方法的特點是從人類理解地址的角度出發(fā),借助互聯網生成一個涵蓋地名、別名、地址空間關系以及地址構詞特征的知識庫,在此基礎上對地址進行解析、更新等操作。經過多方研究對比,建議采用這種基于地址知識庫的中文地址解析和規(guī)范化的方法。
按照如此規(guī)則對南網電力用戶地址數據進行結構體化改造。改造前后的數據格式如圖1、圖2所示。
2? 地址大數據的存儲
隨著南方電網信息系統(tǒng)的逐漸完善,系統(tǒng)間集成度的不斷提高,信息系統(tǒng)呈現出數據增長加速化、數據類型多樣化、業(yè)務融合深度化的發(fā)展趨勢,對數據存儲、處理、價值挖掘提出更好的要求,傳統(tǒng)數據庫工具已經無法滿足大數據時代下的數據挖掘需求了。當前,最為流行和穩(wěn)定的大數據技術生態(tài)圈就是Hadoop生態(tài)系統(tǒng)。
2.1? Hadoop大數據框架
Hadoop由Apache Software Foundation公司于2005年秋天作為Lucene的子項目Nutch的一部分正式引入。它受到最先由Google Lab發(fā)表的Map/Reduce、Google File System(GFS)和BigTable三篇論文的啟發(fā)。這三篇論文依次對大數據的分布式計算框架、分布式的文件系統(tǒng)以及基于GFS的數據存儲系統(tǒng)進行了闡述,這三大組件構成了整個Hadoop分布式大數據體系。隨后Yahoo對其進行了開源實現,即Hadoop,并根據GFS開發(fā)了HDFS,根據BigTable開發(fā)了HBase。同時其他眾多開源項目如Hive、Pig等圍繞Hadoop構成了完整的生態(tài)系統(tǒng),如圖3所示。
Hadoop系統(tǒng)結構結構中的主要模塊及其功能如下:
HDFS:為海量數據提供基礎的分布式文件系統(tǒng)。
YARN:提供作業(yè)調度與集群資源管理功能的分布式計算框架。
MapReduce:海量數據分布式計算處理系統(tǒng)。
Ambari:Web工具,通過可視化的方式,管理并監(jiān)控Hadoop集群。
HBase:基于HDFS的一種分布式NoSQL數據庫。
Hive:數據倉庫平臺,可提供查詢與數據匯總的功能。
Pig:可提供基于MapReduce的一種類SQL查詢功能。
Spark:基于內存的一種分布式計算框架。
ZooKeeper:是一個分布式的,開放源碼的分布式應用程序協(xié)調服務。
2.2? HDFS分布式文件系統(tǒng)
Hadoop作為一種分布式存儲與計算框架,通常都是以集群部署模式存在。HSFS是一個分布式文件系統(tǒng),采用主從結構,在Hadoop集群中通常包括三種節(jié)點。這三種節(jié)點分別為客戶端節(jié)點、Master節(jié)點和Slave節(jié)點??蛻舳斯?jié)點實際上是Hadoop為用戶提供的一個簡易操作控制臺,其中包含了Hadoop的Java實現腳本,能夠提供類似Linux的命令供用戶操縱。在Hadoop的客戶端,可以像操作Linux文件命令一樣操作Hadoop文件系統(tǒng)。在Linux系統(tǒng)中,查看一個文件夾的內容使用“l(fā)s”命令即可,而在Hadoop的客戶端則使用“Hadoop fs-ls”即可。
在HDFS系統(tǒng)中,只能有一個NameNode,即上面提到的Master節(jié)點。NameNode只是負責保存和管理所有的HDFS元數據,實際上用戶數據的讀寫不需要通過NameNode,而是直接讀寫在DataNode之上。HDFS將需要存儲的文件分割成固定大小的數據塊(通常是64MB)。DataNode則負責將數據庫以Linux文件的形式保存在磁盤上,并且根據指定的數據塊標識和字節(jié)范圍來讀寫數據。根據分布式存儲系統(tǒng)對于安全可靠性的要求,每個數據塊都會被復制存儲到多個DataNode節(jié)點上。NameNode管理所有的文件系統(tǒng)元數據,這些元數據包括名稱空間、訪問控制信息、文件和數據塊的映射信息。NameNode在系統(tǒng)運行過程中,定期與每個DataNode節(jié)點進行通信,發(fā)送指令到每個DataNode節(jié)點并接收DataNode節(jié)點所反饋的數據塊的狀態(tài)信息。整個HDFS分布式文件存儲系統(tǒng)的架構設計示意圖如圖4所示。
2.3? MapReduce分布式計算軟件框架
MapReduce是Hadoop體系之下的一個分布式計算軟件編程框架,負責大規(guī)模數據集的并行計算功能(如圖5所示)。MapReduce采用數據分塊處理的思想,把對大規(guī)模數據集的操作的處理,通過分發(fā)給一個主節(jié)點管理下的各個分節(jié)點分別處理這樣的方式來共同完成,然后通過Master節(jié)點整合各個分節(jié)點的中間結果,通過計算處理得到最終結果。在這種分布式計算中,MapReduce框架主要負責處理在并行編程中分布式的存儲、工作任務的調度、負載均衡處理、容錯均衡、容錯處理和網絡通信等復雜問題。
上面提到,MapReduce實際上主要就是兩個任務過程,顧名思義就是Map和Reduce?,F在簡單介紹下這兩個任務的實現過程。
Map任務處理的流程:首先,按行讀取HDFS系統(tǒng)中文件,每一行讀取成為一個鍵值對
Reduce任務處理的流程:多個Map任務的輸出,按照不同的分區(qū)通過網絡傳輸到不同的reduce節(jié)點上,對多個Map過程產生的輸出進行合并和排序,然后覆蓋reduce函數,接收分組后的數據,并在其中實現自己的業(yè)務邏輯,處理之后產生新的
2.4? HBase數據庫
HBase是基于Hadoop的面向列的數據庫系統(tǒng),是一種典型的NoSQL數據庫。HBase是采用主機/從機的架構模式進行數據管理和存儲。HBase系統(tǒng)基本上由如下幾類節(jié)點組成:一個數據庫總控節(jié)點HMaster、數個數據服務節(jié)點HRegionServer、以及ZooKeeper分布式協(xié)同服務集群。下面將分別介紹這幾類節(jié)點所負責的功能。
HMaster是HBase的主服務器程序,盡管HBase支持啟動多個HMaster,但是ZooKeeper的Master機器使同一時刻始終只能有一個HMaster節(jié)點處于運行狀態(tài)。HMaster節(jié)點負責將region任務分配給region服務器,并對region服務器的負載狀態(tài)與運行狀態(tài)進行監(jiān)控和維護。HMaster節(jié)點并不直接對外提供數據服務器,所有的數據讀寫請求和操作均由region服務器來負責。
HRegionServer作為HBase的核心模塊,主要負責具體的數據讀取任務。所有的HDFS數據讀寫請求,用戶I/O請求最終實際上都由HRegionServer來完成。HRegionServer節(jié)點的具體工作有如下三種:與客戶端直接進行通信和數據讀寫;直接操作HDFS,并對數據庫表進行管理;存放并管理當前節(jié)點的HRegion。HRegion是HBase系統(tǒng)中的重要模塊,每一個HRegion就對應著數據庫表中的一個Region,所以HRegion分布在所有的HRegionServer中,而HRegion又是由多個列族對應的HStore組成。HStore是實際負責數據讀寫的模塊,而且其數據寫入采用了緩存模式,具體實現方式是,首先將要寫入的數據緩存在內存的MemStore中,當MemStore的數據量累計到一定的參數值之后才會實際寫入StoreFile中,如果StoreFile的大小以及個數達到一定的參數值之后,HBase又會將StoreFile進行合并。HLog也是與HRegionServer對應的模塊,也就是說一個HLog對應了多個HRegion。如果分布式環(huán)境中因為系統(tǒng)出錯或者其他原因導致HRegionServer意外停止并導致MemStore的數據丟失了,這個時候就需要使用HLog來處理了。由于HLog是在將數據寫入MemStore之前就寫入了HLog文件的,所以如果MemStore中丟失的數據是可能在HLog中找到的,這也是為什么HLog可以處理數據丟失問題的原因。
整個HBase的工作架構大致如圖6所示。
3? 結? 論
基于Hadoop的電力用戶地址結構化與存儲技術的重點在于首先需要將非規(guī)范化的隨意的地址信息進行結構化的改造,然后將其進行大數據的存儲處理,以便后續(xù)各種應用系統(tǒng)的查詢與使用。
結構化的關鍵則首先在于如何定義標準,即什么樣的地址形式被認為是結構化。在這個問題上,我們借鑒了《數字城市地理信息公共平臺地名/地址編碼規(guī)則》標準。隨后就是結構化的方法了,我們建議采用基于地址知識庫的中文地址解析和規(guī)范化的方法。
對于結構化之后的大規(guī)模地址數據的存儲,則可以使用Hadoop大數據存儲系統(tǒng)。HDFS、MapReduce和HBase組成的Hadoop集群分工各司其職,為大規(guī)模地址數據的存儲利用提供基礎。
參考文獻:
[1] 孔旭鋒,俞成彪,林士勇.電力用戶地址結構化管理 [J].農村電氣化,2016(2):34-35.
[2] 陳寧,龍致遠,羅雁,等.基于大數據的用戶地址規(guī)范化存儲與電力營銷設計初探 [J].電子測試,2019(2):79-81.
[3] 王健,周若璇,陸野.省級電力企業(yè)采購多維數據結構化與集成化應用研究 [J].現代國企研究,2017(22):75+77.
[4] 劉婷婷,朱文東,陸海兵,等.電力大數據中文地址解析和規(guī)范化方法研究 [J].電力信息與通信技術,2017(5):5-11.
作者簡介:謝輝(1983.09-),男,漢族,廣東興寧人,本科,研究方向:電網企業(yè)營銷管理。