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