本發(fā)明涉及大數(shù)據(jù)管理技術領域,特別是涉及一種分散式大數(shù)據(jù)管理與檢索的方法,尤其是大量北斗船位時空數(shù)據(jù)的分散式存儲管理,以及快速查詢、統(tǒng)計。
背景技術:
海量業(yè)務數(shù)據(jù)應用系統(tǒng)在運行過程中,需要查詢大量的相關數(shù)據(jù),因此業(yè)務數(shù)據(jù)的存放與查詢成為應用系統(tǒng)的重要組成部分。由于數(shù)據(jù)量比較龐大,為了維護和管理便利,應用系統(tǒng)的業(yè)務數(shù)據(jù)通常被存放在數(shù)據(jù)庫中,應用系統(tǒng)在運行時通過使用SQL語句訪問數(shù)據(jù)庫的方式查詢。這種方式雖然實現(xiàn)簡便,但是由于數(shù)據(jù)庫本身的性能以及網(wǎng)絡數(shù)據(jù)傳輸?shù)南牡纫蛩兀瑫绊憫锰幚聿樵償?shù)據(jù)的速度,從而降低應用系統(tǒng)的性能表現(xiàn),因此通過直接訪問數(shù)據(jù)庫的方式比較適合于數(shù)據(jù)量不是很大、對應用系統(tǒng)的處理速度要求不高的系統(tǒng)。并且DB2、0racle、SQL Server等數(shù)據(jù)庫系統(tǒng)會繞開文件系統(tǒng),自己管理磁盤塊,提高了數(shù)據(jù)庫的性能,但數(shù)據(jù)庫的管理也變得比較復雜了,這些商業(yè)數(shù)據(jù)庫成本都較高。
技術實現(xiàn)要素:
本發(fā)明所要解決的技術問題是提供一種分散式大數(shù)據(jù)管理與檢索的方法,能夠準確、直觀的漁船的時空分布統(tǒng)計查詢。
本發(fā)明解決其技術問題所采用的技術方案是:提供一種分散式大數(shù)據(jù)管理與檢索的方法,應用程序服務器處理北斗空間數(shù)據(jù),處理后的數(shù)據(jù)由管理服務器根據(jù)配置分散存儲到文件服務器,并記錄存放的位置,Web服務器為外部網(wǎng)絡訪問提供服務,把外部訪問請求發(fā)給應用程序服務器,應用程序服務器通過管理服務器獲取分散的文件數(shù)據(jù),對這些數(shù)據(jù)根據(jù)訪問請求處理后返回給Web服務器;所述數(shù)據(jù)分為兩部分,一部分是基礎數(shù)據(jù),另一部分是業(yè)務數(shù)據(jù);系統(tǒng)運行后,系統(tǒng)將數(shù)據(jù)讀入內存中,利用內存的緩沖區(qū)直接操作數(shù)據(jù)文件。
所述基礎數(shù)據(jù)包括海域數(shù)據(jù)、區(qū)劃數(shù)據(jù)和漁船數(shù)據(jù);所述業(yè)務數(shù)據(jù)包括漁船小時分布、漁船天分布和漁船軌跡數(shù)據(jù)。
所述區(qū)劃數(shù)據(jù)與漁船數(shù)據(jù)通過區(qū)劃編號關聯(lián);所述漁船軌跡數(shù)據(jù)通過漁船編號與漁船數(shù)據(jù)相關聯(lián);所述漁船小時分布表通過小漁區(qū)編號與海域數(shù)據(jù)關聯(lián);所述漁船天分布表通過小漁區(qū)編號與海域數(shù)據(jù)關聯(lián)。
所述海域數(shù)據(jù)的內存結構所表達的海域層次關系為海區(qū)、漁場、漁區(qū)、小漁區(qū)由上向下成包含的層次關系。
所述區(qū)劃數(shù)據(jù)的內存結構所表達的區(qū)域層次關系為省級行政區(qū)劃、地區(qū)級行政區(qū)劃、縣級行政區(qū)劃由上向下成包含的層次關系。
所述漁船數(shù)據(jù)的內存結構為省級行政區(qū)劃編號、地區(qū)級行政區(qū)劃編號同區(qū)劃數(shù)據(jù)的內存結構,每個縣級行政區(qū)劃中存儲起止的漁船編號,每個漁船編號中存儲漁船基本信息。
通過區(qū)劃數(shù)據(jù)的內存結構和海域數(shù)據(jù)的內存結構,查詢分散的北斗船位空間分布數(shù)據(jù)文件,統(tǒng)計某段時間,某區(qū)劃漁船去各海域作業(yè)的數(shù)量或統(tǒng)計某段時間,某海域漁船來源于各區(qū)劃的數(shù)量。
有益效果
由于采用了上述的技術方案,本發(fā)明與現(xiàn)有技術相比,具有以下的優(yōu)點和積極效果:本發(fā)明把現(xiàn)有技術中存儲在數(shù)據(jù)庫中的數(shù)據(jù)存儲在由文件系統(tǒng)管理的分散的數(shù)據(jù)文件中,其提高了數(shù)據(jù)讀取效率,增加了數(shù)據(jù)管理靈活性,減少了商業(yè)數(shù)據(jù)庫軟件的成本。本發(fā)明采用一種分散式數(shù)據(jù)管理,用內存表層次模型來解決數(shù)據(jù)快速統(tǒng)計查詢的問題。內存的速度是除了CPU CACHE外最快的存儲設備,內存速度可達6G/S以上,與硬盤速度相差30倍以上。分散式存儲還支持自定義的socket協(xié)議,構建分布式系統(tǒng),遇到高并發(fā),高流量的任務時可以進行拓展提高數(shù)據(jù)共享效率。
附圖說明
圖1為數(shù)據(jù)關系圖;
圖2為數(shù)據(jù)結構圖;
圖3為數(shù)據(jù)存儲管理圖;
圖4為海域數(shù)據(jù)內存結構圖;
圖5為海域層次關系圖;
圖6為區(qū)劃數(shù)據(jù)內存結構圖;
圖7為區(qū)劃數(shù)據(jù)層次關系圖;
圖8為漁船信息數(shù)據(jù)內存結構圖;
圖9為海域統(tǒng)計圖;
圖10為區(qū)劃統(tǒng)計圖;
圖11為漁場漁船追溯展示圖;
圖12為全國區(qū)劃漁船海上分布圖。
具體實施方式
下面結合具體實施例,進一步闡述本發(fā)明。應理解,這些實施例僅用于說明本發(fā)明而不用于限制本發(fā)明的范圍。此外應理解,在閱讀了本發(fā)明講授的內容之后,本領域技術人員可以對本發(fā)明作各種改動或修改,這些等價形式同樣落于本申請所附權利要求書所限定的范圍。
本發(fā)明的實施方式涉及一種分散式大數(shù)據(jù)管理與檢索的方法,下面以北斗數(shù)據(jù)存儲與檢索為例進一步說明本發(fā)明。
1.數(shù)據(jù)內容
1.1海域劃分
我國沿海從北到南分渤海、黃海、東海和南海海區(qū)。渤海、黃海分界線是遼東半島南端老鐵山角與山東半島北岸蓬萊角的連線;黃海、東海分界線是長江口北岸的啟東角與韓國濟州島西南角的連線;東海、南海分界線是廣東南澳島與臺灣島南端的鵝鑾鼻連線。山東半島以北稱渤海,山東半島與長江口之間稱黃海,長江口與臺灣島之間的海域是東海,臺灣島以南、以西的部分則是南海。習慣上根據(jù)水域位置、捕撈對象和作業(yè)方式等劃分漁場,近海劃分了53個傳統(tǒng)漁場。我國制定有渤、黃、東海漁區(qū)編碼和南海漁區(qū)編碼。近海區(qū)編碼以30′×30′經(jīng)緯度范圍大小為一個漁區(qū)單元,每漁區(qū)又按每10′×10′經(jīng)緯度細分為9個小漁區(qū),每個漁區(qū)單元按照從西至東、從北向南的順序進行編號。漁區(qū)編碼從最北部的遼東灣開始,初始編碼為1,沿經(jīng)度方向向東最遠擴展到129.5°E,從北往南依次編碼,最南端為4°N附近的曾母暗沙海域。海域信息保存在文本文件中(表1),每個海域的信息占一條記錄,海域的屬性用逗號隔開,各海域記錄間用回車符分開。海域存儲按照海區(qū)、漁場、漁區(qū)、小漁區(qū)排序,然后對排序的海域由1開始逐漸增加作為海域的編號。
表1
1.2行政區(qū)劃
《中國海洋統(tǒng)計年鑒》中沿海地區(qū)定義是指有海岸線(大陸岸線和島嶼岸線)的地區(qū),目前我國有8個沿海省、1個自治區(qū)、2個直轄市;53個沿海城市、242個沿海區(qū)縣。行政區(qū)劃保存在文本文件中(表2),每個區(qū)劃信息占一條記錄,區(qū)劃的屬性用逗號隔開,各區(qū)劃記錄間用回車符分開。區(qū)劃存儲按照省、地區(qū)、縣排序,然后對排序的區(qū)劃由1開始逐漸增加作為區(qū)劃的編號。
表2
1.3漁船信息
漁船信息包括漁船名稱、捕撈類型、船長、功率捕撈類型等,根據(jù)《漁業(yè)捕撈許可管理規(guī)定》作業(yè)類型有刺網(wǎng)、圍網(wǎng)、拖網(wǎng)、張網(wǎng)、釣具、耙刺、陷阱、籠壺和雜漁具(含地拉網(wǎng)、敷網(wǎng)、抄網(wǎng)、掩罩及其他雜漁具)共9種。漁船命名按照“省簡稱+縣簡稱+船號”形式命名,漁船信息保存在文本文件中(表3),每艘船的信息占一條記錄,船的屬性用逗號隔開,各漁船記錄間用回車符分開。漁船存儲按照省、地區(qū)、縣排序,船號由小到大,然后對排序的漁船由1開始逐漸增加作為漁船的編號。
表3
1.4漁船分布數(shù)據(jù)
漁船分布數(shù)據(jù)分為漁船小時分布數(shù)據(jù)和漁船天分布數(shù)據(jù)。漁船小時分布數(shù)據(jù)指的是漁船每小時各小漁區(qū)格網(wǎng)中的漁船(表4),漁船天分布數(shù)據(jù)指的是漁船每天各小漁區(qū)格網(wǎng)中的漁船(表5),數(shù)據(jù)記錄包括系統(tǒng)生成的唯一編號小漁區(qū)編號和漁船編號,漁船分布信息保存在在文本文件中,以每天或每小時為一條記錄,以小漁區(qū)編號為主鍵,漁船編號用逗號隔開,每個漁區(qū)的記錄用回車符分開。
表4
表5
1.5漁船軌跡數(shù)據(jù)
漁船軌跡數(shù)據(jù)包括時間、經(jīng)度、緯度、航速、航向、漁船編號等。每一條漁船軌跡記錄為單艘漁船的軌跡(表6),以船位數(shù)據(jù)發(fā)出的時間為主鍵,船的軌跡信息用逗號隔開,包括經(jīng)度、緯度、航速(單位m/s)航向、漁船編號,每個時間點的船位記錄用回車符分開。
表6
1.6數(shù)據(jù)間的關系
數(shù)據(jù)主要包含6張表,互相聯(lián)系(圖1)。行政區(qū)劃表與漁船信息表通過區(qū)劃編號關聯(lián)。漁船軌跡通過漁船編號與漁船信息相關聯(lián),可獲取漁船的軌信息。漁船小時分布表通過小漁區(qū)編號與海域格網(wǎng)表關聯(lián),通過漁船編號與漁船信息表關聯(lián),構成漁船小時分布的完整信息。漁船天分布表通過小漁區(qū)編號與海域格網(wǎng)表關聯(lián),通過漁船編號與漁船信息表關聯(lián),構成漁船天分布的完整信息。
2.數(shù)據(jù)存儲管理
2.1漁船數(shù)據(jù)存儲
完善的統(tǒng)計分析功能需要大量的數(shù)據(jù)結構支持,按照3min的時間分辨率來接收船位數(shù)據(jù),5萬艘船每天接收到的位置數(shù)據(jù)可達2000萬余條?!敖Y構化管理”包括結構化文件夾和數(shù)據(jù)文件。數(shù)據(jù)分為兩部分(圖2),一部分是數(shù)據(jù)比較固定,變化小的基礎數(shù)據(jù),如海域、區(qū)劃、漁船數(shù)據(jù);一部分是數(shù)據(jù)量不斷增加的業(yè)務數(shù)據(jù),如漁船小時分布、天分布、軌跡數(shù)據(jù)。
2.2數(shù)據(jù)管理
整個網(wǎng)絡區(qū)分為三個部分(圖3)WAN(局域網(wǎng),分布于一個相對較小的區(qū)域內的用以連接各種類型服務器的計算機網(wǎng)絡)、LAN(廣域網(wǎng),能在很寬的地理區(qū)域內為用戶服務的數(shù)據(jù)通信網(wǎng)絡)、DMZ(隔離區(qū),為解決安裝防火墻后外部網(wǎng)絡的訪問用戶不能訪問內部網(wǎng)絡服務器的問題),在這個數(shù)據(jù)存儲方案中,使用防火墻為關鍵服務器提供隔離區(qū),防火墻抵擋外部網(wǎng)絡的攻擊,并管理所有內部網(wǎng)絡的訪問。為了解決安裝防火墻后外部網(wǎng)絡不能訪問內部網(wǎng)絡服務器的問題,設立了一個非安全系統(tǒng)與安全系統(tǒng)之間的隔離區(qū)DMZ。通過DMZ區(qū)域有效地保護了內部網(wǎng)絡。DMZ防火墻方案為要保護的內部網(wǎng)絡增加了一道安全防線,并且提供了一個區(qū)域放置公共服務器,能有效地避免一些互聯(lián)應用需要公開與內部安全策略相矛盾的情況發(fā)生。應用程序服務器處理北斗空間數(shù)據(jù),處理后的數(shù)據(jù)由管理服務器根據(jù)配置分散存儲到文件服務器,并記錄存放的位置,Web服務器為外部網(wǎng)絡訪問提供服務,把外部訪問請求發(fā)給應用程序服務器,它通過管理服務器獲取分散的文件數(shù)據(jù),對這些數(shù)據(jù)根據(jù)訪問請求處理后返回給Web服務器。
3.數(shù)據(jù)內存管理
系統(tǒng)運行后,系統(tǒng)將數(shù)據(jù)讀入內存中,利用內存的緩沖區(qū)直接操作的數(shù)據(jù)文件,以便快速地查詢和訪問數(shù)據(jù)內容,減少對磁盤IO的訪問,提升查詢性能。
3.1漁區(qū)內存表
海域數(shù)據(jù)內存結構如圖4所示,海區(qū)編號、漁場編號、漁區(qū)編號中都存儲著下一層次的起始與終止的編號,如海區(qū)編號是1~4的4個海區(qū),每個海區(qū)存儲該海區(qū)的漁場起止編號,每個漁場保存該漁場的漁區(qū)起止編號,每個漁區(qū)保存該區(qū)域的小漁區(qū)起止編號,小漁區(qū)中存儲著小漁區(qū)基本單元信息。
海域數(shù)據(jù)內存結構所表達的海域層次關系如圖5所示,海區(qū)、漁場、漁區(qū)、小漁區(qū)由上向下成包含的層次關系。
3.2區(qū)劃內存表
區(qū)劃數(shù)據(jù)內存結構如圖6所示,省級行政區(qū)劃編號、地區(qū)級行政區(qū)劃編號、縣級行政區(qū)劃編號中都存儲著下一層次的起始與終止的編號,每個省級行政區(qū)劃中存儲地區(qū)級行級政區(qū)劃的起止編號,每個地區(qū)級行級政區(qū)劃中存縣級行政區(qū)劃起止編號,每個縣級行政區(qū)劃中存儲縣級行政區(qū)劃基本單元信息。
區(qū)劃數(shù)據(jù)內存結構所表達的區(qū)域層次關系圖如圖7所示,省級行政區(qū)劃、地區(qū)級行政區(qū)劃、縣級行政區(qū)劃由上向下成包含的層次關系。
3.3漁船內存表
漁船信息數(shù)據(jù)內存結構如圖8所示,省級行政區(qū)劃編號、地區(qū)級行政區(qū)劃編號同區(qū)劃數(shù)據(jù)內存結構,每個縣級行政區(qū)劃中存儲起止的漁船編號,每個漁船編號中存儲漁船基本信息。
4.數(shù)據(jù)檢索
北斗數(shù)據(jù)挖掘獲取的捕撈努力量、網(wǎng)次、累計捕撈時間等信息,可以根據(jù)行政區(qū)劃統(tǒng)計各級區(qū)劃漁船一段時間的捕撈情況,海上空間分布情況,根據(jù)海域格網(wǎng)追溯漁船來源各級區(qū)劃的數(shù)量等。
4.1區(qū)劃漁船去向檢索
用戶選擇一個區(qū)劃,統(tǒng)計這個區(qū)劃漁船去各海域作業(yè)的數(shù)量,一般數(shù)據(jù)庫中查詢語句是“select海域,count(*)where時間in時間段and漁船in區(qū)劃group by海域”,本專利分散的北斗船位據(jù)統(tǒng)計漁船去向,流程如圖9。
(1)系統(tǒng)運行時把海域、區(qū)劃、漁船信息先讀取到內存,構建海域數(shù)據(jù)內存結構、區(qū)劃數(shù)據(jù)內存結構、漁船信息數(shù)據(jù)內存結構;
(2)選定某個區(qū)劃時,根據(jù)區(qū)劃數(shù)據(jù)內存結構判斷該海域包含的選定漁船;
(3)根據(jù)時間讀入分散的北斗船位空間分布數(shù)據(jù)文件,篩選包含在選定的漁船,實現(xiàn)查詢語句的“where時間in時間段and漁船in區(qū)劃”;
(4)根據(jù)選定海域級別(海區(qū)、漁場、漁區(qū)、小漁區(qū)),利用海域數(shù)據(jù)內存結構確定該海域的包含小漁區(qū);
(5)把“小漁區(qū)+漁船編號”作為關鍵字,添加漁船編號是為了實現(xiàn)漁船在某個漁區(qū)不重復統(tǒng)計,通過“小漁區(qū)+漁船編號”篩選出各小漁區(qū)中的漁船,在以選中的“海域”級別為關鍵字統(tǒng)計各海域漁船的數(shù)量,實現(xiàn)查詢語句中的group by海域。
4.2追溯漁船海域數(shù)據(jù)來源檢索
用戶選擇一個海域,追溯這個海域漁船來源于各區(qū)劃的數(shù)量,一般數(shù)據(jù)庫中查詢語句是“select區(qū)劃,count(*)where時間in時間段and漁船in海域group by區(qū)劃”,本專利漁船追溯漁船數(shù)據(jù)的流程如圖10。
(1)系統(tǒng)運行時把海域、區(qū)劃、漁船信息先讀取到內存,構建海域數(shù)據(jù)內存結構、區(qū)劃數(shù)據(jù)內存結構、漁船信息數(shù)據(jù)內存結構;
(2)選定某個海域時,根據(jù)海域數(shù)據(jù)內存結構判斷該海域包含的選定小漁區(qū);
(3)根據(jù)時間讀入分散的北斗船位空間分布數(shù)據(jù)文件,篩選包含在選定小漁區(qū)的漁船實現(xiàn)查詢語句的“where時間in時間段and漁船in海域”;
(4)根據(jù)選定區(qū)劃級別(省級行政區(qū)劃、地區(qū)級行政區(qū)劃、縣級行政區(qū)劃),利用漁船信息數(shù)據(jù)內存結構確定該區(qū)劃的包含漁船;
(5)把“區(qū)劃+漁船編號”作為關鍵字,添加漁船編號是為了實現(xiàn)漁船在某個區(qū)劃不重復統(tǒng)計,通過“區(qū)劃+漁船編號”篩選出選定區(qū)劃中各區(qū)中漁船,在以選中的“區(qū)劃”為關鍵字統(tǒng)計各區(qū)劃漁船的數(shù)量,實現(xiàn)查詢語句中的group by區(qū)劃。
5.數(shù)據(jù)展示
5.1某個漁場漁船來源
以漁場漁船來源的地區(qū)及行政區(qū)劃為例說明海域漁船追溯的展示方法,如圖11,選擇需要查詢的日期與時間,點擊任意漁場,1秒內完成數(shù)據(jù)查詢統(tǒng)計與地圖刷新顯示,展示出由漁場指向各地區(qū)級區(qū)劃的箭頭,并標注該漁場來源各地區(qū)的船只數(shù)量。
5.2某區(qū)劃漁船去向
以各級區(qū)劃漁船在漁場中的分布數(shù)量為例說明區(qū)劃漁船的去向,如圖12,選擇需要查詢的日期與時間,點擊任意級別區(qū)劃,1秒內完成數(shù)據(jù)查詢統(tǒng)計與地圖刷新顯示,可以統(tǒng)計出選中區(qū)劃所屬漁船在各個漁場中分布的數(shù)量,并用對應顏色表示。
5.3漁船軌跡查詢展示
某海域漁船來源可以調出來源的各區(qū)劃中漁船列表,某區(qū)劃漁船去向可以調出去向的各海域中漁船列表,選擇某個漁船,確定具體時間,就可以在分散式北斗數(shù)據(jù)文件中獲取該漁船的軌跡并展示。