石曉櫳,趙統(tǒng)永,王耀忠,彭 君
(1.國(guó)家管網(wǎng)集團(tuán)川氣東送天然氣管道有限公司,武漢 430079;2.吉林大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,長(zhǎng)春 130012)
隨著人工智能和大數(shù)據(jù)技術(shù)的不斷提高和成熟,在地質(zhì)災(zāi)害監(jiān)控、分析評(píng)估和預(yù)報(bào)預(yù)警等領(lǐng)域也獲得了較為廣泛的應(yīng)用。然而數(shù)據(jù)作為人工智能和大數(shù)據(jù)技術(shù)應(yīng)用的基礎(chǔ),數(shù)據(jù)的使用在數(shù)量上、質(zhì)量上和頻率上都被提出了很高的要求,傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)已無(wú)法適應(yīng)數(shù)據(jù)急劇增長(zhǎng)和應(yīng)用模式變化帶來(lái)的挑戰(zhàn)[1-2]。
基于大數(shù)據(jù)應(yīng)用的分布式非關(guān)系型數(shù)據(jù)庫(kù)在此環(huán)境下應(yīng)運(yùn)而生。Hadoop生態(tài)圈的不斷完善及HBase的發(fā)展和推廣[3-5],為人工智能和大數(shù)據(jù)技術(shù)應(yīng)用的拓展和深入提供了便利條件。蔣葉林、鄒喆等在使用HBase進(jìn)行時(shí)空大數(shù)據(jù)的處理方面進(jìn)行了探索[6-7],王普剛、溫靜則將HBase應(yīng)用到了實(shí)際的工程項(xiàng)目中[8-9],這些研究和探索證明了HBase良好的性能。
在對(duì)地質(zhì)災(zāi)害相關(guān)的AI應(yīng)用和數(shù)據(jù)服務(wù)方面,涂美義等基于SOA 構(gòu)建了省級(jí)地質(zhì)災(zāi)害應(yīng)急服務(wù)數(shù)據(jù)服務(wù)體系[13],張茂省等提出了基于人工智能的地質(zhì)災(zāi)害防控體系[14],王曉剛等采用HDFS和HBase完成了洪災(zāi)數(shù)據(jù)的存儲(chǔ)和管理[15],王鍵鍵等嘗試了將大數(shù)據(jù)技術(shù)應(yīng)用于城市洪澇災(zāi)害分析預(yù)警[16]。這些研究都涉及了人工智能和大數(shù)據(jù)技術(shù)對(duì)地質(zhì)災(zāi)害相關(guān)數(shù)據(jù)的使用,但是沒(méi)有形成一個(gè)較為完整、統(tǒng)一的數(shù)據(jù)支撐體系。
地質(zhì)災(zāi)害監(jiān)測(cè)數(shù)據(jù)包括:地質(zhì)災(zāi)害點(diǎn)數(shù)據(jù)、巡查巡測(cè)數(shù)據(jù)、動(dòng)態(tài)監(jiān)測(cè)數(shù)據(jù)、預(yù)警預(yù)報(bào)數(shù)據(jù)、報(bào)告類數(shù)據(jù)、地質(zhì)/地理數(shù)據(jù)、氣象數(shù)據(jù)、管道本體數(shù)據(jù)、多媒體數(shù)據(jù)等類別。不同類別的數(shù)據(jù),具有的格式、屬性、大小、數(shù)據(jù)量、更新頻率、使用頻率、增長(zhǎng)速度各不相同。
地質(zhì)災(zāi)害點(diǎn)數(shù)據(jù):該數(shù)據(jù)是每年野外作業(yè)調(diào)查后形成的word文件,原始文件為.doc、.docx格式,內(nèi)容以表格形式列出,包括每個(gè)災(zāi)害點(diǎn)包含編號(hào)、行政區(qū)、坐標(biāo)位置、基本特征、照片、平剖面圖、調(diào)查時(shí)間等內(nèi)容,以文字、照片、圖片等形式展現(xiàn)。
巡查巡測(cè)點(diǎn)數(shù)據(jù):該數(shù)據(jù)也是野外作業(yè)調(diào)查后形成的word文件,原始文件為.doc、.docx格式,內(nèi)容以表格形式列出,每個(gè)巡查巡測(cè)點(diǎn)包含編號(hào)、行政區(qū)、坐標(biāo)位置、基本特征、照片、平剖面圖、巡查巡測(cè)時(shí)間等內(nèi)容。以文字、照片、圖片等形式展現(xiàn)。
動(dòng)態(tài)監(jiān)測(cè)數(shù)據(jù):該類數(shù)據(jù)由監(jiān)測(cè)設(shè)備產(chǎn)生,數(shù)據(jù)格式以表格或數(shù)據(jù)庫(kù)的形式存在,包括Excel表格,Access、SQL Server數(shù)據(jù)庫(kù)等。是各類型監(jiān)測(cè)儀器采集的監(jiān)測(cè)結(jié)果數(shù)據(jù),包括雨量、應(yīng)力、地表位移、土壤含水率、深部位移、視頻等多種傳感器類型的數(shù)據(jù)。
預(yù)警預(yù)報(bào)數(shù)據(jù):該類數(shù)據(jù)是每年汛期發(fā)布的預(yù)警數(shù)據(jù),包括預(yù)警地點(diǎn)、等級(jí)、預(yù)報(bào)詞等信息。數(shù)據(jù)格式為文本格式、圖片格式、shp格式,主要以文本及圖片形式存儲(chǔ)。
報(bào)告類數(shù)據(jù):該類數(shù)據(jù)包括地質(zhì)災(zāi)害勘查設(shè)計(jì)報(bào)告、排查報(bào)告、風(fēng)險(xiǎn)評(píng)價(jià)報(bào)告以及地質(zhì)防治相關(guān)報(bào)告、國(guó)家企業(yè)行業(yè)技術(shù)標(biāo)準(zhǔn)、監(jiān)測(cè)報(bào)告等類別。數(shù)據(jù)格式為PDF文件。
地質(zhì)/地理數(shù)據(jù):該類數(shù)據(jù)包括地質(zhì)環(huán)境基礎(chǔ)數(shù)據(jù)(地層巖性、地質(zhì)構(gòu)造、區(qū)域地質(zhì)、工程地質(zhì)、水文地質(zhì)、環(huán)境地質(zhì)、礦產(chǎn)資源等)、基礎(chǔ)地理數(shù)據(jù)(行政中心、行政邊界、行政區(qū)、河流、湖泊、鐵路、公路等)。數(shù)據(jù)類別分為ArcGIS格式、MapGIS格式、遙感影像格式及DEM 格式。
氣象水文數(shù)據(jù):該類數(shù)據(jù)包括了降雨數(shù)據(jù)、水文站數(shù)據(jù)、臺(tái)風(fēng)、霧況數(shù)據(jù)等。降雨數(shù)據(jù)、水文站數(shù)據(jù)格式為shp格式,臺(tái)風(fēng)、霧況數(shù)據(jù)格式為文本格式。降雨數(shù)據(jù)包括24小時(shí)、48小時(shí)、72小時(shí)實(shí)況降雨及預(yù)報(bào)降雨。
多媒體數(shù)據(jù):該類數(shù)據(jù)包括MP4 格式的視頻數(shù)據(jù)及JPG 格式的圖片數(shù)據(jù)。
針對(duì)地質(zhì)災(zāi)害監(jiān)測(cè)和預(yù)警所需要使用的數(shù)據(jù)特點(diǎn),構(gòu)建了傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)與非關(guān)系型數(shù)據(jù)庫(kù)相結(jié)合的分布式數(shù)據(jù)存儲(chǔ)架構(gòu)。為適應(yīng)數(shù)據(jù)量不斷增加、寫(xiě)入和讀取并發(fā)量增大的情況,非關(guān)系型數(shù)據(jù)庫(kù)均采用分布式模式進(jìn)行構(gòu)建,將數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)服務(wù)分散到多臺(tái)數(shù)據(jù)庫(kù)服務(wù)器上,以提高性能和均衡負(fù)載。對(duì)于預(yù)警平臺(tái)所需使用的統(tǒng)計(jì)數(shù)據(jù)、篩查數(shù)據(jù)等,每次獲取數(shù)據(jù)量少,但是需要頻繁獲取,查詢方式靈活、復(fù)雜,比如基礎(chǔ)相關(guān)信息表、部門(mén)相關(guān)信息表及系統(tǒng)相關(guān)信息表,此類數(shù)據(jù)采用傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)進(jìn)行存儲(chǔ)。對(duì)于AI模型及大數(shù)據(jù)分析所需要使用的源數(shù)據(jù),一次數(shù)據(jù)的獲取量龐大,獲取的數(shù)據(jù)通常是大塊、整體、連續(xù)的,查詢索引方式簡(jiǎn)單,比如遙感圖像、航拍圖片、歷史記錄等,此類數(shù)據(jù)采用非關(guān)系型數(shù)據(jù)庫(kù)進(jìn)行存儲(chǔ)。
如圖1所示,分布式數(shù)據(jù)庫(kù)的硬件設(shè)備可以分為兩個(gè)一部:一部分用三臺(tái)普通服務(wù)器構(gòu)成主從結(jié)構(gòu),一臺(tái)作為主服務(wù)器另外兩臺(tái)作為從服務(wù)器,用于部署非關(guān)系型數(shù)據(jù)庫(kù)HBase,滿足大數(shù)據(jù)及人工智能等應(yīng)用的需求;另一部分用一臺(tái)高性能服務(wù)器部署關(guān)系型數(shù)據(jù)庫(kù)PostgreSQL,滿足網(wǎng)頁(yè)顯示及實(shí)時(shí)查詢等傳統(tǒng)應(yīng)用的需求。
圖1 數(shù)據(jù)存儲(chǔ)硬件設(shè)備組織結(jié)構(gòu)
非關(guān)系型數(shù)據(jù)庫(kù)HBase和關(guān)系型數(shù)據(jù)庫(kù)PostgreSQL均部署在內(nèi)部局域網(wǎng)中,僅供內(nèi)網(wǎng)中的系統(tǒng)服務(wù)器進(jìn)行訪問(wèn),不對(duì)外提供訪問(wèn)接口。需要訪問(wèn)分布式數(shù)據(jù)庫(kù)的應(yīng)用都部署到系統(tǒng)服務(wù)器上,系統(tǒng)服務(wù)器上具有雙網(wǎng)卡配置并配有防火墻,即可訪問(wèn)內(nèi)網(wǎng)中的分布式數(shù)據(jù)庫(kù),又可為廣域網(wǎng)中的用戶提供對(duì)應(yīng)的服務(wù)。
基于分布式存儲(chǔ)的軟件模塊組織結(jié)構(gòu)如圖2所示。關(guān)系型數(shù)據(jù)庫(kù)PostgreSQL 被部署在一臺(tái)安裝了CentOS 7.0操作系統(tǒng)的虛擬主機(jī)上。非關(guān)系型數(shù)據(jù)庫(kù)則是被部署到三臺(tái)安裝了CentOS 7.0操作系統(tǒng)的虛擬主機(jī)上。
圖2 基于分布式存儲(chǔ)的軟件模塊組織結(jié)構(gòu)
PostgreSQL服務(wù)器上安裝PostgreSQL 數(shù)據(jù)庫(kù)服務(wù)端程序,在系統(tǒng)應(yīng)用服務(wù)器上則安裝PostgreSQL 數(shù)據(jù)庫(kù)驅(qū)動(dòng)和PostgreSQL數(shù)據(jù)庫(kù)客戶端軟件。
非關(guān)系型數(shù)據(jù)庫(kù)是基于Hadoop生態(tài)系統(tǒng)進(jìn)行構(gòu)建的,包括了分布式文件系統(tǒng)(HDFS)、分布式列存數(shù)據(jù)庫(kù)(HBase)、分布式數(shù)據(jù)倉(cāng)庫(kù)(Hive)、數(shù)據(jù)抽取轉(zhuǎn)換器(Sqoop)等。底層數(shù)據(jù)存儲(chǔ)使用Hadoop生態(tài)中的分布式文件系統(tǒng)HDFS,HDFS 具有海量存儲(chǔ)、高效訪問(wèn)和冗余備份能力。數(shù)據(jù)庫(kù)系統(tǒng)采用HBase,HBase采用列式存儲(chǔ)易于擴(kuò)展,可以實(shí)時(shí)讀寫(xiě)、隨機(jī)訪問(wèn)超大規(guī)模數(shù)據(jù)集。Hive提供類似SQL的查詢功能。
HDFS分別被部署到三臺(tái)安裝了CentOS 7.0的虛擬主機(jī)上,在其中一臺(tái)虛擬主機(jī)上將HDFS配置為HDFS的名字節(jié)點(diǎn),使其在該虛擬主機(jī)上啟動(dòng)ResourceManager、NameNode和SecondaryNameNode三個(gè)進(jìn)程。在另外兩臺(tái)虛擬主機(jī)上將HDFS配置為HDFS的數(shù)據(jù)節(jié)點(diǎn),使其分別在這兩臺(tái)虛擬主機(jī)上啟動(dòng)NodeManager和DataNode進(jìn)程。系統(tǒng)服務(wù)器作為HDFS分布式文件系統(tǒng)的使用終端,也需要在其上部署一套HDFS的客戶端程序。
HBase 是部署在HDFS 基礎(chǔ)上的,在部署和運(yùn)行HBase數(shù)據(jù)庫(kù)之前需要完成HDFS 的部署和啟動(dòng)。HBase的也需要被部署到三臺(tái)安裝了CentOS 7.0的虛擬主機(jī)上。在部署了HDFS名字節(jié)點(diǎn)的主服務(wù)器上,將HBase部署為數(shù)據(jù)庫(kù)服務(wù)端,使其在該虛擬主機(jī)上運(yùn)行 HMaster、HQuorumPeer和ThriftServer進(jìn)程,為HBase數(shù)據(jù)庫(kù)服務(wù)提供對(duì)外接口。在部署了HDFS數(shù)據(jù)節(jié)點(diǎn)的兩臺(tái)從服務(wù)器上,將HBase部署為數(shù)據(jù)存儲(chǔ)端,使其分別在這兩臺(tái)虛擬主機(jī)上啟動(dòng)HRegionServer進(jìn)程,負(fù)責(zé)HBase數(shù)據(jù)庫(kù)中數(shù)據(jù)的實(shí)際存取。
本課題中構(gòu)建的分布式數(shù)據(jù)庫(kù)采用了關(guān)系型數(shù)據(jù)庫(kù)與非關(guān)系型數(shù)據(jù)庫(kù)相結(jié)合的分布式數(shù)據(jù)庫(kù)架構(gòu)。在對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ)時(shí),根據(jù)數(shù)據(jù)訪問(wèn)和使用的特點(diǎn),將數(shù)據(jù)分別存儲(chǔ)到不同的數(shù)據(jù)庫(kù)中。對(duì)于統(tǒng)計(jì)數(shù)據(jù)、篩查數(shù)據(jù)等,每次獲取數(shù)據(jù)量少,但是需要頻繁獲取,查詢方式靈活、復(fù)雜,比如基礎(chǔ)相關(guān)信息表、部門(mén)相關(guān)信息表及系統(tǒng)相關(guān)信息表,此類數(shù)據(jù)采用傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)進(jìn)行存儲(chǔ)。對(duì)于AI模型及大數(shù)據(jù)分析所需要使用的源數(shù)據(jù),一次數(shù)據(jù)的獲取量龐大,獲取的數(shù)據(jù)通常是大塊、整體、連續(xù)的,查詢索引方式簡(jiǎn)單,比如遙感圖像、航拍圖片、歷史記錄等,此類數(shù)據(jù)采用非關(guān)系型數(shù)據(jù)庫(kù)進(jìn)行存儲(chǔ)。
對(duì)于地圖地質(zhì)數(shù)據(jù)、地質(zhì)災(zāi)害數(shù)據(jù)、巡查巡測(cè)數(shù)據(jù),這些數(shù)據(jù)的原始數(shù)據(jù)格式是word、pdf、shp等復(fù)雜文本結(jié)構(gòu)。對(duì)于這些數(shù)據(jù)的使用包括兩個(gè)方面:一是根據(jù)關(guān)鍵信息索引對(duì)數(shù)據(jù)內(nèi)容或者數(shù)據(jù)內(nèi)容中蘊(yùn)含的附屬信息進(jìn)行檢索或查詢。對(duì)于這樣的數(shù)據(jù)應(yīng)用,我們將數(shù)據(jù)的關(guān)鍵信息和附屬信息抽取出來(lái),在關(guān)系型數(shù)據(jù)庫(kù)總設(shè)計(jì)相應(yīng)的數(shù)據(jù)表來(lái)對(duì)其進(jìn)行存儲(chǔ)。另一種是直接使用數(shù)據(jù)的原始文件,基于原始文件進(jìn)行數(shù)據(jù)的分析和數(shù)據(jù)挖掘。對(duì)于這種數(shù)據(jù)的應(yīng)用,我們直接將數(shù)據(jù)的原始文件以字節(jié)流的方式存儲(chǔ)到非關(guān)系型數(shù)據(jù)庫(kù)中。
對(duì)于監(jiān)測(cè)數(shù)據(jù)和預(yù)警預(yù)報(bào)數(shù)據(jù),這類數(shù)據(jù)的生產(chǎn)頻度很高,但是一次產(chǎn)生的數(shù)據(jù)量較小。對(duì)于這類數(shù)據(jù)的應(yīng)用也是包括兩種典型的情況:一是對(duì)監(jiān)測(cè)數(shù)據(jù)和預(yù)警預(yù)報(bào)數(shù)據(jù)進(jìn)行實(shí)時(shí)的查看和查詢,每當(dāng)有新的數(shù)據(jù)到來(lái)都需要進(jìn)行獲取。另一種情況是一次性批量的獲取大量監(jiān)測(cè)數(shù)據(jù)和預(yù)警預(yù)報(bào)數(shù)據(jù)的歷史數(shù)據(jù)來(lái)進(jìn)行數(shù)據(jù)的分析和預(yù)測(cè)等工作。因此對(duì)于監(jiān)測(cè)數(shù)據(jù)和預(yù)警預(yù)報(bào)數(shù)據(jù),一方面在關(guān)系型數(shù)據(jù)庫(kù)中設(shè)計(jì)相應(yīng)的數(shù)據(jù)庫(kù)表來(lái)對(duì)實(shí)時(shí)數(shù)據(jù)、一定時(shí)間內(nèi)的新到數(shù)據(jù)進(jìn)行存儲(chǔ)和更新,另一方面在非關(guān)系型數(shù)據(jù)庫(kù)中也設(shè)計(jì)相應(yīng)的數(shù)據(jù)庫(kù)表,來(lái)對(duì)監(jiān)測(cè)數(shù)據(jù)和預(yù)警預(yù)報(bào)數(shù)據(jù)的歷史數(shù)據(jù)進(jìn)行整體打包式存儲(chǔ)。
根據(jù)分布式數(shù)據(jù)庫(kù)所采用的底層存儲(chǔ)架構(gòu)(HDFS)和數(shù)據(jù)庫(kù)支撐架構(gòu)(HBase)的特性[10-11],以及需要存儲(chǔ)數(shù)據(jù)的特點(diǎn),為了獲得良好的性能,首先從數(shù)據(jù)的粒度大小的角度來(lái)對(duì)數(shù)據(jù)進(jìn)行分類和組織,對(duì)不同粒度的數(shù)據(jù)采取不同的存儲(chǔ)方式。
根據(jù)數(shù)據(jù)的粒度大小將數(shù)據(jù)分為3個(gè)類別:小粒度數(shù)據(jù),數(shù)據(jù)粒度小于10M 的數(shù)據(jù);中粒度數(shù)據(jù),數(shù)據(jù)粒度在10M 和50 M 之間的數(shù)據(jù);大粒度數(shù)據(jù),數(shù)據(jù)粒度大于50M的數(shù)據(jù)。在所需要存儲(chǔ)的數(shù)據(jù)中,小粒度數(shù)據(jù)主要包括:結(jié)構(gòu)化信息、普通文本文件、地質(zhì)災(zāi)害點(diǎn)數(shù)據(jù)、巡查巡測(cè)數(shù)據(jù)、預(yù)警預(yù)報(bào)數(shù)據(jù)、小圖片視頻數(shù)據(jù)。中粒度數(shù)據(jù)主要包括:氣象數(shù)據(jù)、水文數(shù)據(jù)、管道本體數(shù)據(jù)、地質(zhì)/地理數(shù)據(jù)、報(bào)告類數(shù)據(jù)。大粒度數(shù)據(jù)主要包括:遙感影像數(shù)據(jù)、動(dòng)態(tài)監(jiān)控視頻、導(dǎo)出的超大文本、大型Office文件。當(dāng)讓這些不同種類的數(shù)據(jù)在大小上可能存在交叉的情況,在實(shí)際處理時(shí),按照實(shí)際情況進(jìn)行處理。
對(duì)于小粒度數(shù)據(jù)可以直接存儲(chǔ)在HBase數(shù)據(jù)庫(kù)中,將數(shù)據(jù)內(nèi)容進(jìn)行序列化之后作為某個(gè)列的值來(lái)進(jìn)行存儲(chǔ)。對(duì)于中粒度數(shù)據(jù)需要啟動(dòng)HBase的MOB 特性后可存儲(chǔ)在HBase數(shù)據(jù)庫(kù)中,同樣是將數(shù)據(jù)內(nèi)容進(jìn)行序列化之后作為某個(gè)列的值來(lái)進(jìn)行存儲(chǔ),不同的是此時(shí)的列不再是普通列而是MOB列,對(duì)于MOB 列HBase底層會(huì)進(jìn)行分拆優(yōu)化。對(duì)于大粒度數(shù)據(jù)不能將數(shù)據(jù)內(nèi)容直接存儲(chǔ)到HBase數(shù)據(jù)庫(kù)中,如果直接存儲(chǔ)會(huì)對(duì)性能造成較大的影響。根據(jù)HDFS的特性,適合存儲(chǔ)較大的文件,HDFS 會(huì)對(duì)文件的存儲(chǔ)自動(dòng)進(jìn)行分塊優(yōu)化。因此對(duì)于大粒度的數(shù)據(jù),直接將數(shù)據(jù)以文件的形式寫(xiě)入到HDFS中,借助HDFS的讀寫(xiě)優(yōu)勢(shì)來(lái)提高性能。同時(shí)為了方便地對(duì)數(shù)據(jù)進(jìn)行查詢和檢索,在HBase中,以普通列的方式存儲(chǔ)數(shù)據(jù)在HDFS中的文件索引,以便快速的獲取文件。
除此之外,一些特別的情況,如某些數(shù)據(jù)歷史性數(shù)據(jù),數(shù)據(jù)量不大,寫(xiě)入頻率也不高,寫(xiě)入后的訪問(wèn)頻率也很低,只是作為歷史性存檔性質(zhì)存在,在少數(shù)情況下會(huì)被查詢。對(duì)于此類數(shù)據(jù),也不直接存到HBase數(shù)據(jù)庫(kù)中,而是按照大粒度數(shù)據(jù)處理的方式,直接寫(xiě)入文件系統(tǒng),數(shù)據(jù)庫(kù)中僅存儲(chǔ)相關(guān)檢索信息和文件索引。這樣既節(jié)省了數(shù)據(jù)庫(kù)的存儲(chǔ)空間,又保證了高效、穩(wěn)定的查詢。另一種特殊情況,是對(duì)于實(shí)時(shí)動(dòng)態(tài)監(jiān)控?cái)?shù)據(jù),這類數(shù)據(jù)是由采集設(shè)備采集,定時(shí)、持續(xù)不斷地發(fā)送給到服務(wù)器。此類數(shù)據(jù)粒度非常小,但是頻率可能特別高,并且累計(jì)量大。對(duì)于這類數(shù)據(jù)的存儲(chǔ),按照小粒度數(shù)據(jù)的方式進(jìn)行存儲(chǔ),在設(shè)計(jì)表的邏輯結(jié)構(gòu)時(shí)考慮對(duì)其進(jìn)行合并和壓縮,以提高存儲(chǔ)和讀取性能。不同粒度數(shù)據(jù)存儲(chǔ)方式如圖3所示。
圖3 不同粒度數(shù)據(jù)存儲(chǔ)方式
根據(jù)對(duì)需要存儲(chǔ)數(shù)據(jù)的分析,數(shù)據(jù)包括了多種格式類型。根據(jù)導(dǎo)入數(shù)據(jù)庫(kù)方式的不同,將這些不同的格式類型進(jìn)一步歸結(jié)為地理信息類、綜合文檔類、圖片視頻類、文本數(shù)據(jù)類和實(shí)時(shí)動(dòng)態(tài)類,如圖4所示。
圖4 數(shù)據(jù)格式類別的劃分
圖5 不同格式類別的導(dǎo)入模式
圖6 數(shù)據(jù)的使用和獲取方法
地理信息類主要包括了shp格式、柵格格式以及Map-GIS格式。
綜合文檔類包括了常用的Word、Excel、PPT、PDF類型的文檔,特別的對(duì)于規(guī)整的整齊的可以直接轉(zhuǎn)換為csv類型的Excel文檔可以不在此列,可以被當(dāng)作格式化類型的文本數(shù)據(jù)進(jìn)行處理。
圖片視頻類包括了圖片和視頻兩大類格式。圖片格式可以是jpg、bmp、tiff以及raw 格式的原始信息圖片。視頻格式包括mp4、mov、avi以及監(jiān)控系統(tǒng)產(chǎn)生的流式文件。
文本格式類包括結(jié)構(gòu)化類型和非結(jié)構(gòu)化類型兩種。結(jié)構(gòu)化類型文本是指文本中格式規(guī)范、統(tǒng)一的以特定的方式標(biāo)記或分隔,能夠直接轉(zhuǎn)換為行列式結(jié)構(gòu)的文件。非結(jié)構(gòu)化類型文件則是指文本內(nèi)容的歸類或者切割不能直接完成,而是需要額外的處理和分析才能完成的文本類型。
實(shí)時(shí)動(dòng)態(tài)類包括3種類型的數(shù)據(jù):1)將大量歷史數(shù)據(jù)或者累積數(shù)據(jù)按照特定的結(jié)構(gòu)化格式歸檔、打包、導(dǎo)出的可解析數(shù)據(jù);2)由某些機(jī)構(gòu)、部門(mén)、或者公司綜合整理統(tǒng)計(jì)后的某一方向、方面的集成化的數(shù)據(jù)。這類數(shù)據(jù)也具有良好的格式,可解析易處理易讀取。不過(guò)包含的內(nèi)容豐富,數(shù)據(jù)項(xiàng)目和條目都較多;3)由監(jiān)控設(shè)備產(chǎn)生的實(shí)時(shí)監(jiān)測(cè)數(shù)據(jù),此類數(shù)據(jù)定時(shí)發(fā)送,數(shù)據(jù)內(nèi)容單一、格式固定,但是頻度高、具有持續(xù)性,單點(diǎn)數(shù)據(jù)量微小,累積數(shù)據(jù)量巨大。
對(duì)于shp類型的數(shù)據(jù),這式地理信息系統(tǒng)中一種非常通用的數(shù)據(jù),數(shù)據(jù)格式公開(kāi)、清晰、明確,能夠被多種地理信息軟件所使用。因此對(duì)此格式類型的數(shù)據(jù)在進(jìn)行數(shù)據(jù)庫(kù)存儲(chǔ)時(shí),將其分成3個(gè)部分來(lái)進(jìn)行存儲(chǔ)。1)提取shp文件相關(guān)的屬性信息,這些屬性信息包括區(qū)域范圍、數(shù)據(jù)內(nèi)容、比例尺等描述說(shuō)明信息,主要是用來(lái)對(duì)數(shù)據(jù)進(jìn)行粗粒度檢索。這些信息經(jīng)過(guò)提取之后,存儲(chǔ)到HBase數(shù)據(jù)庫(kù)的列中;2)shp數(shù)據(jù)原始文件,有的時(shí)候需要保存或者使用shp類型數(shù)據(jù)的原始文件,對(duì)于原始文件將其當(dāng)作一個(gè)完整的對(duì)象進(jìn)行處理;3)對(duì)于shp數(shù)據(jù)中的地理信息、附加信息等,則借助GeoMesa的HBase接口來(lái)進(jìn)行入庫(kù)處理。這種處理方式會(huì)讀取分析shp文件的具體內(nèi)容,并進(jìn)行分析和分解,將分解后的數(shù)存儲(chǔ)到GeoMesa構(gòu)建的5張HBase數(shù)據(jù)表中。這5張數(shù)據(jù)表中構(gòu)建了時(shí)空索引,為GIS引擎提供數(shù)據(jù)支撐。
對(duì)于柵格格式、MapGis格式、WordF 格式、Excel格式、PPT 格式、PDF 格式、圖片格式、視頻格式以及非結(jié)構(gòu)化文本格式,這些格式數(shù)據(jù)的解析和分析,需要通過(guò)復(fù)雜的處理、專門(mén)的流程和專業(yè)的軟件來(lái)完成,因此在數(shù)據(jù)庫(kù)存儲(chǔ)的時(shí)候,無(wú)法對(duì)具體的內(nèi)容做更進(jìn)一步的分解存儲(chǔ)。對(duì)于此類數(shù)據(jù),分成兩部分進(jìn)行存儲(chǔ):1)提取相關(guān)描述性、定位性信息作為查詢、檢索、分類指標(biāo)直接存儲(chǔ)到HBase的列中;2)原始數(shù)據(jù)作為完整的對(duì)象進(jìn)行存儲(chǔ)。對(duì)象存儲(chǔ)的方式根據(jù)對(duì)象的大小來(lái)具體確定是直接保存在HBase內(nèi)還是存放在HDFS文件系統(tǒng)中。此類數(shù)據(jù)經(jīng)過(guò)分析處理工具和軟件的處理后可以將處理后的內(nèi)容重新入庫(kù)。
對(duì)于結(jié)構(gòu)化類型的文本數(shù)據(jù)、導(dǎo)出歸檔的監(jiān)控?cái)?shù)據(jù)、實(shí)時(shí)發(fā)布的綜合監(jiān)控?cái)?shù)據(jù)。這些數(shù)據(jù)是格式化的文本文件,可以通過(guò)HBase提供的批量導(dǎo)入工具來(lái)導(dǎo)入到HBase數(shù)據(jù)庫(kù)的表中。
對(duì)于實(shí)時(shí)監(jiān)控類數(shù)據(jù),為了能夠提高存儲(chǔ)效率,節(jié)省存儲(chǔ)空間,為其專門(mén)設(shè)計(jì)了時(shí)序相關(guān)數(shù)據(jù)庫(kù)表來(lái)對(duì)其進(jìn)行存儲(chǔ)。數(shù)據(jù)庫(kù)表的行鍵、列簇和列通過(guò)專門(mén)的設(shè)計(jì),具有整合和壓縮數(shù)據(jù)的能力,能夠快速高效地完成數(shù)據(jù)的存儲(chǔ)。
數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)之后,還需要能夠被準(zhǔn)確、快捷、便利地提取出來(lái),用于查詢、計(jì)算、分析等多種用途。對(duì)于不同類型的數(shù)據(jù)以及不同的用途,有不同的數(shù)據(jù)獲取方式。
最基本的數(shù)據(jù)獲取方式是通過(guò)HBase 提供的get和scan方法,這個(gè)兩個(gè)方法能夠針對(duì)數(shù)據(jù)庫(kù)中所有的數(shù)據(jù)進(jìn)行獲取,無(wú)論數(shù)據(jù)類型和存儲(chǔ)方式。其中g(shù)et方法用于獲取指定的一行數(shù)據(jù),scan方法可以獲得多行數(shù)據(jù),相當(dāng)于是多條件查詢。這兩個(gè)方法不僅可以在HBase命令行中被用戶直接通過(guò)客戶端來(lái)運(yùn)行,也可以在HBase提供的API中被程度代碼調(diào)用執(zhí)行。
對(duì)于按照對(duì)象類型進(jìn)行存儲(chǔ)的數(shù)據(jù),在采用get或scan進(jìn)行查詢的基礎(chǔ)上,還可以通過(guò)HBase和HDSF提供的反序列化方法,將被存儲(chǔ)的序列化的字節(jié)編碼的數(shù)據(jù)還原為原始的對(duì)象類型,以便用戶對(duì)存儲(chǔ)數(shù)據(jù)的使用。
對(duì)于數(shù)據(jù)庫(kù)中存儲(chǔ)的shp格式的地理信息數(shù)據(jù),除了可以通過(guò)基礎(chǔ)查詢和對(duì)象查詢對(duì)數(shù)據(jù)進(jìn)行簡(jiǎn)單的獲取方式外,還可以利用GeoMesaAPI[17]直接對(duì)數(shù)據(jù)庫(kù)中的地理信息數(shù)據(jù)進(jìn)行深層次的查詢分析和專業(yè)處理。GeoMesshforHBase通過(guò)數(shù)據(jù)庫(kù)表的優(yōu)化設(shè)計(jì),二維、三維時(shí)空索引的建立,豐富的查詢、分析、計(jì)算接口,簡(jiǎn)化了用戶對(duì)數(shù)據(jù)獲取和處理的難度,降低里用戶對(duì)數(shù)據(jù)使用的復(fù)雜度,擴(kuò)展了HBase數(shù)據(jù)庫(kù)中地理信息類型數(shù)據(jù)的應(yīng)用范圍和使用模式。
對(duì)于HBase中利用OpenTSDB 時(shí)序數(shù)據(jù)庫(kù)表進(jìn)行存儲(chǔ)的動(dòng)態(tài)監(jiān)控?cái)?shù)據(jù)[18-21],OpenTSDB 除了提供數(shù)據(jù)采集器幫助用戶收集存儲(chǔ)數(shù)據(jù)外,也提供了數(shù)據(jù)壓縮、數(shù)據(jù)均衡性、聚合、插值、縮減采樣等豐富的功能。此外提供了一個(gè)web頁(yè)面供數(shù)據(jù)查詢。
對(duì)于進(jìn)行分析計(jì)算等處理之后的結(jié)果數(shù)據(jù),也可以建立與原始數(shù)據(jù)相關(guān)聯(lián)的數(shù)據(jù)庫(kù)表來(lái)對(duì)其進(jìn)行二次存儲(chǔ)。
HBase在數(shù)據(jù)存儲(chǔ)的底層上采用了多Region的方式來(lái)實(shí)現(xiàn),在為用戶提供的應(yīng)用接口層面上也是以表為基本單元進(jìn)行組織的。在HBase的表中也具有行和列的概念,但與傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)中的行和列具有不同的涵義。HBase中的表并不像關(guān)系型數(shù)據(jù)庫(kù)的表是整齊排列的,表中的列是按需出現(xiàn)的,某行數(shù)據(jù)只會(huì)將該行實(shí)際具有的列數(shù)據(jù)寫(xiě)入表中,該行中不存在的數(shù)據(jù)項(xiàng)不會(huì)在表中進(jìn)行占位,因此HBase不會(huì)因?yàn)榭罩档拇嬖诙鴵p失存儲(chǔ)空間,能夠很好地應(yīng)對(duì)具有稀疏特征的數(shù)據(jù)存儲(chǔ)。
HBase中的行由行鍵來(lái)唯一確定,行鍵相當(dāng)于表的索引,為了加快HBase的檢索速度和存取效率,行鍵的設(shè)計(jì)起到關(guān)鍵作用。行鍵的設(shè)計(jì)首先要滿足唯一性要求,并具有高效的索引能力;其次要滿足散列性要求,能夠避免數(shù)據(jù)寫(xiě)入時(shí)熱點(diǎn)效應(yīng)帶來(lái)的影響;第三在滿足散列性要求的同時(shí)還需要滿足集中性要求,能夠讓用戶在獲取數(shù)據(jù)時(shí)一次性獲取全部數(shù)據(jù)。這些要求使得行鍵的設(shè)計(jì)具有很好的靈活性和技巧性。
HBase中的列族在數(shù)據(jù)庫(kù)表設(shè)計(jì)完成后通常是固定不變的,會(huì)出現(xiàn)在每一行數(shù)據(jù)中。列族決定了表中數(shù)據(jù)在底層HDFS上的存儲(chǔ)方式,屬于同一個(gè)列族的數(shù)據(jù)在底層是存儲(chǔ)在一起的。列族在數(shù)據(jù)庫(kù)表設(shè)計(jì)完成后還可以進(jìn)行添加,這為HBase提供了橫向擴(kuò)展能力。
HBase中的列是依托于具體數(shù)據(jù)存在的,對(duì)于每行數(shù)據(jù)來(lái)說(shuō)列都可以不相同,因此HBase中列的設(shè)計(jì)由具體的數(shù)據(jù)來(lái)決定。
地理信息類、圖片視頻類、文本數(shù)據(jù)類、氣象水文類和實(shí)時(shí)動(dòng)態(tài)類數(shù)據(jù)的通用邏輯結(jié)構(gòu)如表1~5所示。
表1 地理信息類型的數(shù)據(jù)表Hbase的邏輯結(jié)構(gòu)
表2 圖片和視頻類型的數(shù)據(jù)表Hbase的邏輯結(jié)構(gòu)
表3 文本類型的氣象和水文的數(shù)據(jù)表Hbase的邏輯結(jié)構(gòu)
表4 氣象水文站信息的數(shù)據(jù)表Hbase的邏輯結(jié)構(gòu)
表5 動(dòng)態(tài)監(jiān)測(cè)數(shù)據(jù)的數(shù)據(jù)表Hbase的邏輯結(jié)構(gòu)
本文根據(jù)地質(zhì)災(zāi)害監(jiān)測(cè)和預(yù)警等人工智能和大數(shù)據(jù)應(yīng)用需求,對(duì)地質(zhì)災(zāi)害監(jiān)控系統(tǒng)、預(yù)測(cè)預(yù)報(bào)系統(tǒng)所需的數(shù)據(jù)進(jìn)行了分析和統(tǒng)計(jì)?;诨诜植际轿募到y(tǒng)(HDFS)和列式存儲(chǔ)非關(guān)系型數(shù)據(jù)庫(kù)(HBase)提出了地質(zhì)災(zāi)害是數(shù)據(jù)存儲(chǔ)策略。設(shè)計(jì)了基于數(shù)據(jù)粒度的優(yōu)化存儲(chǔ)模式,根據(jù)數(shù)據(jù)的大小自動(dòng)采取直接存儲(chǔ)、文件存儲(chǔ)、壓縮存儲(chǔ)進(jìn)行數(shù)據(jù)的入庫(kù)保存。將地質(zhì)災(zāi)害監(jiān)測(cè)數(shù)據(jù)歸并為地理信息類、綜合文檔類、圖片視頻類、文本數(shù)據(jù)類和實(shí)時(shí)動(dòng)態(tài)類5個(gè)不同類別,針對(duì)每個(gè)類別的數(shù)據(jù)特性和使用方式,提出了不同的存儲(chǔ)結(jié)構(gòu)和訪問(wèn)接口,以獲得最優(yōu)的數(shù)據(jù)訪問(wèn)性能。