亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Python語言和sqlite數(shù)據(jù)庫的試驗(yàn)數(shù)據(jù)備份整理系統(tǒng)

        2016-05-14 09:08:13吳海輝
        中國新技術(shù)新產(chǎn)品 2016年6期

        吳海輝

        摘 要:本文介紹了一個試驗(yàn)數(shù)據(jù)備份整理系統(tǒng),描述了系統(tǒng)的原理,構(gòu)成和用途。該系統(tǒng)主要用于電氣試驗(yàn)數(shù)據(jù)的收集備份,也為進(jìn)一步的整理和分析數(shù)據(jù)提供了方便。

        關(guān)鍵詞:電氣試驗(yàn);數(shù)據(jù);Python sqlite

        中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A

        預(yù)防性試驗(yàn)是電氣設(shè)備診斷的重要手段。周期性的預(yù)防性試驗(yàn)產(chǎn)生大量的試驗(yàn)數(shù)據(jù)。為了便于數(shù)據(jù)的比較分析,需要對大量的試驗(yàn)數(shù)據(jù)進(jìn)行儲存和整理。當(dāng)前,試驗(yàn)數(shù)據(jù)主要儲存于企業(yè)級數(shù)據(jù)系統(tǒng)中,即由企業(yè)建立專門的試驗(yàn)數(shù)據(jù)存儲系統(tǒng),數(shù)據(jù)儲存在后臺數(shù)據(jù)庫中,試驗(yàn)人員使用專門界面登錄系統(tǒng),錄入或者查閱試驗(yàn)數(shù)據(jù)。由于系統(tǒng)開發(fā)和運(yùn)維方面存在著不足,試驗(yàn)人員往往難以調(diào)閱試驗(yàn)數(shù)據(jù)來進(jìn)行綜合分析。另外,由于試驗(yàn)數(shù)據(jù)是集中儲存的,當(dāng)系統(tǒng)故障或者網(wǎng)絡(luò)中斷時,試驗(yàn)數(shù)據(jù)就不能錄入和讀取。所以,在企業(yè)級的試驗(yàn)儲存系統(tǒng)之外,試驗(yàn)人員還需要另外一套本地化的數(shù)據(jù)備份整理系統(tǒng)作為補(bǔ)充。

        本文作者使用Python語言和sqlite數(shù)據(jù)庫開發(fā)了一套試驗(yàn)數(shù)據(jù)備份整理系統(tǒng)。該系統(tǒng)自動從企業(yè)級數(shù)據(jù)系統(tǒng)收集實(shí)驗(yàn)數(shù)據(jù)并儲存進(jìn)本地的數(shù)據(jù)庫中。

        1 企業(yè)級數(shù)據(jù)系統(tǒng)試驗(yàn)數(shù)據(jù)的構(gòu)成

        目前,筆者供職的廣東電網(wǎng)公司的企業(yè)級數(shù)據(jù)系統(tǒng)上的試驗(yàn)數(shù)據(jù)是以單個試驗(yàn)報告的形式錄入和展示的。一個試驗(yàn)報告既包含試驗(yàn)時間,氣溫等試驗(yàn)信息,也包含試驗(yàn)數(shù)據(jù)。試驗(yàn)信息被包含在JSON格式的數(shù)據(jù)包里面,數(shù)據(jù)高度格式化,可以統(tǒng)一處理。試驗(yàn)數(shù)據(jù)被包含在HTML格式的數(shù)據(jù)包里面的,形式多變,因而需要對每一種試驗(yàn)報告單獨(dú)處理。

        企業(yè)級數(shù)據(jù)系統(tǒng)上的每一個試驗(yàn)報告都有唯一的一個身份編號(id),是一個32位的十六進(jìn)制整數(shù)。Id自報告創(chuàng)建時起就存在。不論試驗(yàn)報告經(jīng)過哪一個節(jié)點(diǎn),id都是不變的。企業(yè)級數(shù)據(jù)系統(tǒng)上的一個試驗(yàn)報告都會依次經(jīng)歷創(chuàng)建,審核,審批三個時間節(jié)點(diǎn)。每一個試驗(yàn)報告都有一個流程號,可能的取值是0,1和2,分別代表報告處于已創(chuàng)建,已審核和已審批三個階段。

        企業(yè)級數(shù)據(jù)系統(tǒng)上有一個報告列表,也使用JSON協(xié)議。列表上包括了每一個報告的id,流程號,計劃編號,試驗(yàn)班組等信息。

        2 試驗(yàn)數(shù)據(jù)備份整理系統(tǒng)的工作原理和模塊構(gòu)成

        試驗(yàn)數(shù)據(jù)備份整理系統(tǒng)由多個模塊構(gòu)成。這些模塊可分為主控模塊,接口模塊,網(wǎng)頁數(shù)據(jù)處理模塊。試驗(yàn)數(shù)據(jù)存放在一個名為Data.db的sqlite數(shù)據(jù)庫文件中。另外有系統(tǒng)日志存放在一個名為Work.db的sqlite數(shù)據(jù)庫文件中。

        2.1 系統(tǒng)工作原理與主控模塊

        試驗(yàn)數(shù)據(jù)備份整理系統(tǒng)包含有一個主控模塊,腳本文件名為Main Control.py。主控模塊可由操作系統(tǒng)定時啟動,亦可人工啟動。啟動后,主控模塊首先加載各個接口模塊。然后登陸企業(yè)級數(shù)據(jù)系統(tǒng),并獲取報告列表。然后依次讀出列表中每一個報告的信息,包括報告的名稱,創(chuàng)建班組,計劃編號,id和流程號。通過id和流程號在日志中查找處理記錄。如果在日志中找到成功處理或跳過的記錄,就讀出列表中下一個報告的信息。如果在日志中沒有找到這樣的記錄,通過報告名稱查找對應(yīng)的網(wǎng)頁數(shù)據(jù)處理模塊來處理此報告。網(wǎng)頁數(shù)據(jù)處理模塊若成功將試驗(yàn)信息和數(shù)據(jù)寫入數(shù)據(jù)庫,則返回成功的信息;若試驗(yàn)數(shù)據(jù)缺失,則將試驗(yàn)信息寫入數(shù)據(jù)庫無意義,此時網(wǎng)頁數(shù)據(jù)處理模塊返回跳過的信息,提示試驗(yàn)數(shù)據(jù)備份整理系統(tǒng)以后忽略此報告;若是其他的原因?qū)е聦懭霐?shù)據(jù)庫失敗,則網(wǎng)頁數(shù)據(jù)處理模塊返回失敗的信息。待網(wǎng)頁處理模塊返回信息后,主控模塊就將報告處理的結(jié)果(成功,失敗或者跳過)寫入日志,隨后讀出列表中下一個報告的信息。如此循環(huán)往復(fù),直至整個報告列表被遍歷。最后,主控模塊關(guān)閉Data.db文件和Work.db文件并退出。至此試驗(yàn)數(shù)據(jù)備份整理系統(tǒng)的一次工作完成。

        2.2 接口模塊

        接口模塊主要有四個,分別為超級接口,企業(yè)系統(tǒng)接口,試驗(yàn)數(shù)據(jù)庫接口和日志數(shù)據(jù)庫接口。

        2.2.1 超級接口

        超級接口的腳本文件名為Super Base Interface.py,包含了Super Base Interface類。當(dāng)這個類實(shí)例化時,它會從一個名為作業(yè)表單處理器表.xlsx的Excel文件讀取試驗(yàn)報告與處理模塊的對應(yīng)表,并通過Get Handler Name方法返回給調(diào)用它的主控模塊。此外,主控模塊首先加載超級接口模塊,所以它可以作為未來程序擴(kuò)展的掛載點(diǎn),并因此得名超級接口。

        2.2.2 企業(yè)系統(tǒng)接口

        企業(yè)系統(tǒng)接口的腳本文件名為PSystem4A Interface.py。本模塊中,通過PSystem4A Interface類封裝了登錄企業(yè)級數(shù)據(jù)系統(tǒng)和從這個系統(tǒng)中獲取網(wǎng)頁的功能。調(diào)用此類中的Single Login方法并提供賬號和密碼參數(shù)就可以登錄系統(tǒng)。調(diào)用POST方法就可以向企業(yè)級數(shù)據(jù)系統(tǒng)的服務(wù)器進(jìn)行POST詢問。調(diào)用GET方法就可以向企業(yè)級數(shù)據(jù)系統(tǒng)的服務(wù)器進(jìn)行GET詢問。GetIndex Json方法返回從企業(yè)級數(shù)據(jù)系統(tǒng)獲得的JSON格式的報告列表。

        2.2.3 試驗(yàn)數(shù)據(jù)庫接口

        試驗(yàn)數(shù)據(jù)接口模塊的腳本文件名為Data DB Interface.py。內(nèi)含Data DB Interface類,封裝了對Data.db數(shù)據(jù)庫的操作。此類中提供了WriteDict方法,可以把一個字典對象寫入由參數(shù)指定的數(shù)據(jù)表中。

        2.2.4 日志數(shù)據(jù)庫接口

        日志數(shù)據(jù)接口模塊的腳本文件名為Work Db Interface.py。內(nèi)含Work Db Interface類,封裝了對Work.db數(shù)據(jù)庫的操作。此類中提供了Set Log方法,可以寫入一條日志。同時提供了Check Code方法供主控模塊調(diào)用,用以在日志中查找成功或者跳過記錄。

        2.3 網(wǎng)頁數(shù)據(jù)處理模塊

        網(wǎng)頁數(shù)據(jù)處理模塊目前有25個,各負(fù)責(zé)處理一種試驗(yàn)報告。每一個網(wǎng)頁數(shù)據(jù)處理模塊都會加載企業(yè)系統(tǒng)接口模塊和數(shù)據(jù)庫接口模塊。網(wǎng)頁數(shù)據(jù)處理模塊中的同名類(例如,PD10CBCHandler中的PD10CBCHandler類)提供兩個公共方法,Load Data和Write Data。Load Data方法從企業(yè)級數(shù)據(jù)系統(tǒng)中獲取試驗(yàn)信息和數(shù)據(jù),并存入類成員中。Write Data方法把試驗(yàn)信息和數(shù)據(jù)寫入試驗(yàn)數(shù)據(jù)庫Data.db中對應(yīng)的數(shù)據(jù)表。

        2.4 試驗(yàn)數(shù)據(jù)的儲存

        試驗(yàn)數(shù)據(jù)儲存在sqlite數(shù)據(jù)庫文件Data.db中。數(shù)據(jù)庫中包含了多個數(shù)據(jù)表,每個數(shù)據(jù)表記一種試驗(yàn)報告的信息和數(shù)據(jù)。數(shù)據(jù)表的一條記錄包含了時間戳,試驗(yàn)時間、地點(diǎn)等信息和試驗(yàn)數(shù)據(jù)。時間戳是數(shù)據(jù)表的主鍵。

        3 試驗(yàn)數(shù)據(jù)備份整理系統(tǒng)的應(yīng)用

        試驗(yàn)數(shù)據(jù)備份整理系統(tǒng)的首要用途是試驗(yàn)數(shù)據(jù)的備份。如前所述,當(dāng)前試驗(yàn)數(shù)據(jù)主要是集中儲存于企業(yè)級數(shù)據(jù)系統(tǒng)上。當(dāng)網(wǎng)絡(luò)出現(xiàn)故障,試驗(yàn)數(shù)據(jù)就不能被人讀取和使用。如果數(shù)據(jù)系統(tǒng)發(fā)生故障,甚至有丟失試驗(yàn)數(shù)據(jù)的風(fēng)險。筆者開發(fā)的試驗(yàn)數(shù)據(jù)備份整理系統(tǒng)可以運(yùn)行于試驗(yàn)人員的個人電腦上,自動對數(shù)據(jù)進(jìn)行備份,實(shí)現(xiàn)分散儲存。當(dāng)企業(yè)級數(shù)據(jù)系統(tǒng)無法訪問時,試驗(yàn)人員可以到本人計算機(jī)上的Data.db數(shù)據(jù)庫里調(diào)出試驗(yàn)數(shù)據(jù)使用。由于數(shù)據(jù)統(tǒng)一來源于企業(yè)級數(shù)據(jù)系統(tǒng),因而保證了數(shù)據(jù)的一致性。所以,筆者開發(fā)的試驗(yàn)數(shù)據(jù)備份整理系統(tǒng)是企業(yè)級數(shù)據(jù)系統(tǒng)的有力補(bǔ)充。

        其次,試驗(yàn)數(shù)據(jù)備份整理系統(tǒng)還方便了試驗(yàn)數(shù)據(jù)的整理和分析。因?yàn)槠髽I(yè)級數(shù)據(jù)系統(tǒng)要保證安全,不會對普通用戶開放數(shù)據(jù)庫接口,所以,試驗(yàn)數(shù)據(jù)的讀取只能通過一定的界面進(jìn)行,如筆者所用的企業(yè)級資產(chǎn)管理系統(tǒng)就是通過網(wǎng)頁來展現(xiàn)試驗(yàn)數(shù)據(jù)的。這樣就限制了對試驗(yàn)數(shù)據(jù)的綜合分析。例如,如果試驗(yàn)人員需要統(tǒng)計某型110kV電容式套管的介損試驗(yàn)數(shù)據(jù)來作為參考,就只能先查找設(shè)備臺賬,找出該型套管的安裝位置,然后在企業(yè)級數(shù)據(jù)系統(tǒng)上按變電站查找套管試驗(yàn)報告,再逐一打開報告網(wǎng)頁,記錄數(shù)據(jù)。試驗(yàn)數(shù)據(jù)備份整理系統(tǒng)給試驗(yàn)人員提供了一個可供自己支配的數(shù)據(jù)庫,只需一個查詢語句就可以找出上述數(shù)據(jù)。此外,筆者也寫了一個Python腳本Db2xlsx.py,可以將Data.db數(shù)據(jù)庫的數(shù)據(jù)導(dǎo)出到一個Excel文檔上面,更加方便了數(shù)據(jù)的整理和分析。

        將來,試驗(yàn)數(shù)據(jù)備份整理系統(tǒng)收集的數(shù)據(jù)還可以用于對電氣設(shè)備基于統(tǒng)計的健康評估,使每個電氣試驗(yàn)人員都邁入到大數(shù)據(jù)時代。

        參考文獻(xiàn)

        [1] Python學(xué)習(xí)手冊[M].北京:機(jī)械工業(yè)出版社,2011.

        [2] Python核心編程[M]. 北京:人民郵電出版社,2008.

        [3] SQLite權(quán)威指南(第二版)[M]. 北京:電子工業(yè)出版社,2012.

        [4] 圖解HTTP[M].北京:人民郵電出版社,2014.

        [5] The JSON Data Interchange Format[Z]. ECMA-404 1st Edition/October 2013.

        久久99人妖视频国产| 久久中文字幕无码一区二区| 亚洲成AV人片无码不卡| 亚洲人成精品久久熟女| 亚洲日韩精品一区二区三区无码| 久久久久久久久久久国产| 久久久精品2019中文字幕之3| 午夜宅男成人影院香蕉狠狠爱| 日本饥渴人妻欲求不满| 人妻av乱片av出轨| 粉嫩极品国产在线观看| 蜜桃av一区二区三区| 妺妺窝人体色www在线| 日韩成人大屁股内射喷水| 国产桃色在线成免费视频| 口爆吞精美臀国产在线| 亚洲欧美v国产一区二区| 亚洲欧美日韩综合久久久| 动漫av纯肉无码av在线播放| 国产精品女同一区二区软件| 97久久精品人妻人人搡人人玩| 7878成人国产在线观看| 国产香蕉一区二区三区| 日韩亚洲无吗av一区二区| 男男啪啪激烈高潮cc漫画免费| 国产熟女亚洲精品麻豆| 中文字幕一区二区三区综合网| 亚洲一区二区三区四区五区黄| 久久人人爽人人爽人人av东京热 | 精品一区二区三区国产av| 成人精品一区二区三区电影| 97免费人妻在线视频| 网友自拍人妻一区二区三区三州| 开心五月激情五月五月天| 日韩毛片免费无码无毒视频观看| 亚洲男人的天堂精品一区二区| 亚洲少妇一区二区三区老| 日日躁夜夜躁狠狠躁| 国产日韩成人内射视频| 天堂av一区一区一区| 中文字幕 亚洲精品 第1页|