葉均隆 葉均明
摘要:為了減少電池企業(yè)信息化建設(shè)的成本和對(duì)商用數(shù)據(jù)庫(kù)的依賴,設(shè)計(jì)出兩種有效的TXT文檔結(jié)構(gòu)儲(chǔ)存電池檢測(cè)數(shù)據(jù)。由于電池檢測(cè)數(shù)據(jù)量大,為了提高數(shù)據(jù)讀取速度,這兩種儲(chǔ)存都是采用約定文件大小和分類保存的方式進(jìn)行。由于直接保存采集進(jìn)來的檢測(cè)數(shù)據(jù),會(huì)出現(xiàn)大量的數(shù)據(jù)冗余,因此第二種則在第一種儲(chǔ)存方法中進(jìn)一步優(yōu)化。通過類似數(shù)據(jù)庫(kù)的主外鍵關(guān)聯(lián)的方式進(jìn)行儲(chǔ)存,有效減少數(shù)據(jù)冗余。
關(guān)鍵詞:數(shù)據(jù)儲(chǔ)存;文本數(shù)據(jù)保存;文本數(shù)據(jù)關(guān)聯(lián);大量數(shù)據(jù)儲(chǔ)存
1 ?引言
現(xiàn)在企業(yè)生產(chǎn)中一般使用主流的數(shù)據(jù)庫(kù)軟件進(jìn)行各種數(shù)據(jù)保存和處理,如:sql server、mysql、Oracle等的使用。由于一次電池的檢測(cè)數(shù)據(jù),它們的數(shù)據(jù)量大,各類數(shù)據(jù)之間的關(guān)系不算復(fù)雜,使用這些主流的數(shù)據(jù)庫(kù)進(jìn)行存取,成本較高及容易受到技術(shù)制約。如果使用TXT文本保存數(shù)據(jù),所有的技術(shù)人員都能對(duì)它進(jìn)行處理和利用,而且不需要額外的費(fèi)用。使用TXT文本保存一次電池的質(zhì)量檢測(cè)數(shù)據(jù)主要解決以下三個(gè)問題:
(1)電池的檢測(cè)數(shù)據(jù)、電池檢測(cè)標(biāo)準(zhǔn)、生產(chǎn)線號(hào)、日期、電池型號(hào)、觸頭位置號(hào)等信息的保存。
(2)電池生產(chǎn)速度快,生成的數(shù)據(jù)量大,數(shù)據(jù)儲(chǔ)存要考慮管理方便和讀取速度。
(3)對(duì)數(shù)據(jù)查詢時(shí),電池的檢測(cè)數(shù)據(jù)、電池檢測(cè)標(biāo)準(zhǔn)、生產(chǎn)線號(hào)等的關(guān)聯(lián)關(guān)系的處理。
2存儲(chǔ)結(jié)構(gòu)設(shè)計(jì)
2.1 數(shù)據(jù)沒有精簡(jiǎn)的存儲(chǔ)設(shè)計(jì)
例如數(shù)據(jù)在D:\DataTra\2021\A55A\0321.txt文件保存,每年生產(chǎn)的電池?cái)?shù)據(jù)放在一個(gè)按年份命名的文件夾里。一般電池廠都會(huì)擁有多條生產(chǎn)線,那么在年份文件夾下接著建立以生產(chǎn)線號(hào)命名的文件夾?!?321.txt”代表3月21日的檢測(cè)數(shù)據(jù)。因?yàn)闅v史記錄翻查的幾率偏小,所以年份文件夾下建立各生產(chǎn)線號(hào)的文件夾更有利于系統(tǒng)的查詢的效率。在生產(chǎn)線號(hào)命名的文件夾下,每天會(huì)創(chuàng)建一個(gè)電池檢測(cè)數(shù)據(jù)TXT文檔,文檔使用當(dāng)前電池檢測(cè)數(shù)據(jù)的生產(chǎn)時(shí)間并去掉年份命名,這樣在文件進(jìn)行查找時(shí)不需再次進(jìn)行年份比較。在電池工廠里一年一般上班的天數(shù)不會(huì)超過270天。那么每年生成的文件最多為:270×生產(chǎn)線總數(shù),擁有6條生產(chǎn)線的廠家約為1620個(gè)文件。計(jì)算機(jī)的硬盤使用時(shí)間越長(zhǎng),對(duì)硬盤里的文件進(jìn)行編輯或刪除次數(shù)多了,都會(huì)造成文件碎片增加,這樣會(huì)嚴(yán)重影響以后的讀寫速度。根據(jù)近年來一次電池生產(chǎn)線的生產(chǎn)的特點(diǎn),較好的生產(chǎn)設(shè)備一般能達(dá)到600只/min,理論上一天最多能生產(chǎn)864000只電池[1]。每行保存一條記錄,即是一只電池的數(shù)據(jù),例如:“2021-03-22,21:23:12.448,0022,A55A,R03C,1.685,1.675,1.440,3.600,0025,0050,1.682,P,1.466,P,03.66,P,0205400006”。它們分別是日期、時(shí)間、觸頭的位置號(hào)、生產(chǎn)線號(hào)、電池型號(hào)、開路電壓上限、開路電壓下限、負(fù)荷電壓下限、短路電流下限、負(fù)荷電阻放電時(shí)間、短路放電時(shí)間、開路電壓實(shí)測(cè)值、負(fù)荷電壓實(shí)測(cè)值、短路電流實(shí)測(cè)值、流水號(hào),另外此記錄中的“P”是符合檢驗(yàn)水平代表合格,如果是顯著性差異的水平則此位置用F表示。一條記錄有107個(gè)字符,換行符號(hào)占2個(gè)字符(windows操作系統(tǒng)每行結(jié)尾是“\r \n”),則每天生成的TXT文檔空間最大為( 107 +2) ×Rmax /( 1 024×1 024) ≈89. 8 Mb[2]。在當(dāng)天開始生產(chǎn)時(shí),即有電池檢測(cè)數(shù)據(jù),就開始生成約為89.8 Mb大小的文件,文件里面的信息為空。通常在工廠的一天不會(huì)滿負(fù)荷運(yùn)轉(zhuǎn)的,機(jī)器一般是8~12小時(shí)的運(yùn)行,那么大部分的txt文檔實(shí)際使用的磁盤空間為29.9 Mb ~44.9 Mb。那么需要第二天打開電池檢測(cè)數(shù)據(jù)程序時(shí),對(duì)上一次生產(chǎn)過程中生成的TXT文檔進(jìn)行空閑容量的檢測(cè)與釋放。文檔按時(shí)間的順序排序,使用折半查找算法則有非常高的運(yùn)行效率。
2.2 數(shù)據(jù)精簡(jiǎn)的存儲(chǔ)設(shè)計(jì)
如果想減少對(duì)磁盤空間的浪費(fèi),檢測(cè)數(shù)據(jù)中的日期和生產(chǎn)線號(hào)可在文件夾和文件名字那里體現(xiàn)出,可刪除它們。驗(yàn)電機(jī)械采用多觸頭隨行的結(jié)構(gòu)方式,通常有30或32個(gè)觸頭[2],所以位置號(hào)使用兩位數(shù)表達(dá)即可。電池型號(hào)一般有21種,這里也可以用兩位數(shù)字字符表達(dá)即可。檢測(cè)標(biāo)準(zhǔn)因?yàn)橐话愫荛L(zhǎng)時(shí)間才更改一次,所以檢測(cè)數(shù)據(jù)文檔的檢測(cè)標(biāo)準(zhǔn)數(shù)據(jù)重復(fù)出現(xiàn)的概率很高,為了減少冗余數(shù)據(jù),可建立的30MB的檢測(cè)標(biāo)準(zhǔn)TXT文檔(st.txt)進(jìn)行記錄,根據(jù)生產(chǎn)特點(diǎn),文檔記錄的流水號(hào)使用6位字符表達(dá),足夠保證一年內(nèi)不會(huì)重復(fù)。檢測(cè)標(biāo)準(zhǔn)文檔也是放在同一年份及同一生產(chǎn)線下,同一生產(chǎn)線一年只建立一個(gè)。然后檢測(cè)標(biāo)準(zhǔn)文檔的流水號(hào)賦給電池檢測(cè)數(shù)據(jù)TXT文檔即可。代號(hào)P或F可以根據(jù)檢測(cè)標(biāo)準(zhǔn)可以得到,這項(xiàng)也可以刪除。一天最多864000只電池,那么使用6位流水號(hào)即可足夠表達(dá),經(jīng)過這樣分析,例如:“0322.txt”文檔保存3月22日的一只電池的檢測(cè)數(shù)據(jù)為:“21:23:11.936,21,03,000001,1.676,1.448,03.74,000001”。而st.txt保存它對(duì)應(yīng)的檢測(cè)標(biāo)準(zhǔn)為:“2021-03-22,21:23:11.936,1.685,1.675,1.440,3.600,0025,0050,000001”。雖然這樣精簡(jiǎn)設(shè)計(jì)可減少到原來一半的磁盤空間,但在設(shè)計(jì)查詢算法設(shè)計(jì)時(shí)需要關(guān)聯(lián)st.txt文檔才能獲得檢測(cè)標(biāo)準(zhǔn)。按上文給的檢測(cè)數(shù)據(jù)例子,文本中的“03”旁的“000001”與st.txt文本中的一條檢測(cè)標(biāo)準(zhǔn)的“000001”關(guān)聯(lián)上。
3 結(jié)束語
通過本文2.1所述的儲(chǔ)存結(jié)構(gòu),在數(shù)據(jù)寫入和查找時(shí)較為簡(jiǎn)單,但通過本文2.2所述的方式,開發(fā)難度逐步增加。使用TXT文檔保存數(shù)據(jù)雖然有效減少信息化建設(shè)的成本,但同時(shí)增加數(shù)據(jù)寫入和查找時(shí)軟件開發(fā)的難度。因此在借鑒文章的方法時(shí)可能根據(jù)不同的需求是否采用TXT文本儲(chǔ)存數(shù)據(jù)。
參考文獻(xiàn):
[1]李勝,楊林.堿性鋅錳電池生產(chǎn)設(shè)備的進(jìn)展和發(fā)展方向[J].電池,2015,45(04):225-227.
[2]葉均隆,葉錦雄,謝壁龍.電池高速測(cè)量數(shù)據(jù)的實(shí)時(shí)采集與保存[J].電池,2020,50(05):480-482.
基金項(xiàng)目:2020年度江門市基礎(chǔ)與理論科學(xué)研究類科技計(jì)劃項(xiàng)目(2020JC03050)
作者簡(jiǎn)介:葉均?。?983-),男,廣東人,廣東南方職業(yè)學(xué)院信息學(xué)院講師,碩士,研究方向:計(jì)算機(jī)應(yīng)用、智能控制及算法等;
葉均明(1980-),男,廣東省江門市人,江門市中心醫(yī)院網(wǎng)絡(luò)中心工程師,本科,主要研究方向網(wǎng)絡(luò)工程、醫(yī)院信息化。