史宏旻,田延彬,鄭 旭,劉 垚,魯衛(wèi)濤SHI Hong-min, TIAN Yan-bin, ZHENG Xu, LIU Yao, LU Wei-tao(.中國(guó)建筑科學(xué)研究院 建筑機(jī)械化研究分院,河北 廊坊 065000;.廊坊華元機(jī)電工程有限公司,河北 廊坊 065000)
建筑施工設(shè)備監(jiān)控管理平臺(tái)的數(shù)據(jù)存儲(chǔ)方案
史宏旻1,田延彬2,鄭 旭1,劉 垚1,魯衛(wèi)濤1
SHI Hong-min, TIAN Yan-bin, ZHENG Xu, LIU Yao, LU Wei-tao
(1.中國(guó)建筑科學(xué)研究院 建筑機(jī)械化研究分院,河北 廊坊 065000;2.廊坊華元機(jī)電工程有限公司,河北 廊坊 065000)
[摘 要]針對(duì)監(jiān)控管理平臺(tái)的數(shù)據(jù)庫(kù)查詢?cè)L問(wèn)量大的情況,分析設(shè)計(jì)了數(shù)據(jù)庫(kù)分表方案,提高了并發(fā)訪問(wèn)量。通過(guò)實(shí)際并發(fā)測(cè)試,驗(yàn)證了分表的有效性,縮短了查詢數(shù)據(jù)庫(kù)所需時(shí)間,增加了網(wǎng)站效率。
[關(guān)鍵詞]施工設(shè)備;監(jiān)控;數(shù)據(jù)庫(kù);分表
利用監(jiān)控管理平臺(tái)對(duì)建筑施工設(shè)備進(jìn)行統(tǒng)一管理十分便捷,已成為政府建筑施工設(shè)備安全監(jiān)督管理部門(mén)必不可少的監(jiān)督管理手段之一。當(dāng)前,一些監(jiān)控管理平臺(tái)服務(wù)器對(duì)數(shù)據(jù)庫(kù)仍然采用單一數(shù)據(jù)表的方式存儲(chǔ)數(shù)據(jù),隨著監(jiān)控管理平臺(tái)規(guī)模的日趨增大,在線建筑施工設(shè)備監(jiān)控管理系統(tǒng)終端的數(shù)量越來(lái)越多,服務(wù)器數(shù)據(jù)庫(kù)存儲(chǔ)的數(shù)據(jù)量越來(lái)越大,這種方式的查詢?cè)L問(wèn)速度已不能滿足實(shí)際使用需求。鑒于上述原因,我們研究制定了一種數(shù)據(jù)庫(kù)分表方案,并優(yōu)化監(jiān)控管理平臺(tái)查詢數(shù)據(jù)庫(kù)的操作指令程序代碼,將并發(fā)訪問(wèn)量高的數(shù)據(jù)分別存儲(chǔ)在不同的數(shù)據(jù)表中,使得這些數(shù)據(jù)可以被同時(shí)查詢?cè)L問(wèn),提高了監(jiān)控管理平臺(tái)的查詢?cè)L問(wèn)速度和運(yùn)行效率。
在一些監(jiān)控管理平臺(tái)的服務(wù)器數(shù)據(jù)庫(kù)系統(tǒng)中,所有建筑施工設(shè)備的同類型數(shù)據(jù)信息全部存儲(chǔ)在同一張數(shù)據(jù)表中,依照數(shù)據(jù)信息上報(bào)時(shí)間進(jìn)行排序。在其所管理的建筑施工設(shè)備監(jiān)控管理系統(tǒng)終端總數(shù)不多時(shí),這種單一表的數(shù)據(jù)表結(jié)構(gòu)可以節(jié)省硬盤(pán)空間,也易于編寫(xiě)監(jiān)控管理平臺(tái)運(yùn)行軟件的程序代碼,降低由于代碼復(fù)雜而出現(xiàn)漏洞的隱患風(fēng)險(xiǎn)。但這種單一表的數(shù)據(jù)表結(jié)構(gòu)存在以下弊端。
1)由于所有同類型數(shù)據(jù)信息均存儲(chǔ)在一張數(shù)據(jù)表內(nèi),即使想要查詢某個(gè)特定建筑施工設(shè)備在某個(gè)特定時(shí)間段的數(shù)據(jù),也需要檢索整張數(shù)據(jù)表,耗費(fèi)大量時(shí)間。
2)當(dāng)需要集群管理(如備份某種特定類型的數(shù)據(jù)、導(dǎo)出某些建筑施工設(shè)備的數(shù)據(jù)信息)時(shí),如沒(méi)有合理的數(shù)據(jù)庫(kù)存儲(chǔ)結(jié)構(gòu),則需要在篩選數(shù)據(jù)上耗費(fèi)時(shí)間。
3)為了確保數(shù)據(jù)安全,在需要向數(shù)據(jù)表寫(xiě)入數(shù)據(jù)時(shí),會(huì)將數(shù)據(jù)表鎖定,防止其被其它線程修改。因此當(dāng)需要大量寫(xiě)入數(shù)據(jù)時(shí),數(shù)據(jù)表會(huì)被頻繁鎖定,拖累運(yùn)行速度。
4)單一數(shù)據(jù)表會(huì)占用特定的硬盤(pán)空間,大量讀寫(xiě)數(shù)據(jù)會(huì)消耗硬盤(pán)該空間的可用讀寫(xiě)次數(shù),對(duì)硬盤(pán)壽命造成影響。
總之,數(shù)據(jù)庫(kù)中的數(shù)據(jù)量是不可控的,在未進(jìn)行分表的情況下,隨著時(shí)間和業(yè)務(wù)的發(fā)展,表中的數(shù)據(jù)量會(huì)越來(lái)越大,數(shù)據(jù)操作的開(kāi)銷也會(huì)越來(lái)越大;另外,由于無(wú)法進(jìn)行分布式部署,而一臺(tái)服務(wù)器的資源(CPU、硬盤(pán)、內(nèi)存等)是有限的,最終數(shù)據(jù)庫(kù)所能承載的數(shù)據(jù)量、數(shù)據(jù)處理能力都將遭遇瓶頸。
基于以上原因,現(xiàn)我們制定了一種高效的Hash分表方案,將大量數(shù)據(jù)分別存儲(chǔ)在不同的數(shù)據(jù)表中,提高數(shù)據(jù)的存儲(chǔ)和查詢速度。例如某監(jiān)控管理平臺(tái)服務(wù)器數(shù)據(jù)庫(kù)系統(tǒng)數(shù)據(jù)量較大,需要分成1 000張數(shù)據(jù)表,則可以以建筑施工設(shè)備監(jiān)控管理系統(tǒng)終端的識(shí)別編號(hào)作為輸入?yún)?shù),計(jì)算出其對(duì)應(yīng)的Hash值,將Hash值對(duì)1 000取余得到分表表序號(hào),再以分表表序號(hào)與分表表綴結(jié)合的方式得出分表表名。
同時(shí)再建立一個(gè)單獨(dú)的索引數(shù)據(jù)表,專門(mén)用來(lái)記錄建筑施工設(shè)備監(jiān)控管理系統(tǒng)終端的識(shí)別編號(hào)與該終端數(shù)據(jù)所存儲(chǔ)地址的一一對(duì)應(yīng)關(guān)系,通常數(shù)據(jù)量很小、查詢速度很快。建立索引數(shù)據(jù)表之后,需要查詢某分表數(shù)據(jù)時(shí),不再需要重新計(jì)算Hash值并對(duì)1 000取余得到分表表序號(hào),而只要查詢索引數(shù)據(jù)表即可得到分表名稱,其結(jié)構(gòu)示意如圖1。
圖1 數(shù)據(jù)分表結(jié)構(gòu)示意圖
此種分表方式具有以下優(yōu)點(diǎn)。
1)數(shù)據(jù)分表的數(shù)量適宜。由于每張數(shù)據(jù)表均需預(yù)留一定的硬盤(pán)空間存儲(chǔ)數(shù)據(jù)表的檢索信息,如果數(shù)據(jù)表過(guò)多,就會(huì)占用大量的額外硬盤(pán)空間,而且數(shù)據(jù)表的碎片化也使得數(shù)據(jù)庫(kù)從硬盤(pán)上檢索數(shù)據(jù)表的速度降低。
2)將同一建筑施工設(shè)備的數(shù)據(jù)信息存儲(chǔ)在了同一張表內(nèi),避免搜索同一建筑施工設(shè)備在不同時(shí)間的數(shù)據(jù)時(shí)需要檢索多個(gè)數(shù)據(jù)表。
3)此分表方案中每個(gè)分表的數(shù)據(jù)結(jié)構(gòu)均與原有總表數(shù)據(jù)結(jié)構(gòu)相同,在修改程序代碼時(shí)只需更改存儲(chǔ)目標(biāo)的表名即可,程序代碼的修改簡(jiǎn)潔、有條理。
4)由于Hash算法具有單向不可逆性和唯一性的特點(diǎn),所有建筑施工設(shè)備監(jiān)控管理系統(tǒng)終端將會(huì)有其唯一對(duì)應(yīng)的分表表名,分表存儲(chǔ)過(guò)程迅速而有序。
經(jīng)過(guò)實(shí)際測(cè)試,這種分表方式能夠提高監(jiān)控管理平臺(tái)運(yùn)行速度,降低硬盤(pán)占用率,提高了軟件程序效率。監(jiān)控管理平臺(tái)在并發(fā)訪問(wèn)量較高時(shí)也能流暢運(yùn)行,可靠性顯著提高。上報(bào)到監(jiān)控管理平臺(tái)的建筑施工設(shè)備數(shù)據(jù)信息方便了監(jiān)督管理人員對(duì)建筑施工設(shè)備的監(jiān)督管理,為建筑施工設(shè)備的壽命評(píng)估、日常維護(hù)和事故的判定提供強(qiáng)有力的數(shù)據(jù)支持。
(編輯 張磊慶)
[基金項(xiàng)目]國(guó)家“十二五”科技支撐計(jì)劃項(xiàng)目(2011BAJ02B02)
[中圖分類號(hào)]TH213.3
[文獻(xiàn)標(biāo)識(shí)碼]B
[文章編號(hào)]1001-1366(2015)05-0033-02
[收稿日期]2015-03-20
Construction equipment monitoring management platform of data storage solution