本發(fā)明屬于計(jì)算機(jī)統(tǒng)計(jì)技術(shù)領(lǐng)域,特別涉及一種統(tǒng)計(jì)報(bào)表的生成方法,可用于對(duì)“兩客一危”車輛的實(shí)時(shí)統(tǒng)計(jì)。
背景技術(shù):
目前,我國(guó)運(yùn)輸行業(yè)快速發(fā)展,“兩客一?!避囕v逐年增加,對(duì)交通安全帶來(lái)一定的隱患。所謂“兩客一危”車輛,是指從事旅游的包車、三類以上班線客車和運(yùn)輸危險(xiǎn)化學(xué)品、煙花爆竹、民用爆炸物品的道路專用車輛,由于此類車輛在行駛中涉及到廣大群眾的人身安全以及對(duì)周圍環(huán)境的影響,因此受到了國(guó)家和人民的高度重視。
基于瀏覽器/服務(wù)器模式B/S的“兩客一?!避囕v監(jiān)控系統(tǒng)包括車載終端,服務(wù)器端,客戶端三個(gè)部分。其中,車載終端將“兩客一?!避囕v的實(shí)時(shí)數(shù)據(jù)以每分鐘兩次的頻率通過(guò)無(wú)線網(wǎng)絡(luò)發(fā)送給服務(wù)器端;服務(wù)器端接收數(shù)據(jù)并處理數(shù)據(jù),將數(shù)據(jù)顯示在客戶端的瀏覽器上;用戶通過(guò)瀏覽器監(jiān)控“兩客一?!避囕v。
使用該系統(tǒng),用戶可以在瀏覽器通過(guò)查詢數(shù)據(jù)和計(jì)算數(shù)據(jù)生成統(tǒng)計(jì)報(bào)表,但是,由于系統(tǒng)24小時(shí)不間斷接收大量數(shù)據(jù),生成統(tǒng)計(jì)報(bào)表耗時(shí)長(zhǎng)。為了縮短統(tǒng)計(jì)報(bào)表生成時(shí)間,需要提高數(shù)據(jù)查詢效率和查詢結(jié)果的重用性。
韓巧玲在2010發(fā)表的碩士論文“基于分區(qū)的網(wǎng)絡(luò)行為監(jiān)控系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)與優(yōu)化研究”中提出了一種基于靜動(dòng)隔離數(shù)據(jù)拆分的架構(gòu)。該方法的實(shí)現(xiàn)方案是:以“當(dāng)天”這個(gè)時(shí)間分割點(diǎn)將大規(guī)模日志數(shù)據(jù)拆分為實(shí)時(shí)數(shù)據(jù)和歷史數(shù)據(jù);建立兩張相同數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)表,分別為實(shí)時(shí)表和歷史表,將當(dāng)天的數(shù)據(jù)存到實(shí)時(shí)表中,除當(dāng)天以外的數(shù)據(jù)都存入歷史表中;通過(guò)定時(shí)任務(wù)調(diào)度每天將實(shí)時(shí)數(shù)據(jù)復(fù)制到歷史數(shù)據(jù)表中,并清空實(shí)時(shí)數(shù)據(jù)表。該方法雖然將數(shù)據(jù)表動(dòng)靜分區(qū),減少查詢實(shí)時(shí)數(shù)據(jù)時(shí)全表掃描的記錄數(shù),提高了查詢效率,但是對(duì)于數(shù)據(jù)統(tǒng)計(jì)來(lái)說(shuō),查詢只是第一步,該方法沒(méi)有涉及到查詢結(jié)果的緩存。
谷偉和陳蓮君在微型電腦應(yīng)用上發(fā)表的論文基于“MySql的查詢優(yōu)化技術(shù)研究”中提出了一種改進(jìn)的查詢重用的方法。該方法的實(shí)現(xiàn)方案是:將用戶輸入的sql語(yǔ)句中不規(guī)范的關(guān)鍵字經(jīng)過(guò)轉(zhuǎn)化得到規(guī)范化的關(guān)鍵字,最終得到標(biāo)準(zhǔn)的sql語(yǔ)句;將查詢語(yǔ)句的執(zhí)行計(jì)劃及相應(yīng)的語(yǔ)法結(jié)構(gòu)緩存;通過(guò)sql語(yǔ)句比對(duì),直接從緩存中獲取結(jié)果。該方法雖然實(shí)現(xiàn)了當(dāng)查詢語(yǔ)句不規(guī)范,查詢結(jié)果較大時(shí),可以重復(fù)使用緩存結(jié)果,避免了重復(fù)查詢。但是該方法由于沒(méi)有考慮車輛信息統(tǒng)計(jì)分析與時(shí)間的相關(guān)性,因而在不同的時(shí)間段查詢的結(jié)果不同,同時(shí)由于該方法沒(méi)有涉及到對(duì)時(shí)間段差異化的處理,使得查詢結(jié)果重用性不高。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于針對(duì)上述已有技術(shù)的不足,提出一種車輛監(jiān)控系統(tǒng)的統(tǒng)計(jì)報(bào)表生成方法,以提高查詢結(jié)果的重用性,節(jié)約統(tǒng)計(jì)報(bào)表生成時(shí)間,提高數(shù)據(jù)的統(tǒng)計(jì)效率。
實(shí)現(xiàn)上述目的技術(shù)方案是:首先,對(duì)數(shù)據(jù)進(jìn)行一次水平拆分,以“當(dāng)天”這個(gè)時(shí)間分割點(diǎn)將大規(guī)模數(shù)據(jù)拆分為實(shí)時(shí)數(shù)據(jù)和歷史數(shù)據(jù);其次,建立兩張相同數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)表,分別為實(shí)時(shí)表和歷史表,將當(dāng)天的數(shù)據(jù)存到實(shí)時(shí)表中,除當(dāng)天以外的數(shù)據(jù)都存入歷史表中;接著,按照統(tǒng)計(jì)指標(biāo)新建日統(tǒng)計(jì)表;然后,通過(guò)定時(shí)任務(wù)調(diào)度每天將實(shí)時(shí)數(shù)據(jù)復(fù)制到歷史表中,將實(shí)時(shí)數(shù)據(jù)計(jì)算后的統(tǒng)計(jì)數(shù)據(jù)存入日統(tǒng)計(jì)表中,清空實(shí)時(shí)表;最后,根據(jù)日統(tǒng)計(jì)表,統(tǒng)計(jì)得到要求時(shí)間段內(nèi)的統(tǒng)計(jì)報(bào)表。
具體步驟包括如下:
(1)依據(jù)交通部的JT/T 808標(biāo)準(zhǔn),確定存放當(dāng)天車輛狀態(tài)信息字段的內(nèi)容和數(shù)據(jù)類型,構(gòu)成實(shí)時(shí)表;
(2)依據(jù)交通部的JT/T 808標(biāo)準(zhǔn),確定存放除當(dāng)天以外的車輛狀態(tài)信息字段的內(nèi)容和數(shù)據(jù)類型,構(gòu)成歷史表;
(3)依據(jù)用戶需要的統(tǒng)計(jì)指標(biāo),確定存放當(dāng)天的統(tǒng)計(jì)數(shù)據(jù)字段的內(nèi)容和數(shù)據(jù)類型,構(gòu)成日統(tǒng)計(jì)表;
(4)獲取實(shí)時(shí)數(shù)據(jù);
在車輛監(jiān)控系統(tǒng)中,每個(gè)車載終端每30秒自動(dòng)向服務(wù)器端發(fā)送一條數(shù)據(jù),該數(shù)據(jù)中包含車輛的實(shí)時(shí)位置,速度及其他狀態(tài)信息,并將這些信息存入實(shí)時(shí)表中;
(5)判斷當(dāng)前時(shí)間是否為凌晨0點(diǎn),若是,則將實(shí)時(shí)表中的數(shù)據(jù)復(fù)制插入到歷史表中,再對(duì)實(shí)時(shí)表中的數(shù)據(jù)進(jìn)行計(jì)算,將計(jì)算結(jié)果插入到日統(tǒng)計(jì)表中,最后清空實(shí)時(shí)表中的數(shù)據(jù),返回步驟(4);否則,直接返回步驟(4);
(6)以日期為篩選條件,查詢?nèi)战y(tǒng)計(jì)表中符合要求的數(shù)據(jù),并對(duì)這些數(shù)據(jù)進(jìn)行計(jì)算操作生成用戶所需時(shí)間段內(nèi)的統(tǒng)計(jì)報(bào)表。
本發(fā)明與現(xiàn)有技術(shù)相比,具有以下優(yōu)點(diǎn):
第一,提高了數(shù)據(jù)查詢效率和重用性。
本發(fā)明由于將實(shí)時(shí)數(shù)據(jù)與歷史數(shù)據(jù)分區(qū),在查詢數(shù)據(jù)時(shí),只處理實(shí)時(shí)數(shù)據(jù),避免掃描大量的歷史數(shù)據(jù),提高了查詢效率;同時(shí)由于將以天為粒度的日統(tǒng)計(jì)數(shù)據(jù)作為中間變量存儲(chǔ)在數(shù)據(jù)庫(kù)中,這些數(shù)據(jù)在最終生成統(tǒng)計(jì)報(bào)表時(shí)可以重復(fù)使用,提高了數(shù)據(jù)的重用性。
第二,提高了系統(tǒng)的運(yùn)行效率。
本發(fā)明把計(jì)算量復(fù)雜的日統(tǒng)計(jì)計(jì)算,安排在系統(tǒng)負(fù)荷較小的凌晨進(jìn)行,有效提高了系統(tǒng)的運(yùn)行效率。
附圖說(shuō)明
圖1為現(xiàn)有“兩客一?!避囕v監(jiān)控系統(tǒng)圖;
圖2為本發(fā)明的實(shí)現(xiàn)流程圖。
具體實(shí)施方式
下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步的描述。
參照附圖1,現(xiàn)有“兩客一?!避囕v監(jiān)控系統(tǒng)是指,基于瀏覽器/服務(wù)器模式B/S的“兩客一?!避囕v監(jiān)控系統(tǒng),該系統(tǒng)包括車載終端,服務(wù)器端,客戶端三個(gè)部分,該車載終端安裝在“兩客一?!避囕v上,將“兩客一?!避囕v的實(shí)時(shí)數(shù)據(jù)以每分鐘兩次的頻率通過(guò)無(wú)線網(wǎng)絡(luò)發(fā)送給服務(wù)器端;服務(wù)器端接收數(shù)據(jù)并處理數(shù)據(jù),將數(shù)據(jù)顯示在客戶端的瀏覽器上,用戶通過(guò)瀏覽器監(jiān)控“兩客一?!避囕v;
所述“兩客一?!避囕v,是指從事旅游的包車、三類以上班線客車和運(yùn)輸危險(xiǎn)化學(xué)品、煙花爆竹、民用爆炸物品的道路專用車輛。
參照附圖2,對(duì)本發(fā)明的具體實(shí)現(xiàn)步驟作進(jìn)一步的描述。
步驟1,創(chuàng)建實(shí)時(shí)表。
我國(guó)交通部頒布的JT/T 808標(biāo)準(zhǔn)協(xié)議,規(guī)定了道路運(yùn)輸車輛衛(wèi)星定位系統(tǒng)車載終端與監(jiān)管/監(jiān)控平臺(tái)之間的通訊協(xié)議與數(shù)據(jù)格式,包括協(xié)議基礎(chǔ)、通信連接、消息處理、協(xié)議分類與說(shuō)明及數(shù)據(jù)格式。
依照交通部的JT/T 808標(biāo)準(zhǔn),確定存放當(dāng)天車輛的狀態(tài)信息的實(shí)時(shí)表,該表表的字段內(nèi)容包含:區(qū)分不同車載終端的SIM卡號(hào),車載終端的經(jīng)緯度,車載終端的速度,車載終端發(fā)送此數(shù)據(jù)的時(shí)間和報(bào)警情況,該報(bào)警情況包括車載終端是否有警報(bào)以及警報(bào)的具體類型;
上述字段內(nèi)容對(duì)應(yīng)的數(shù)據(jù)類型依次為12位定長(zhǎng)字符串CHAR(12),單精度浮點(diǎn)型FLOAT,單精度浮點(diǎn)型FLOAT,混合日期和時(shí)間值DATETIME,20位變長(zhǎng)字符串VARCHAR(20)。
步驟2,創(chuàng)建歷史表。
依照交通部的JT/T 808標(biāo)準(zhǔn),確定存放除當(dāng)天以外的車輛狀態(tài)信息的歷史表,該歷史表的表字段內(nèi)容和數(shù)據(jù)類型與實(shí)時(shí)表完全相同。
步驟3,創(chuàng)建日統(tǒng)計(jì)表。
依據(jù)用戶需要的統(tǒng)計(jì)指標(biāo),確定存放當(dāng)天車輛統(tǒng)計(jì)信息的日統(tǒng)計(jì)表,該表的字段內(nèi)容包括:SIM卡號(hào),總記錄數(shù),當(dāng)天車輛的最大速度,當(dāng)天車輛的最小速度,車輛的在線率,超速記錄次數(shù),當(dāng)天車輛的行駛總里程,當(dāng)天車輛的停車時(shí)長(zhǎng),當(dāng)天車輛的報(bào)警總次數(shù)和當(dāng)天的日期;
上述字段內(nèi)容對(duì)應(yīng)的數(shù)據(jù)類型依次為12位定長(zhǎng)字符串CHAR(12),整數(shù)型INT,單精度浮點(diǎn)型FLOAT,單精度浮點(diǎn)型FLOAT,整數(shù)型INT,日期DATE;
該總記錄數(shù),是指為服務(wù)器端接收到的數(shù)據(jù)的數(shù)目,該車輛在線率是指服務(wù)器實(shí)際接收到的數(shù)據(jù)的數(shù)目與服務(wù)器應(yīng)該接收到的數(shù)據(jù)的數(shù)目的比率,該超速記錄次數(shù)是指當(dāng)天車輛速度超過(guò)設(shè)定閾值的總次數(shù)。
步驟4,獲取實(shí)時(shí)數(shù)據(jù)。
車輛監(jiān)控系統(tǒng)中,每個(gè)車載終端每30秒自動(dòng)向服務(wù)器端發(fā)送一條數(shù)據(jù),該數(shù)據(jù)中包含區(qū)分不同車載終端的SIM卡號(hào),車載終端的經(jīng)緯度,車載終端的速度,車載終端發(fā)送此數(shù)據(jù)的時(shí)間和報(bào)警情況;
將包含以上車輛實(shí)時(shí)狀態(tài)信息的數(shù)據(jù)存入實(shí)時(shí)表中。
步驟5,決定是否更新歷史表。
判斷當(dāng)前時(shí)間是否為凌晨0點(diǎn),若是,則將實(shí)時(shí)表中的數(shù)據(jù)復(fù)制插入到歷史表中,對(duì)歷史表進(jìn)行更新,否則,返回步驟(4)。
步驟6,獲取日統(tǒng)計(jì)數(shù)據(jù)。
(6a)依據(jù)SIM卡號(hào)對(duì)實(shí)時(shí)表中的數(shù)據(jù)分組,將包含相同SIM卡號(hào)的數(shù)據(jù)分為一組;
(6b)根據(jù)每組數(shù)據(jù)獲得車輛當(dāng)天的一條統(tǒng)計(jì)數(shù)據(jù),該統(tǒng)計(jì)數(shù)據(jù)包括SIM卡號(hào),總記錄數(shù),當(dāng)天車輛的最大速度,當(dāng)天車輛的最小速度,車輛在線率,超速記錄次數(shù),當(dāng)天車輛的行駛總里程,當(dāng)天車輛的停車時(shí)長(zhǎng),報(bào)警總次數(shù)和時(shí)間:
這些數(shù)據(jù)的確定如下:
(6b1)將每組數(shù)據(jù)的數(shù)目作為當(dāng)天的總記錄數(shù)n;
(6b2)從n條數(shù)據(jù)的速度v1,v2,v3,...,vn中得出最大速度的計(jì)算結(jié)果max(v1,v2,v3,...,vn)和最小速度的計(jì)算結(jié)果min(v1,v2,v3,...,vn);
(6b3)根據(jù)當(dāng)天的總記錄數(shù)車輛n,得出在線率的值是n/2880,,其中:2880為車載終端以每分鐘兩次的頻率發(fā)送數(shù)據(jù),一天共發(fā)送2×60×24=2880條數(shù)據(jù)的數(shù)目;
(6b4)將速度超過(guò)設(shè)定閾值的次數(shù)之和記為超速記錄次數(shù);
(6b5)將所有數(shù)據(jù)的速度之和與30秒的時(shí)間相互乘,得到行駛總里程:(v1+v2+v3+...+vn)×30;
(6b6)將速度為0的次數(shù)與30秒的時(shí)間相乘,得到停車時(shí)長(zhǎng);
(6b7)將出現(xiàn)報(bào)警情況的次數(shù)之和記為報(bào)警總次數(shù);
(6c)將所有車輛當(dāng)天的統(tǒng)計(jì)數(shù)據(jù)插入日統(tǒng)計(jì)表中。
(6d)清空實(shí)時(shí)表,并返回步驟(4);
步驟7,生成統(tǒng)計(jì)報(bào)表。
(7a)若用戶需要生成統(tǒng)計(jì)報(bào)表,則進(jìn)入生成統(tǒng)計(jì)報(bào)表的子線程,以日期為篩選條件,查詢?nèi)战y(tǒng)計(jì)表中符合要求的數(shù)據(jù),否則,退出該子線程;
(7b)依據(jù)SIM卡號(hào)對(duì)查詢到的數(shù)據(jù)分組,將包含相同SIM卡號(hào)的數(shù)據(jù)分為一組,其中每組數(shù)據(jù)中包含了車輛在某段時(shí)間內(nèi)每天的日統(tǒng)計(jì)信息;
(7c)對(duì)每組數(shù)據(jù)確定得到車輛某段時(shí)間內(nèi)的一條統(tǒng)計(jì)數(shù)據(jù),其包括SIM卡號(hào),該段時(shí)間車輛的最大速度,該段時(shí)間車輛的最小速度,車輛在線率,超速記錄次數(shù),該段時(shí)間車輛的行駛總里程,當(dāng)天車輛的停車時(shí)長(zhǎng),即:
依據(jù)所有的日統(tǒng)計(jì)信息,取每日最大速度的最大值作為該段時(shí)間的車輛的最大速度;
取每日最小速度的最小值作為該段時(shí)間的車輛的最小速度;
取每日車輛在線率的平均值作為該段時(shí)間的車輛的在線率;
取每日超速記錄次數(shù)的和作為該段時(shí)間的車輛的超速記錄數(shù);
取每日行駛總里程的和作為該段時(shí)間的車輛的行駛總里程;
取每日停車時(shí)長(zhǎng)的和作為該段時(shí)間內(nèi)車輛的停車時(shí)長(zhǎng);
(7d)將所有車輛該段時(shí)間的統(tǒng)計(jì)數(shù)據(jù)以表格的形式顯示在網(wǎng)頁(yè)上,該表格為最終的統(tǒng)計(jì)報(bào)表。
以上描述僅是本發(fā)明的一個(gè)具體實(shí)例,不構(gòu)成對(duì)本發(fā)明的任何限制,顯然對(duì)于本領(lǐng)域的專業(yè)人員來(lái)說(shuō),在了解了本發(fā)明內(nèi)容和原理后,都可能在不背離本發(fā)明原理,結(jié)構(gòu)的情況下,進(jìn)行形式和細(xì)節(jié)上的各種修改和改變,但是這些基于本發(fā)明思想的修正和改變?nèi)栽诒景l(fā)明的權(quán)利要求保護(hù)范圍之內(nèi)。